aboutsummaryrefslogtreecommitdiff
path: root/devel/electron13/files/patch-base_files_file__util__posix.cc
diff options
context:
space:
mode:
Diffstat (limited to 'devel/electron13/files/patch-base_files_file__util__posix.cc')
-rw-r--r--devel/electron13/files/patch-base_files_file__util__posix.cc78
1 files changed, 78 insertions, 0 deletions
diff --git a/devel/electron13/files/patch-base_files_file__util__posix.cc b/devel/electron13/files/patch-base_files_file__util__posix.cc
new file mode 100644
index 000000000000..147d89a916b1
--- /dev/null
+++ b/devel/electron13/files/patch-base_files_file__util__posix.cc
@@ -0,0 +1,78 @@
+--- base/files/file_util_posix.cc.orig 2021-07-15 19:13:29 UTC
++++ base/files/file_util_posix.cc
+@@ -384,7 +384,7 @@ bool CreatePipe(ScopedFD* read_fd, ScopedFD* write_fd,
+ }
+
+ bool CreateLocalNonBlockingPipe(int fds[2]) {
+-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
++#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
+ return pipe2(fds, O_CLOEXEC | O_NONBLOCK) == 0;
+ #else
+ int raw_fds[2];
+@@ -932,8 +932,12 @@ bool AllocateFileRegion(File* file, int64_t offset, si
+ // space. It can fail because the filesystem doesn't support it. In that case,
+ // use the manual method below.
+
+-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
++#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD)
++#if defined(OS_BSD)
++ if (HANDLE_EINTR(posix_fallocate(file->GetPlatformFile(), offset, size)) != -1)
++#else
+ if (HANDLE_EINTR(fallocate(file->GetPlatformFile(), 0, offset, size)) != -1)
++#endif
+ return true;
+ DPLOG(ERROR) << "fallocate";
+ #elif defined(OS_APPLE)
+@@ -1103,7 +1107,7 @@ int GetMaximumPathComponentLength(const FilePath& path
+ #if !defined(OS_ANDROID)
+ // This is implemented in file_util_android.cc for that platform.
+ bool GetShmemTempDir(bool executable, FilePath* path) {
+-#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX)
++#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD)
+ bool disable_dev_shm = false;
+ #if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_CHROMEOS_LACROS)
+ disable_dev_shm = CommandLine::ForCurrentProcess()->HasSwitch(
+@@ -1119,7 +1123,7 @@ bool GetShmemTempDir(bool executable, FilePath* path)
+ *path = FilePath("/dev/shm");
+ return true;
+ }
+-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX)
++#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD)
+ return GetTempDir(path);
+ }
+ #endif // !defined(OS_ANDROID)
+@@ -1157,7 +1161,7 @@ PrefetchResult PreReadFile(const FilePath& file_path,
+ // posix_fadvise() is only available in the Android NDK in API 21+. Older
+ // versions may have the required kernel support, but don't have enough usage
+ // to justify backporting.
+-#if defined(OS_LINUX) || defined(OS_CHROMEOS) || \
++#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || \
+ (defined(OS_ANDROID) && __ANDROID_API__ >= 21)
+ File file(file_path, File::FLAG_OPEN | File::FLAG_READ);
+ if (!file.IsValid())
+@@ -1193,7 +1197,7 @@ PrefetchResult PreReadFile(const FilePath& file_path,
+ return internal::PreReadFileSlow(file_path, max_bytes)
+ ? PrefetchResult{PrefetchResultCode::kSlowSuccess}
+ : PrefetchResult{PrefetchResultCode::kSlowFailed};
+-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || (defined(OS_ANDROID) &&
++#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_BSD) || (defined(OS_ANDROID) &&
+ // __ANDROID_API__ >= 21)
+ }
+
+@@ -1263,7 +1267,7 @@ bool CopyFileContentsWithSendfile(File& infile,
+
+ #endif // !defined(OS_NACL_NONSFI)
+
+-#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX)
++#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD)
+ BASE_EXPORT bool IsPathExecutable(const FilePath& path) {
+ bool result = false;
+ FilePath tmp_file_path;
+@@ -1284,6 +1288,6 @@ BASE_EXPORT bool IsPathExecutable(const FilePath& path
+ }
+ return result;
+ }
+-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX)
++#endif // defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_AIX) || defined(OS_BSD)
+
+ } // namespace base