From: Adhemerval Zanella Date: Thu, 9 Jun 2016 15:27:57 +0000 (-0300) Subject: Revert {send,sendm,recv,recvm}msg conformance changes X-Git-Tag: glibc-2.24~125 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78880cc185dc521855a58001a28e3059722d8e85;p=thirdparty%2Fglibc.git Revert {send,sendm,recv,recvm}msg conformance changes After some discussion in libc-alpha about this POSIX compliance fix, I see that GLIBC should indeed revert back to previous definition of msghdr and cmsghdr and implementation of sendmsg, recvmsg, sendmmsg, recvmmsg due some reasons: * The possible issue where the syscalls wrapper add the compatibility layer is quite limited in scope and range. And kernel current also add some limits to the values on the internal msghdr and cmsghdr fields: - msghdr::msg_iovlen larger than UIO_MAXIOV (1024) returns EMSGSIZE. - msghdr::msg_controllen larger than INT_MAX returns ENOBUFS. * There is a small performance hit for recvmsg/sendmsg/recmmsg which is neglectable, but it is a big hit for sendmmsg since now instead of calling the syscall for the packed structure, GLIBC is calling multiple sendmsg. This defeat the very existence of the syscall. * It currently breaks libsanitizer build on GCC [1] (I fixed on compiler-rt). However the fix is incomplete because it does add any runtime check since libsanitizer currently does not have any facility to intercept symbols with multiple version [2]. This, along with incorret dlsym/dlvsym return for versioned symbol due another bug [3], makes hard to interpose versioned symbols. Also, current approach of fixing GCC PR#71445 leads to half-baked solutions without versioned symbol interposing. This patch basically reverts commits 2f0dc39029ae08, 222c2d7f4357d66, af7f7c7ec8dea1. I decided to not revert abf29edd4a3918 (Adjust kernel-features.h defaults for recvmsg and sendmsg) mainly because it does not really address the POSIX compliance original issue and also adds some cleanups. Tested on x86, i386, s390, s390x, aarch64, and powerpc64le. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71445 [2] https://github.com/google/sanitizers/issues/628 [3] https://sourceware.org/bugzilla/show_bug.cgi?id=14932 * conform/data/sys/socket.h-data (msghdr.msg_iovlen): Add xfail-. (msghdr.msg_controllen): Likewise. (cmsghdr.cmsg_len): Likewise. * nptl/Makefile (libpthread-routines): Remove ptw-oldrecvmsg and ptw-oldsendmsg. (CFLAGS-oldrecvmsg.c): Remove rule. (CFLAGS-oldsendmsg.c): Likewise. (CFLAGS-recvmsg.c): Add rule. (CFLAGS-sendmsg.c): Likewise. * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove oldrecvmsg, oldsendmsg, oldrecvmmsg, oldsendmmsg. (CFLAGS-recvmsg.c): Remove rule. (CFLAGS-sendmsg.c): Likewise. (CFLAGS-oldrecvmsg.c): Likewise. (CFLAGS-oldsendmsg.c): Likewise. (CFLAGS-recvmmsg.c): Likewise. * sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Revert to kernel defined interfaces. (msghdr.msg_controllen): Likewise. (cmsghdr.cmsg_len): Likewise. (msghdr.__glibc_reserved1): Remove member. (msghdr.__glibc_reserved2): Likewise. (cmsghdr.__glibc_reserved1): Likewise. * sysdeps/unix/sysv/linux/oldrecvmmsg.c: Remove file. * sysdeps/unix/sysv/linux/oldrecvmsg.c: Likewise. * sysdeps/unix/sysv/linux/oldsendmmsg.c: Likewise. * sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise. * sysdeps/unix/sysv/linux/recvmmsg.c: Revert back to previous version. * sysdeps/unix/sysv/linux/recvmsg.c: Likewise. * sysdeps/unix/sysv/linux/sendmmsg.c: Likewise. * sysdeps/unix/sysv/linux/sendmsg.c: Likewise. * sysdeps/unix/sysv/linux/aarch64/Versions [libc] (GLIBC_2.24): Remove recvmsg and sendmsg. * sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/m68k/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/microblaze/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/mips/mips32/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/nios2/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/powerpc/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/sh/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/sparc/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/tile/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/x86_64/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions: Remove file * sysdeps/unix/sysv/linux/x86_64/64/Versions: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/Versions: Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Remove new 2.24 version for {recv,send,recm,sendm}msg. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. --- diff --git a/ChangeLog b/ChangeLog index 9f9c7080a72..34f51b58906 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,105 @@ +2016-06-10 Adhemerval Zanela + + * conform/data/sys/socket.h-data (msghdr.msg_iovlen): Add xfail-. + (msghdr.msg_controllen): Likewise. + (cmsghdr.cmsg_len): Likewise. + * nptl/Makefile (libpthread-routines): Remove ptw-oldrecvmsg and + ptw-oldsendmsg. + (CFLAGS-oldrecvmsg.c): Remove rule. + (CFLAGS-oldsendmsg.c): Likewise. + (CFLAGS-recvmsg.c): Add rule. + (CFLAGS-sendmsg.c): Likewise. + * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove + oldrecvmsg, oldsendmsg, oldrecvmmsg, oldsendmmsg. + (CFLAGS-recvmsg.c): Remove rule. + (CFLAGS-sendmsg.c): Likewise. + (CFLAGS-oldrecvmsg.c): Likewise. + (CFLAGS-oldsendmsg.c): Likewise. + (CFLAGS-recvmmsg.c): Likewise. + * sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Revert + to kernel defined interfaces. + (msghdr.msg_controllen): Likewise. + (cmsghdr.cmsg_len): Likewise. + (msghdr.__glibc_reserved1): Remove member. + (msghdr.__glibc_reserved2): Likewise. + (cmsghdr.__glibc_reserved1): Likewise. + * sysdeps/unix/sysv/linux/oldrecvmmsg.c: Remove file. + * sysdeps/unix/sysv/linux/oldrecvmsg.c: Likewise. + * sysdeps/unix/sysv/linux/oldsendmmsg.c: Likewise. + * sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise. + * sysdeps/unix/sysv/linux/recvmmsg.c: Revert back to previous + version. + * sysdeps/unix/sysv/linux/recvmsg.c: Likewise. + * sysdeps/unix/sysv/linux/sendmmsg.c: Likewise. + * sysdeps/unix/sysv/linux/sendmsg.c: Likewise. + * sysdeps/unix/sysv/linux/aarch64/Versions [libc] (GLIBC_2.24): + Remove recvmsg and sendmsg. + * sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/hppa/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/i386/Versions [libc] (GLIBC_2.24): Likewise. + * sysdeps/unix/sysv/linux/m68k/Versions [libc] (GLIBC_2.24): Likewise. + * sysdeps/unix/sysv/linux/microblaze/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/Versions + [libc] (GLIBC_2.24): Likewise. + * sysdeps/unix/sysv/linux/nios2/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions + [libc] (GLIBC_2.24): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/sh/Versions [libc] (GLIBC_2.24): Likewise. + * sysdeps/unix/sysv/linux/sparc/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/tile/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/Versions [libc] (GLIBC_2.24): + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions: Remove file + * sysdeps/unix/sysv/linux/x86_64/64/Versions: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/Versions: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Remove new 2.24 + version for {recv,send,recm,sendm}msg. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + 2016-06-10 Florian Weimer [BZ #19564] diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data index 3a6cf7c6738..442d4d288ab 100644 --- a/conform/data/sys/socket.h-data +++ b/conform/data/sys/socket.h-data @@ -22,9 +22,10 @@ type {struct msghdr} element {struct msghdr} {void*} msg_name element {struct msghdr} socklen_t msg_namelen element {struct msghdr} {struct iovec*} msg_iov -element {struct msghdr} int msg_iovlen +// Bug 16919: wrong type for msg_iovlen and msg_controllen members. +xfail-element {struct msghdr} int msg_iovlen element {struct msghdr} {void*} msg_control -element {struct msghdr} socklen_t msg_controllen +xfail-element {struct msghdr} socklen_t msg_controllen element {struct msghdr} int msg_flags type {struct iovec} @@ -34,7 +35,8 @@ element {struct iovec} size_t iov_len type {struct cmsghdr} -element {struct cmsghdr} socklen_t cmsg_len +// Bug 16919: wrong type for cmsg_len member. +xfail-element {struct cmsghdr} socklen_t cmsg_len element {struct cmsghdr} int cmsg_level element {struct cmsghdr} int cmsg_type diff --git a/nptl/Makefile b/nptl/Makefile index eaa6f7f2832..a159b58935a 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -115,7 +115,7 @@ libpthread-routines = nptl-init vars events version pt-interp \ ptw-pread ptw-pread64 ptw-pwrite ptw-pwrite64 \ ptw-tcdrain ptw-wait ptw-waitpid ptw-msgrcv ptw-msgsnd \ ptw-sigwait ptw-sigsuspend \ - ptw-oldrecvmsg ptw-oldsendmsg \ + ptw-recvmsg ptw-sendmsg \ pt-raise pt-system \ flockfile ftrylockfile funlockfile \ sigaction \ @@ -207,8 +207,8 @@ CFLAGS-accept.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-sendto.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-connect.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-recvfrom.c = -fexceptions -fasynchronous-unwind-tables -CFLAGS-oldrecvmsg.c = -fexceptions -fasynchronous-unwind-tables -CFLAGS-oldsendmsg.c = -fexceptions -fasynchronous-unwind-tables +CFLAGS-recvmsg.c = -fexceptions -fasynchronous-unwind-tables +CFLAGS-sendmsg.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-pt-system.c = -fexceptions diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index c57575fbcb5..35e1ed48d25 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -124,12 +124,9 @@ ifeq ($(subdir),socket) sysdep_headers += net/if_ppp.h net/ppp-comp.h \ net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \ net/if_slip.h net/if_packet.h net/if_shaper.h -sysdep_routines += cmsg_nxthdr oldrecvmsg oldsendmsg \ - oldrecvmmsg oldsendmmsg -CFLAGS-recvmsg.c = -fexceptions -fasynchronous-unwind-tables -CFLAGS-sendmsg.c = -fexceptions -fasynchronous-unwind-tables -CFLAGS-oldrecvmsg.c = -fexceptions -fasynchronous-unwind-tables -CFLAGS-oldsendmsg.c = -fexceptions -fasynchronous-unwind-tables +sysdep_routines += cmsg_nxthdr +CFLAGS-recvmmsg.c = -fexceptions -fasynchronous-unwind-tables +CFLAGS-sendmmsg.c = -fexceptions -fasynchronous-unwind-tables endif ifeq ($(subdir),sunrpc) diff --git a/sysdeps/unix/sysv/linux/aarch64/Versions b/sysdeps/unix/sysv/linux/aarch64/Versions index ae3742cc1ea..9bd87fe2d0b 100644 --- a/sysdeps/unix/sysv/linux/aarch64/Versions +++ b/sysdeps/unix/sysv/linux/aarch64/Versions @@ -5,10 +5,6 @@ ld { } } libc { - GLIBC_2.24 { - recvmsg; sendmsg; - } - GLIBC_PRIVATE { __vdso_clock_gettime; __vdso_clock_getres; diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 38788910c25..9cdb623a5c2 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2089,7 +2089,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions index 31abb2206ea..29b82f999b6 100644 --- a/sysdeps/unix/sysv/linux/alpha/Versions +++ b/sysdeps/unix/sysv/linux/alpha/Versions @@ -85,9 +85,6 @@ libc { #errlist-compat 140 _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; } - GLIBC_2.24 { - recvmsg; sendmsg; - } GLIBC_PRIVATE { __libc_alpha_cache_shape; } diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 5ce7e10c445..f3f3c70ca6f 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2000,10 +2000,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 9f8eecc4c5b..a93803d1825 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -90,8 +90,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h index ef4629a7437..2eb95f7e20b 100644 --- a/sysdeps/unix/sysv/linux/bits/socket.h +++ b/sysdeps/unix/sysv/linux/bits/socket.h @@ -27,8 +27,6 @@ #include #include -#include -#include /* Type for length arguments in socket calls. */ #ifndef __socklen_t_defined @@ -252,32 +250,13 @@ struct msghdr socklen_t msg_namelen; /* Length of address data. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ -#if __WORDSIZE == 64 -# if __BYTE_ORDER == __BIG_ENDIAN - int __glibc_reserved1; /* Pad to adjust Linux size to POSIX defined - size for msg_iovlen. */ - int msg_iovlen; /* Number of elements in the vector. */ -# else - int msg_iovlen; - int __glibc_reserved1; -# endif -#else - int msg_iovlen; -#endif + size_t msg_iovlen; /* Number of elements in the vector. */ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */ -#if __WORDSIZE == 64 -# if __BYTE_ORDER == __BIG_ENDIAN - int __glibc_reserved2; /* Pad to adjust Linux size to POSIX defined - size for msg_controllen. */ - socklen_t msg_controllen; /* Ancillary data buffer length. */ -# else - socklen_t msg_controllen; - int __glibc_reserved2; -# endif -#else - socklen_t msg_controllen; -#endif + size_t msg_controllen; /* Ancillary data buffer length. + !! The type should be socklen_t but the + definition of the kernel is incompatible + with this. */ int msg_flags; /* Flags on received message. */ }; @@ -285,19 +264,11 @@ struct msghdr /* Structure used for storage of ancillary data object information. */ struct cmsghdr { -#if __WORDSIZE == 64 -# if __BYTE_ORDER == __BIG_ENDIAN - int __glibc_reserved1; /* Pad toadjust Linux size to POSIX defined - size for cmsg_len. */ - socklen_t cmsg_len; /* Length of data in cmsg_data plus length - of cmsghdr structure. */ -# else - socklen_t cmsg_len; - int __glibc_reserved1; -# endif -#else - socklen_t cmsg_len; -#endif + size_t cmsg_len; /* Length of data in cmsg_data plus length + of cmsghdr structure. + !! The type should be socklen_t but the + definition of the kernel is incompatible + with this. */ int cmsg_level; /* Originating protocol. */ int cmsg_type; /* Protocol specific type. */ #if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions index f0af95ef461..b5098b21710 100644 --- a/sysdeps/unix/sysv/linux/hppa/Versions +++ b/sysdeps/unix/sysv/linux/hppa/Versions @@ -35,7 +35,4 @@ libc { GLIBC_2.19 { fanotify_mark; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 421b6feaea6..58ed1333853 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1854,8 +1854,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/i386/Versions b/sysdeps/unix/sysv/linux/i386/Versions index 64d503b62d0..f3544acb75d 100644 --- a/sysdeps/unix/sysv/linux/i386/Versions +++ b/sysdeps/unix/sysv/linux/i386/Versions @@ -45,9 +45,6 @@ libc { # f* fallocate64; } - GLIBC_2.24 { - recvmsg; sendmsg; - } GLIBC_PRIVATE { __modify_ldt; } diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index b7fc26c4cdd..61cbae0f580 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2012,8 +2012,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index e0df2e3ae24..d40d264ef22 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1876,10 +1876,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/m68k/Versions b/sysdeps/unix/sysv/linux/m68k/Versions index 2dc2e83d079..7ecc96ea972 100644 --- a/sysdeps/unix/sysv/linux/m68k/Versions +++ b/sysdeps/unix/sysv/linux/m68k/Versions @@ -40,9 +40,6 @@ libc { GLIBC_2.12 { __m68k_read_tp; } - GLIBC_2.24 { - recvmsg; sendmsg; - } GLIBC_PRIVATE { __vdso_atomic_cmpxchg_32; __vdso_atomic_barrier; } diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index f80cdfe28ef..64432ae0e10 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -91,8 +91,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 9132c26e775..8086c3857eb 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1968,8 +1968,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/Versions b/sysdeps/unix/sysv/linux/microblaze/Versions index 2e93b8a43af..aa48a3c1551 100644 --- a/sysdeps/unix/sysv/linux/microblaze/Versions +++ b/sysdeps/unix/sysv/linux/microblaze/Versions @@ -2,7 +2,4 @@ libc { GLIBC_2.18 { fallocate64; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 94439272a5c..8c4c3bba457 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2089,5 +2089,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/Versions b/sysdeps/unix/sysv/linux/mips/mips32/Versions index c4f38d8faf9..9621fb5cae8 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/Versions +++ b/sysdeps/unix/sysv/linux/mips/mips32/Versions @@ -3,7 +3,4 @@ libc { getrlimit64; setrlimit64; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 69386b2a94a..db014edc510 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1943,8 +1943,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 62ba3f918ea..33ac881346b 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1941,8 +1941,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions b/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions index c4f38d8faf9..9621fb5cae8 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions @@ -3,7 +3,4 @@ libc { getrlimit64; setrlimit64; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 49b2ad7aa52..b8b2c0eabbc 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1939,8 +1939,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/Versions b/sysdeps/unix/sysv/linux/mips/mips64/n64/Versions deleted file mode 100644 index 517d79a8809..00000000000 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/Versions +++ /dev/null @@ -1,5 +0,0 @@ -libc { - GLIBC_2.24 { - recvmsg; sendmsg; - } -} diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 445db92115f..07413015f49 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1934,10 +1934,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/nios2/Versions b/sysdeps/unix/sysv/linux/nios2/Versions index 93458f5951b..e42c85f5759 100644 --- a/sysdeps/unix/sysv/linux/nios2/Versions +++ b/sysdeps/unix/sysv/linux/nios2/Versions @@ -3,7 +3,4 @@ libc { _flush_cache; cacheflush; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index d854b6d8c99..fa04825b2b0 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2130,5 +2130,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F diff --git a/sysdeps/unix/sysv/linux/oldrecvmmsg.c b/sysdeps/unix/sysv/linux/oldrecvmmsg.c deleted file mode 100644 index 4bf849bb581..00000000000 --- a/sysdeps/unix/sysv/linux/oldrecvmmsg.c +++ /dev/null @@ -1,87 +0,0 @@ -/* Compatibility version of recvmsg. - Copyright (C) 2010-2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -#if __WORDSIZE == 64 -# if SHLIB_COMPAT (libc, GLIBC_2_12, GLIBC_2_24) - -/* 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 - -int -__old_recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, - int flags, struct timespec *tmo) -{ -# ifdef __NR_recvmmsg - return SYSCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo); -# elif defined __NR_socketcall -# ifdef __ASSUME_RECVMMSG_SOCKETCALL - return SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo); -# else - static int have_recvmmsg; - if (__glibc_likely (have_recvmmsg >= 0)) - { - int ret = SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, - tmo); - /* The kernel returns -EINVAL for unknown socket operations. - We need to convert that error to an ENOSYS error. */ - if (__builtin_expect (ret < 0, 0) - && have_recvmmsg == 0 - && errno == EINVAL) - { - /* Try another call, this time with an invalid file - descriptor and all other parameters cleared. This call - will not cause any harm and it will return - immediately. */ - ret = SOCKETCALL_CANCEL (invalid, -1); - if (errno == EINVAL) - { - have_recvmmsg = -1; - __set_errno (ENOSYS); - } - else - { - have_recvmmsg = 1; - __set_errno (EINVAL); - } - return -1; - } - return ret; - } - __set_errno (ENOSYS); - return -1; -# endif /* __ASSUME_RECVMMSG_SOCKETCALL */ -# else - __set_errno (ENOSYS); - return -1; -# endif -} -compat_symbol (libc, __old_recvmmsg, recvmmsg, GLIBC_2_12); - -# endif /* SHLIB_COMPAT (libc, GLIBC_2_12, GLIBC_2_24) */ -#endif /* __WORDSIZE == 64 */ diff --git a/sysdeps/unix/sysv/linux/oldrecvmsg.c b/sysdeps/unix/sysv/linux/oldrecvmsg.c deleted file mode 100644 index 01c596e09a6..00000000000 --- a/sysdeps/unix/sysv/linux/oldrecvmsg.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Compatibility version of recvmsg. - Copyright (C) 2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -/* Both libc.so and libpthread.so provides sendmsg, so we need to - provide the compat symbol for both libraries. */ -#if SHLIB_COMPAT (MODULE_NAME, GLIBC_2_0, GLIBC_2_24) - -/* We can use the same struct layout for old symbol version since - size is the same. */ -ssize_t -__old_recvmsg (int fd, struct msghdr *msg, int flags) -{ -# ifdef __ASSUME_RECVMSG_SYSCALL - return SYSCALL_CANCEL (recvmsg, fd, msg, flags); -# else - return SOCKETCALL_CANCEL (recvmsg, fd, msg, flags); -# endif -} -compat_symbol (MODULE_NAME, __old_recvmsg, recvmsg, GLIBC_2_0); -#endif diff --git a/sysdeps/unix/sysv/linux/oldsendmmsg.c b/sysdeps/unix/sysv/linux/oldsendmmsg.c deleted file mode 100644 index e40c31121c4..00000000000 --- a/sysdeps/unix/sysv/linux/oldsendmmsg.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Compatibility implementation of sendmmsg. - Copyright (C) 2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -#if __WORDSIZE == 64 -# if SHLIB_COMPAT (libc, GLIBC_2_14, GLIBC_2_24) - -int -__old_sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, - int flags) -{ -# ifdef __NR_sendmmsg - return SYSCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags); -# elif defined __NR_socketcall -# ifdef __ASSUME_SENDMMSG_SOCKETCALL - return SOCKETCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags); -# else - static int have_sendmmsg; - if (__glibc_likely (have_sendmmsg >= 0)) - { - int ret = SOCKETCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags); - /* The kernel returns -EINVAL for unknown socket operations. - We need to convert that error to an ENOSYS error. */ - if (__builtin_expect (ret < 0, 0) - && have_sendmmsg == 0 - && errno == EINVAL) - { - /* Try another call, this time with an invalid file - descriptor and all other parameters cleared. This call - will not cause any harm and it will return - immediately. */ - ret = SOCKETCALL_CANCEL (invalid, -1); - if (errno == EINVAL) - { - have_sendmmsg = -1; - __set_errno (ENOSYS); - } - else - { - have_sendmmsg = 1; - __set_errno (EINVAL); - } - return -1; - } - return ret; - } - __set_errno (ENOSYS); - return -1; -# endif /* __ASSUME_SENDMMSG_SOCKETCALL */ -# else /* defined __NR_socketcall */ - __set_errno (ENOSYS); - return -1; -# endif -} -compat_symbol (libc, __old_sendmmsg, sendmmsg, GLIBC_2_14); -# endif /* SHLIB_COMPAT (libc, GLIBC_2_14, GLIBC_2_24) */ -#endif /* __WORDSIZE == 64 */ diff --git a/sysdeps/unix/sysv/linux/oldsendmsg.c b/sysdeps/unix/sysv/linux/oldsendmsg.c deleted file mode 100644 index a96790aa231..00000000000 --- a/sysdeps/unix/sysv/linux/oldsendmsg.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Compatibility implementation of sendmsg. - Copyright (C) 2016 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include - -/* Both libc.so and libpthread.so provides sendmsg, so we need to - provide the compat symbol for both libraries. */ -#if SHLIB_COMPAT (MODULE_NAME, GLIBC_2_0, GLIBC_2_24) - -/* We can use the same struct layout for old symbol version since - size is the same. */ -ssize_t -__old_sendmsg (int fd, const struct msghdr *msg, int flags) -{ -# ifdef __ASSUME_SENDMSG_SYSCALL - return SYSCALL_CANCEL (sendmsg, fd, msg, flags); -# else - return SOCKETCALL_CANCEL (sendmsg, fd, msg, flags); -# endif -} -compat_symbol (MODULE_NAME, __old_sendmsg, sendmsg, GLIBC_2_0); -#endif diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/Versions index ab0db571375..8ebeea15a1b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/Versions +++ b/sysdeps/unix/sysv/linux/powerpc/Versions @@ -5,9 +5,6 @@ ld { } } libc { - GLIBC_2.24 { - recvmsg; sendmsg; - } GLIBC_PRIVATE { __vdso_get_tbfreq; __vdso_clock_gettime; diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index bcb4bd1c8d0..3d633c09998 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1972,8 +1972,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 01f49572ee9..a6b164bc23f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1977,8 +1977,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions index 53e5527cb3b..a8e88b89db8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions @@ -22,9 +22,6 @@ libc { GLIBC_2.17 { __ppc_get_timebase_freq; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } librt { diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 83486704abb..7200b762872 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2177,7 +2177,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 3de5d61cb79..de62ecb0f36 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -91,10 +91,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c index 08b89ba962d..bf18260b463 100644 --- a/sysdeps/unix/sysv/linux/recvmmsg.c +++ b/sysdeps/unix/sysv/linux/recvmmsg.c @@ -16,10 +16,12 @@ License along with the GNU C Library; if not, see . */ +#include #include -#include + #include -#include +#include +#include /* Do not use the recvmmsg syscall on socketcall architectures unless it was added at the same time as the socketcall support or can be @@ -30,39 +32,31 @@ # undef __NR_recvmmsg #endif -static inline void -adjust_mmsghdr (struct mmsghdr *vmessages, unsigned int vlen) -{ -#if __WORDSIZE == 64 - /* POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen - to be int and socklen_t respectively. However Linux defines it as - both size_t. So for 64-bit it requires some adjustments by zeroing - the pad fields. */ - struct mmsghdr *vmhdr = vmessages; - for (unsigned int i = 0; i != 0; i--, vmhdr++) - { - vmhdr->msg_hdr.__glibc_reserved1 = 0; - vmhdr->msg_hdr.__glibc_reserved2 = 0; - } -#endif -} - +#ifdef __NR_recvmmsg int -__recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, - int flags, struct timespec *tmo) +recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, + struct timespec *tmo) { -#ifdef __NR_recvmmsg - adjust_mmsghdr (vmessages, vlen); return SYSCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo); +} #elif defined __NR_socketcall +# include # ifdef __ASSUME_RECVMMSG_SOCKETCALL - adjust_mmsghdr (vmessages, vlen); +int +recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, + struct timespec *tmo) +{ return SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo); +} # else - static int have_recvmmsg; +static int have_recvmmsg; + +int +recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, + struct timespec *tmo) +{ if (__glibc_likely (have_recvmmsg >= 0)) { - adjust_mmsghdr (vmessages, vlen); int ret = SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo); /* The kernel returns -EINVAL for unknown socket operations. @@ -92,19 +86,8 @@ __recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, } __set_errno (ENOSYS); return -1; -# endif /* __ASSUME_RECVMMSG_SOCKETCALL */ -#else -# define STUB 1 - __set_errno (ENOSYS); - return -1; -#endif } -#ifdef STUB -stub_warning (recvmmsg) -#endif - -#if __WORDSIZE == 64 -versioned_symbol (libc, __recvmmsg, recvmmsg, GLIBC_2_24); +# endif /* __ASSUME_RECVMMSG_SOCKETCALL */ #else -weak_alias (__recvmmsg, recvmmsg) +# include #endif diff --git a/sysdeps/unix/sysv/linux/recvmsg.c b/sysdeps/unix/sysv/linux/recvmsg.c index 25a319358b9..14ba67e72c8 100644 --- a/sysdeps/unix/sysv/linux/recvmsg.c +++ b/sysdeps/unix/sysv/linux/recvmsg.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2015-2016 Free Software Foundation, Inc. +/* Linux recvmsg syscall wrapper. + Copyright (C) 2016 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,35 +24,11 @@ ssize_t __libc_recvmsg (int fd, struct msghdr *msg, int flags) { - ssize_t ret; - - /* POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen - to be int and socklen_t respectively. However Linux defines it as - both size_t. So for 64-bit it requires some adjustments by copying to - temporary header and zeroing the pad fields. */ -#if __WORDSIZE == 64 - struct msghdr hdr, *orig = msg; - if (msg != NULL) - { - hdr = *msg; - hdr.__glibc_reserved1 = 0; - hdr.__glibc_reserved2 = 0; - msg = &hdr; - } -#endif - -#ifdef __ASSUME_RECVMSG_SYSCALL - ret = SYSCALL_CANCEL (recvmsg, fd, msg, flags); -#else - ret = SOCKETCALL_CANCEL (recvmsg, fd, msg, flags); -#endif - -#if __WORDSIZE == 64 - if (orig != NULL) - *orig = hdr; -#endif - - return ret; +# ifdef __ASSUME_RECVMSG_SYSCALL + return SYSCALL_CANCEL (recvmsg, fd, msg, flags); +# else + return SOCKETCALL_CANCEL (recvmsg, fd, msg, flags); +# endif } +weak_alias (__libc_recvmsg, recvmsg) weak_alias (__libc_recvmsg, __recvmsg) -versioned_symbol (libc, __libc_recvmsg, recvmsg, GLIBC_2_24); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/Versions b/sysdeps/unix/sysv/linux/s390/s390-32/Versions index afcc3fee4e0..1c120e8cbea 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/Versions +++ b/sysdeps/unix/sysv/linux/s390/s390-32/Versions @@ -49,9 +49,6 @@ libc { GLIBC_2.11 { fallocate64; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } libutil { diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 761f3401caa..8da0bc087fd 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1972,8 +1972,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/sysdeps/unix/sysv/linux/s390/s390-64/Versions index fde5aeee482..3f4d9604215 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/Versions +++ b/sysdeps/unix/sysv/linux/s390/s390-64/Versions @@ -4,9 +4,6 @@ libc { __register_frame; __register_frame_table; __deregister_frame; __frame_state_for; __register_frame_info_table; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } librt { diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index b7f53710851..59066a94024 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1873,10 +1873,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sendmmsg.c b/sysdeps/unix/sysv/linux/sendmmsg.c index 9b193438cef..6e0d46be9e3 100644 --- a/sysdeps/unix/sysv/linux/sendmmsg.c +++ b/sysdeps/unix/sysv/linux/sendmmsg.c @@ -16,10 +16,12 @@ License along with the GNU C Library; if not, see . */ +#include #include -#include + #include -#include +#include +#include /* Do not use the sendmmsg syscall on socketcall architectures unless it was added at the same time as the socketcall support or can be @@ -30,53 +32,31 @@ # undef __NR_sendmmsg #endif -#if __WORDSIZE == 64 -static inline int -send_mmsghdr (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags) -{ - /* Emulate kernel interface for vlen size. */ - if (vlen > IOV_MAX) - vlen = IOV_MAX; - if (vlen == 0) - return 0; - /* POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen - to be int and socklen_t respectively, however Linux defines it as both - size_t. So for 64-bit it requires some adjustments by copying to - temporary header and zeroing the pad fields. - The problem is sendmmsg's msghdr may points to an already-filled control - buffer and modifying it is not part of sendmmsg contract (the data may - be in ro map). So interact over the msghdr calling the sendmsg that - adjust the header using a temporary buffer. */ - for (unsigned int i = 0; i < vlen; i++) - { - ssize_t ret = __sendmsg (fd, &vmessages[i].msg_hdr, flags); - if (ret < 0) - return -1; - vmessages[i].msg_len = ret; - } - return 1; -} -#endif - +#ifdef __NR_sendmmsg int __sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags) { -#if __WORDSIZE == 64 - return send_mmsghdr (fd, vmessages, vlen, flags); -#elif defined __NR_sendmmsg return SYSCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags); +} +libc_hidden_def (__sendmmsg) +weak_alias (__sendmmsg, sendmmsg) #elif defined __NR_socketcall +# include # ifdef __ASSUME_SENDMMSG_SOCKETCALL +int +__sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags) +{ return SOCKETCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags); +} # else - static int have_sendmmsg; +static int have_sendmmsg; + +int +__sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags) +{ if (__glibc_likely (have_sendmmsg >= 0)) { -# if __WORDSIZE == 64 - int ret = send_mmsghdr (fd, vmessages, vlen, flags); -# else int ret = SOCKETCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags); -# endif /* The kernel returns -EINVAL for unknown socket operations. We need to convert that error to an ENOSYS error. */ if (__builtin_expect (ret < 0, 0) @@ -104,20 +84,10 @@ __sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags) } __set_errno (ENOSYS); return -1; -# endif /* __ASSUME_SENDMMSG_SOCKETCALL */ -#else /* defined __NR_socketcall */ -# define STUB 1 - __set_errno (ENOSYS); - return -1; -#endif } -#ifdef STUB -stub_warning (sendmmsg) -#endif - +# endif /* __ASSUME_SENDMMSG_SOCKETCALL */ libc_hidden_def (__sendmmsg) -#if __WORDSIZE == 64 -versioned_symbol (libc, __sendmmsg, sendmmsg, GLIBC_2_24); -#else weak_alias (__sendmmsg, sendmmsg) +#else +# include #endif diff --git a/sysdeps/unix/sysv/linux/sendmsg.c b/sysdeps/unix/sysv/linux/sendmsg.c index a5ef238c4a2..e10ab60ec34 100644 --- a/sysdeps/unix/sysv/linux/sendmsg.c +++ b/sysdeps/unix/sysv/linux/sendmsg.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2015-2016 Free Software Foundation, Inc. +/* Compatibility implementation of sendmsg. + Copyright (C) 2016 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,26 +24,11 @@ ssize_t __libc_sendmsg (int fd, const struct msghdr *msg, int flags) { - /* POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen - to be int and socklen_t respectively. However Linux defines it as - both size_t. So for 64-bit it requires some adjustments by copying to - temporary header and zeroing the pad fields. */ -#if __WORDSIZE == 64 - struct msghdr hdr; - if (msg != NULL) - { - hdr = *msg; - hdr.__glibc_reserved1 = 0; - hdr.__glibc_reserved2 = 0; - msg = &hdr; - } -#endif - -#ifdef __ASSUME_SENDMSG_SYSCALL +# ifdef __ASSUME_SENDMSG_SYSCALL return SYSCALL_CANCEL (sendmsg, fd, msg, flags); -#else +# else return SOCKETCALL_CANCEL (sendmsg, fd, msg, flags); -#endif +# endif } +weak_alias (__libc_sendmsg, sendmsg) weak_alias (__libc_sendmsg, __sendmsg) -versioned_symbol (libc, __libc_sendmsg, sendmsg, GLIBC_2_24); diff --git a/sysdeps/unix/sysv/linux/sh/Versions b/sysdeps/unix/sysv/linux/sh/Versions index ae5a00e640f..e0938c41658 100644 --- a/sysdeps/unix/sysv/linux/sh/Versions +++ b/sysdeps/unix/sysv/linux/sh/Versions @@ -30,7 +30,4 @@ libc { GLIBC_2.16 { fanotify_mark; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index fb58c06b3d8..01ca9e65ba6 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1858,8 +1858,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions index adbdec508a7..4dc1cd720b2 100644 --- a/sysdeps/unix/sysv/linux/sparc/Versions +++ b/sysdeps/unix/sysv/linux/sparc/Versions @@ -29,9 +29,6 @@ libc { __getshmlba; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } libpthread { diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 01260e253b8..245c1c6d221 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1964,8 +1964,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions index f950070b4d8..fbea1bb2efd 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions @@ -8,9 +8,6 @@ libc { # w* wordexp; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } librt { diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 8884d4e4b7a..4478d137103 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1902,10 +1902,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/tile/Versions b/sysdeps/unix/sysv/linux/tile/Versions index a68e181940f..13da68fa791 100644 --- a/sysdeps/unix/sysv/linux/tile/Versions +++ b/sysdeps/unix/sysv/linux/tile/Versions @@ -11,9 +11,6 @@ libc { fallocate64; set_dataplane; } - GLIBC_2.24 { - recvmsg; sendmsg; - } GLIBC_PRIVATE { __syscall_error; __vdso_clock_gettime; diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 81eea084405..c1a26134185 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2096,5 +2096,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions deleted file mode 100644 index 517d79a8809..00000000000 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions +++ /dev/null @@ -1,5 +0,0 @@ -libc { - GLIBC_2.24 { - recvmsg; sendmsg; - } -} diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 9ce9b57b28e..35fbf8a9040 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2096,7 +2096,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 81eea084405..c1a26134185 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2096,5 +2096,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/Versions b/sysdeps/unix/sysv/linux/x86_64/64/Versions deleted file mode 100644 index 517d79a8809..00000000000 --- a/sysdeps/unix/sysv/linux/x86_64/64/Versions +++ /dev/null @@ -1,5 +0,0 @@ -libc { - GLIBC_2.24 { - recvmsg; sendmsg; - } -} diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 03549b17dfe..c1054ce9d26 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1853,10 +1853,6 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmmsg F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmmsg F -GLIBC_2.24 sendmsg F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/Versions b/sysdeps/unix/sysv/linux/x86_64/Versions index bbef7e08e53..2a7ed280fd7 100644 --- a/sysdeps/unix/sysv/linux/x86_64/Versions +++ b/sysdeps/unix/sysv/linux/x86_64/Versions @@ -6,9 +6,6 @@ libc { modify_ldt; } - GLIBC_2.24 { - recvmsg; sendmsg; - } } librt { diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 86dab3ff014..2fd6d60d388 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2096,5 +2096,3 @@ GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F -GLIBC_2.24 recvmsg F -GLIBC_2.24 sendmsg F