summaryrefslogtreecommitdiff
path: root/sys-apps/coreutils/files/coreutils-9.3-old-kernel-copy_file_range.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-06-09 15:48:37 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-06-09 15:48:37 +0100
commit60010a4cd6d7c12aaa62f00b5e8a158ed24efba6 (patch)
treea961dd82d2d2719fe5bede9343e9e83cce856d9f /sys-apps/coreutils/files/coreutils-9.3-old-kernel-copy_file_range.patch
parent65a4d80ebaba5d4d407b3d09320b337e0ca20f0a (diff)
gentoo auto-resync : 09:06:2023 - 15:48:36
Diffstat (limited to 'sys-apps/coreutils/files/coreutils-9.3-old-kernel-copy_file_range.patch')
-rw-r--r--sys-apps/coreutils/files/coreutils-9.3-old-kernel-copy_file_range.patch89
1 files changed, 89 insertions, 0 deletions
diff --git a/sys-apps/coreutils/files/coreutils-9.3-old-kernel-copy_file_range.patch b/sys-apps/coreutils/files/coreutils-9.3-old-kernel-copy_file_range.patch
new file mode 100644
index 000000000000..27767e312500
--- /dev/null
+++ b/sys-apps/coreutils/files/coreutils-9.3-old-kernel-copy_file_range.patch
@@ -0,0 +1,89 @@
+https://bugs.gentoo.org/907474
+
+From 87b95c17dc8611f9483b966d052eefc930f43927 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Mon, 5 Jun 2023 22:04:37 -0700
+Subject: [PATCH] copy-file-range: support building for older kernels
+
+* m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE):
+Remove static check, to support the dubious practice of
+building for platforms that predate the build platform.
+On working kernels this adds an extra syscall the first time
+that copy_file_range is used. Problem reported for Gentoo by
+Sam James <https://bugs.gnu.org/63850>.
+--- a/m4/copy-file-range.m4
++++ b/m4/copy-file-range.m4
+@@ -39,21 +39,9 @@ AC_DEFUN([gl_FUNC_COPY_FILE_RANGE],
+
+ case $host_os in
+ linux*)
+- AC_CACHE_CHECK([whether copy_file_range is known to work],
+- [gl_cv_copy_file_range_known_to_work],
+- [AC_COMPILE_IFELSE(
+- [AC_LANG_PROGRAM(
+- [[#include <linux/version.h>
+- ]],
+- [[#if LINUX_VERSION_CODE < KERNEL_VERSION (5, 3, 0)
+- #error "copy_file_range is buggy"
+- #endif
+- ]])],
+- [gl_cv_copy_file_range_known_to_work=yes],
+- [gl_cv_copy_file_range_known_to_work=no])])
+- if test "$gl_cv_copy_file_range_known_to_work" = no; then
+- REPLACE_COPY_FILE_RANGE=1
+- fi;;
++ # See copy-file-range.c comment re pre-5.3 Linux kernel bugs.
++ # We should be able to remove this hack in 2025.
++ REPLACE_COPY_FILE_RANGE=1;;
+ esac
+ fi
+ ])
+
+--- a/configure
++++ b/configure
+@@ -39903,42 +39903,9 @@ printf "%s\n" "#define HAVE_COPY_FILE_RANGE 1" >>confdefs.h
+
+ case $host_os in
+ linux*)
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether copy_file_range is known to work" >&5
+-printf %s "checking whether copy_file_range is known to work... " >&6; }
+-if test ${gl_cv_copy_file_range_known_to_work+y}
+-then :
+- printf %s "(cached) " >&6
+-else case e in #(
+- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-#include <linux/version.h>
+-
+-int
+-main (void)
+-{
+-#if LINUX_VERSION_CODE < KERNEL_VERSION (5, 3, 0)
+- #error "copy_file_range is buggy"
+- #endif
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"
+-then :
+- gl_cv_copy_file_range_known_to_work=yes
+-else case e in #(
+- e) gl_cv_copy_file_range_known_to_work=no ;;
+-esac
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+-esac
+-fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_copy_file_range_known_to_work" >&5
+-printf "%s\n" "$gl_cv_copy_file_range_known_to_work" >&6; }
+- if test "$gl_cv_copy_file_range_known_to_work" = no; then
+- REPLACE_COPY_FILE_RANGE=1
+- fi;;
++ # See copy-file-range.c comment re pre-5.3 Linux kernel bugs.
++ # We should be able to remove this hack in 2025.
++ REPLACE_COPY_FILE_RANGE=1;;
+ esac
+ fi
+