Fix Arm __ASSUME_COPY_FILE_RANGE (bug 23915).

The generic kernel-features.h defines __ASSUME_COPY_FILE_RANGE for 4.5
and later kernels.  However, for 32-bit Arm binaries running on 64-bit
Arm kernels, the syscall was only wired up in the 4.7 kernel, although
the 32-bit Arm kernel had the syscall from 4.5 onwards.  This patch
corrects the Arm kernel-features.h to undefine the macro for
configured minimum kernel versions before 4.7.

Tested (compilation only) with a build-many-glibcs.py build for
arm-linux-gnueabi.

	[BZ #23915]
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_COPY_FILE_RANGE):
	Undefine.
This commit is contained in:
Joseph Myers 2018-11-23 17:53:50 +00:00
parent c089fd80c7
commit 1283c478aa
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2018-11-23 Joseph Myers <joseph@codesourcery.com>
[BZ #23915]
* sysdeps/unix/sysv/linux/arm/kernel-features.h
[__LINUX_KERNEL_VERSION < 0x040700] (__ASSUME_COPY_FILE_RANGE):
Undefine.
2018-11-23 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86/Makefile (tests): Add tst-cet-legacy-1a.

View File

@ -40,11 +40,12 @@
#define __ASSUME_RECV_SYSCALL 1
#define __ASSUME_SEND_SYSCALL 1
/* Support for the mlock2 syscall was added to the compat syscall
table for 64-bit kernels in 4.7, although present in 32-bit kernels
from 4.4. */
/* Support for the mlock2 and copy_file_range syscalls was added to
the compat syscall table for 64-bit kernels in 4.7, although
present in 32-bit kernels from 4.4 and 4.5 respectively. */
#if __LINUX_KERNEL_VERSION < 0x040700
# undef __ASSUME_MLOCK2
# undef __ASSUME_COPY_FILE_RANGE
#endif
#undef __ASSUME_CLONE_DEFAULT