diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/internal_recvmmsg.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/internal_recvmmsg.S | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/internal_recvmmsg.S b/sysdeps/unix/sysv/linux/internal_recvmmsg.S index 66c1357940..6b776b9d6a 100644 --- a/sysdeps/unix/sysv/linux/internal_recvmmsg.S +++ b/sysdeps/unix/sysv/linux/internal_recvmmsg.S @@ -1,8 +1,18 @@ #include <kernel-features.h> #include <sys/syscall.h> + +/* 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 +# undef __NR_recvmmsg +#endif + #if !defined __NR_recvmmsg && defined __NR_socketcall # define socket recvmmsg -# ifdef __ASSUME_RECVMMSG +# ifdef __ASSUME_RECVMMSG_SOCKETCALL # define __socket recvmmsg # else # define __socket __internal_recvmmsg |