From bc688c10296cb416c082e44aa8bf881505aec64a Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 20 Feb 2014 17:55:35 +0000 Subject: Fix __ASSUME_SENDMMSG issues (bug 16611). Similar to the issues for accept4 and recvmmsg, __ASSUME_SENDMMSG is also confused about whether it relates to function availability or socketcall operation availability, and the conditions for the definition are always wrong (sendmmsg appeared in Linux kernel 3.0, not 2.6.39); this is now bug 16611. This patch splits the macro into separate macros like those for accept4 and recvmmsg, defining them for appropriate kernel versions. Tested x86_64, including that disassembly of the installed shared libraries is unchanged by this patch. [BZ #16611] * sysdeps/unix/sysv/linux/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030000 && __ASSUME_SOCKETCALL] (__ASSUME_SENDMMSG_SOCKETCALL): Define. [__LINUX_KERNEL_VERSION >= 0x030000 && (__i386__ || __x86_64__ || __powerpc__ || __sh__ || __sparc__)] (__ASSUME_SENDMMSG_SYSCALL): Likewise. [__i386__ || __powerpc__ || __sh__ || __sparc__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise. [__ASSUME_SENDMMSG_SOCKETCALL || __ASSUME_SENDMMSG_SYSCALL] (__ASSUME_SENDMMSG): Define instead of using previous [__LINUX_KERNEL_VERSION >= 0x020627] condition. * sysdeps/unix/sysv/linux/aarch64/kernel-features.h (__ASSUME_SENDMMSG_SYSCALL): Define. * sysdeps/unix/sysv/linux/alpha/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030200] (__ASSUME_SENDMMSG_SYSCALL): Likewise. * sysdeps/unix/sysv/linux/arm/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL): Likewise. * sysdeps/unix/sysv/linux/ia64/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL): Likewise. * sysdeps/unix/sysv/linux/internal_sendmmsg.S [__ASSUME_SOCKETCALL && !__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL && !__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine. [__ASSUME_SENDMMSG]: Change conditionals to [__ASSUME_SENDMMSG_SOCKETCALL]. * sysdeps/unix/sysv/linux/microblaze/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_SENDMMSG_SYSCALL): Define. * sysdeps/unix/sysv/linux/mips/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL): Likewise. * sysdeps/unix/sysv/linux/sendmmsg.c [__ASSUME_SOCKETCALL && !__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL && !__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine. [!__ASSUME_SENDMMSG]: Change conditional to [!__ASSUME_SENDMMSG_SOCKETCALL]. * sysdeps/unix/sysv/linux/tile/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL): Define. * sysdeps/unix/sysv/linux/hppa/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL): Define. --- ChangeLog | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 73f614b..4ad0fe6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,48 @@ 2014-02-20 Joseph Myers + [BZ #16611] + * sysdeps/unix/sysv/linux/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030000 && __ASSUME_SOCKETCALL] + (__ASSUME_SENDMMSG_SOCKETCALL): Define. + [__LINUX_KERNEL_VERSION >= 0x030000 && (__i386__ || __x86_64__ || + __powerpc__ || __sh__ || __sparc__)] (__ASSUME_SENDMMSG_SYSCALL): + Likewise. + [__i386__ || __powerpc__ || __sh__ || __sparc__] + (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise. + [__ASSUME_SENDMMSG_SOCKETCALL || __ASSUME_SENDMMSG_SYSCALL] + (__ASSUME_SENDMMSG): Define instead of using previous + [__LINUX_KERNEL_VERSION >= 0x020627] condition. + * sysdeps/unix/sysv/linux/aarch64/kernel-features.h + (__ASSUME_SENDMMSG_SYSCALL): Define. + * sysdeps/unix/sysv/linux/alpha/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030200] (__ASSUME_SENDMMSG_SYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/arm/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/ia64/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/internal_sendmmsg.S [__ASSUME_SOCKETCALL + && !__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL && + !__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine. + [__ASSUME_SENDMMSG]: Change conditionals to + [__ASSUME_SENDMMSG_SOCKETCALL]. + * sysdeps/unix/sysv/linux/microblaze/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_SENDMMSG_SYSCALL): + Define. + * sysdeps/unix/sysv/linux/mips/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/sendmmsg.c [__ASSUME_SOCKETCALL && + !__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL && + !__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine. + [!__ASSUME_SENDMMSG]: Change conditional to + [!__ASSUME_SENDMMSG_SOCKETCALL]. + * sysdeps/unix/sysv/linux/tile/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL): + Define. + [BZ #16610] * sysdeps/unix/sysv/linux/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x020621 && __ASSUME_SOCKETCALL] -- cgit v1.1