summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog27
-rw-r--r--sysdeps/unix/sysv/linux/accept4.c11
-rw-r--r--sysdeps/unix/sysv/linux/i386/kernel-features.h6
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h21
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel-features.h3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel-features.h3
-rw-r--r--sysdeps/unix/sysv/linux/recvmmsg.c11
-rw-r--r--sysdeps/unix/sysv/linux/sendmmsg.c11
-rw-r--r--sysdeps/unix/sysv/linux/sh/kernel-features.h3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel-features.h9
10 files changed, 40 insertions, 65 deletions
diff --git a/ChangeLog b/ChangeLog
index dc0f8f6643..90aed79f8c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2017-05-09 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/accept4.c (accept4): Use syscall if
+ [__ASSUME_ACCEPT4_SYSCALL], otherwise socketcall.
+ * sysdeps/unix/sysv/linux/recvmmsg.c (recvmmsg): Use syscall if
+ [__ASSUME_RECVMMSG_SYSCALL], otherwise socketcall.
+ * sysdeps/unix/sysv/linux/sendmmsg.c (__sendmmsg): Use syscall if
+ [__ASSUME_SENDMMSG_SYSCALL], otherwise socketcall.
+ * sysdeps/unix/sysv/linux/kernel-features.h
+ (__ASSUME_ACCEPT4_SYSCALL): Move to general list of macros for
+ socket syscalls.
+ (__ASSUME_RECVMMSG_SYSCALL): Likewise.
+ (__ASSUME_SENDMMSG_SYSCALL): Likewise.
+ * sysdeps/unix/sysv/linux/i386/kernel-features.h
+ (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Remove.
+ (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+ (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Remove.
+ * sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+ (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h
+ (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
+ * sysdeps/unix/sysv/linux/sparc/kernel-features.h
+ (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
+ (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
+ (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
+
2017-05-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* posix/Makefile (headers): Add pthreadtypes-arch.h and
diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c
index 0592f43dd6..1590c021ad 100644
--- a/sysdeps/unix/sysv/linux/accept4.c
+++ b/sysdeps/unix/sysv/linux/accept4.c
@@ -28,14 +28,9 @@
int
accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags)
{
-/* Do not use the accept4 syscall on socketcall architectures unless
- it was added at the same time as the socketcall support or can be
- assumed to be present. */
-#if defined __ASSUME_SOCKETCALL \
- && !defined __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL \
- && !defined __ASSUME_ACCEPT4_SYSCALL
- return SOCKETCALL_CANCEL (accept4, fd, addr.__sockaddr__, addr_len, flags);
-#else
+#ifdef __ASSUME_ACCEPT4_SYSCALL
return SYSCALL_CANCEL (accept4, fd, addr.__sockaddr__, addr_len, flags);
+#else
+ return SOCKETCALL_CANCEL (accept4, fd, addr.__sockaddr__, addr_len, flags);
#endif
}
diff --git a/sysdeps/unix/sysv/linux/i386/kernel-features.h b/sysdeps/unix/sysv/linux/i386/kernel-features.h
index 96a8e3bc1d..c6eb20f360 100644
--- a/sysdeps/unix/sysv/linux/i386/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/i386/kernel-features.h
@@ -20,12 +20,6 @@
/* i386 uses socketcall. */
#define __ASSUME_SOCKETCALL 1
-/* The recvmmsg syscall was added for i386 in 2.6.33. */
-#define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1
-
-/* The sendmmsg syscall was added for i386 in 3.0. */
-#define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1
-
/* Direct socketcalls available with kernel 4.3. */
#if __LINUX_KERNEL_VERSION >= 0x040300
# define __ASSUME_SOCKET_SYSCALL 1
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 77285656cd..76053b5451 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -71,16 +71,6 @@
2.6.27. */
#define __ASSUME_IN_NONBLOCK 1
-/* Support for accept4 functionality was added in 2.6.28, but for some
- architectures using a separate syscall rather than socketcall that
- syscall was only added later, and some architectures first had
- socketcall support then a separate syscall. Define
- __ASSUME_ACCEPT4_SYSCALL if it is available through a separate
- syscall, and __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL if it became
- available through a separate syscall at the same time as through
- socketcall. */
-#define __ASSUME_ACCEPT4_SYSCALL 1
-
/* Support for the FUTEX_CLOCK_REALTIME flag was added in 2.6.29. */
#define __ASSUME_FUTEX_CLOCK_REALTIME 1
@@ -88,18 +78,12 @@
#define __ASSUME_PREADV 1
#define __ASSUME_PWRITEV 1
-/* Support for recvmmsg functionality was added in 2.6.33. The macros
- defined correspond to those for accept4. */
-#define __ASSUME_RECVMMSG_SYSCALL 1
-
/* statfs fills in f_flags since 2.6.36. */
#if __LINUX_KERNEL_VERSION >= 0x020624
# define __ASSUME_STATFS_F_FLAGS 1
#endif
-/* Support for sendmmsg functionality was added in 3.0. The macros
- defined correspond to those for accept4 and recvmmsg. */
-#define __ASSUME_SENDMMSG_SYSCALL 1
+/* Support for sendmmsg functionality was added in 3.0. */
#define __ASSUME_SENDMMSG 1
/* On most architectures, most socket syscalls are supported for all
@@ -111,6 +95,9 @@
#define __ASSUME_CONNECT_SYSCALL 1
#define __ASSUME_RECVFROM_SYSCALL 1
#define __ASSUME_SENDTO_SYSCALL 1
+#define __ASSUME_ACCEPT4_SYSCALL 1
+#define __ASSUME_RECVMMSG_SYSCALL 1
+#define __ASSUME_SENDMMSG_SYSCALL 1
/* Support for SysV IPC through wired syscalls. All supported architectures
either support ipc syscall and/or all the ipc correspondent syscalls. */
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
index fe170a0987..0257524777 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -33,9 +33,6 @@
#define __ASSUME_GETSOCKOPT_SYSCALL 1
#define __ASSUME_SETSOCKOPT_SYSCALL 1
-/* Support for the accept4 and recvmmsg syscalls was added in 2.6.33. */
-#define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1
-
#include_next <kernel-features.h>
/* Support for the pselect6, preadv and pwritev syscalls was added in
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
index dc9ad941f7..e026394422 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
@@ -34,9 +34,6 @@
#define __ASSUME_GETSOCKOPT_SYSCALL 1
#define __ASSUME_SETSOCKOPT_SYSCALL 1
-/* The sendmmsg syscall was added for PowerPC in 3.0. */
-#define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1
-
/* Define this if your 32-bit syscall API requires 64-bit register
pairs to start with an even-number register. */
#ifndef __powerpc64__
diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c
index de4412972b..60e06b7754 100644
--- a/sysdeps/unix/sysv/linux/recvmmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmmsg.c
@@ -28,14 +28,9 @@ int
recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
struct timespec *tmo)
{
- /* Do not use the recvmmsg syscall on socketcall architectures unless
- it was added at the same time as the socketcall support or can be
- assumed to be present. */
-#if defined __ASSUME_SOCKETCALL \
- && !defined __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL \
- && !defined __ASSUME_RECVMMSG_SYSCALL
- return SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo);
-#else
+#ifdef __ASSUME_RECVMMSG_SYSCALL
return SYSCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo);
+#else
+ return SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo);
#endif
}
diff --git a/sysdeps/unix/sysv/linux/sendmmsg.c b/sysdeps/unix/sysv/linux/sendmmsg.c
index c559623c12..e0c2556309 100644
--- a/sysdeps/unix/sysv/linux/sendmmsg.c
+++ b/sysdeps/unix/sysv/linux/sendmmsg.c
@@ -27,15 +27,10 @@
int
__sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags)
{
- /* Do not use the sendmmsg syscall on socketcall architectures unless
- it was added at the same time as the socketcall support or can be
- assumed to be present. */
-#if defined __ASSUME_SOCKETCALL \
- && !defined __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL \
- && !defined __ASSUME_SENDMMSG_SYSCALL
- return SOCKETCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags);
-#else
+#ifdef __ASSUME_SENDMMSG_SYSCALL
return SYSCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags);
+#else
+ return SOCKETCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags);
#endif
}
libc_hidden_def (__sendmmsg)
diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h
index b0b321576c..175b4f5433 100644
--- a/sysdeps/unix/sysv/linux/sh/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -37,9 +37,6 @@
#define __ASSUME_GETSOCKOPT_SYSCALL 1
#define __ASSUME_SETSOCKOPT_SYSCALL 1
-/* The sendmmsg syscall was added for SH in 3.0. */
-#define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1
-
#include_next <kernel-features.h>
/* SH does not have a 64-bit inode field. */
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
index c833201767..72065a0248 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
@@ -20,15 +20,6 @@
/* SPARC uses socketcall. */
#define __ASSUME_SOCKETCALL 1
-/* The accept4 syscall was added for SPARC in 2.6.28. */
-#define __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL 1
-
-/* The recvmmsg syscall was added for SPARC in 2.6.33. */
-#define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1
-
-/* The sendmmsg syscall was added for SPARC in 3.0. */
-#define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1
-
#include_next <kernel-features.h>
/* 32-bit SPARC kernels do not support