From af7f7c7ec8dea1aad43f2cbed34c8a7c246fba97 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Fri, 18 Mar 2016 17:34:33 -0300 Subject: network: recvmsg and sendmsg standard compliance (BZ#16919) POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen to be of size int and socklen_t respectively. However Linux defines it as both size_t and for 64-bit it requires some adjustments to make the functions standard compliance. This patch fixes it by creating a temporary header and zeroing the pad fields for 64-bits architecture where size of size_t exceeds the size of the int. Also the new recvmsg and sendmsg implementation is only added on libc, with libpthread only containing a compat symbol. Tested on x86_64, i686, aarch64, armhf, and powerpc64le. * conform/data/sys/socket.h-data (msghdr.msg_iovlen): Remove xfail- and change to correct expected type. (msghdr.msg_controllen): Likewise. (cmsghdr.cmsg_len): Likewise. * sysdeps/unix/sysv/linux/bits/socket.h (msghdr.msg_iovlen): Fix expected POSIX assumption about the size. (msghdr.msg_controllen): Likewise. (msghdr.__glibc_reserved1): Likewise. (msghdr.__glibc_reserved2): Likewise. (cmsghdr.cmsg_len): Likewise. (cmsghdr.__glibc_reserved1): Likewise. * nptl/Makefile (libpthread-routines): Remove ptw-recvmsg and ptw-sendmsg. Add ptw-oldrecvmsg and ptw-oldsendmsg. (CFLAGS-sendmsg.c): Remove rule. (CFLAGS-recvmsg.c): Likewise. (CFLAGS-oldsendmsg.c): Add rule. (CFLAGS-oldrecvmsg.c): Likewise. * sysdeps/unix/sysv/linux/alpha/Versions [libc] (GLIBC_2.24): Add recvmsg and sendmsg. * sysdeps/unix/sysv/linux/aarch64/Version [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/arm/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/ia64/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/mips/mips64/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/tile/tilegx/tilegx64/Versions [libc] (GLIBC_2.24): Likewise. ( sysdeps/unix/sysv/linux/x86_64/64/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/x84_64/Versions [libc] (GLIBC_2.24): Likewise. * sysdeps/unix/sysv/linux/Makefile [$(subdir) = socket)] (sysdep_headers): Add oldrecvmsg and oldsendmsg. (CFLAGS-sendmsg.c): Add rule. (CFLAGS-recvmsg.c): Likewise. (CFLAGS-oldsendmsg.c): Likewise. (CFLAGS-oldrecvmsg.c): Likewise. * sysdeps/unix/sysv/linux/check_native.c (__check_native): Fix msghdr initialization. * sysdeps/unix/sysv/linux/check_pf.c (make_request): Likewise. * sysdeps/unix/sysv/linux/ifaddrs.c (__netlink_request): Likewise. * sysdeps/unix/sysv/linux/oldrecvmsg.c: New file. * sysdeps/unix/sysv/linux/oldsendmsg.c: Likewise. * sysdeps/unix/sysv/linux/recvmsg.c (__libc_recvmsg): Adjust msghdr iovlen and controllen fields to adjust to POSIX specification. * sysdeps/unix/sysv/linux/sendmsg.c (__libc_sendmsg): Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: New version and added recvmsg and sendmsg. * sysdeps/unix/sysv/linux/alpha/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/nios2/libc.abilist: Likewise * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdepe/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. Likewise. 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/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/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. --- sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 +++ 1 file changed, 3 insertions(+) (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 0fa4ee9bea..7822242258 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -1998,6 +1998,9 @@ GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F +GLIBC_2.24 GLIBC_2.24 A +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 -- cgit v1.2.3 From 222c2d7f4357d66073176f3beec67af40f0486c7 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Thu, 17 Mar 2016 09:52:17 -0300 Subject: network: recvmmsg and sendmmsg standard compliance (BZ#16919) POSIX specifies that both msghdr::msg_iovlen and msghdr::msg_controllen to be of size int and socklen_t respectively, however Linux implements it as a size_t. So for 64-bits architecture where sizeof of size_t is larger than socklen_t, both sendmmsg and recvmmsg need to adjust the mmsghdr::msg_hdr internal fields before issuing the syscall itself. This patch fixes it by operating on the padding if it the case. For recvmmsg, the most straightfoward case, only zero padding the fields is suffice. However, for sendmmsg, where adjusting the buffer is out of the contract (since it may point to a read-only data), the function is rewritten to use sendmsg instead (which from previous patch allocates a temporary msghdr to operate on). Also for 64-bit ports that requires it, a new recvmmsg and sendmmsg compat version is created (which uses size_t for both cmsghdr::cmsg_len and internal Tested on x86_64, i686, aarch64, armhf, and powerpc64le. * sysdeps/unix/sysv/linux/Makefile [$(subdir) = socket] (sysdep_routines): Add oldrecvmmsg and oldsendmmsg. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add recvmmsg and sendmmsg. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/oldrecvmmsg.c: New file. * sysdeps/unix/sysv/linux/oldsendmmsg.c: Likewise. * sysdeps/unix/sysv/linux/recvmmsg.c (__recvmmsg): Adjust msghdr iovlen and controllen fields to adjust to POSIX specification. * sysdeps/unix/sysv/linux/sendmmsg.c (__sendmmsg): Likewise. --- ChangeLog | 21 ++++++ sysdeps/unix/sysv/linux/Makefile | 3 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 + sysdeps/unix/sysv/linux/oldrecvmmsg.c | 87 ++++++++++++++++++++++ sysdeps/unix/sysv/linux/oldsendmmsg.c | 76 +++++++++++++++++++ .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 2 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 2 + sysdeps/unix/sysv/linux/recvmmsg.c | 61 +++++++++------ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 + sysdeps/unix/sysv/linux/sendmmsg.c | 72 ++++++++++++------ sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 + 16 files changed, 296 insertions(+), 44 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/oldrecvmmsg.c create mode 100644 sysdeps/unix/sysv/linux/oldsendmmsg.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index d16c2b71e6..c0b975e094 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,26 @@ 2016-05-25 Adhemerval Zanella + * sysdeps/unix/sysv/linux/Makefile + [$(subdir) = socket] (sysdep_routines): Add oldrecvmmsg and + oldsendmmsg. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add recvmmsg and + sendmmsg. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. + * sysdeps/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/oldrecvmmsg.c: New file. + * sysdeps/unix/sysv/linux/oldsendmmsg.c: Likewise. + * sysdeps/unix/sysv/linux/recvmmsg.c (__recvmmsg): Adjust msghdr + iovlen and controllen fields to adjust to POSIX specification. + * sysdeps/unix/sysv/linux/sendmmsg.c (__sendmmsg): Likewise. + * conform/data/sys/socket.h-data (msghdr.msg_iovlen): Remove xfail- and change to correct expected type. (msghdr.msg_controllen): Likewise. diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index bbba51bda8..c57575fbcb 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -124,7 +124,8 @@ 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 +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 diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index c3f2346ad1..79818172ba 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2088,5 +2088,7 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 7822242258..0c1e1acc71 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -1999,7 +1999,9 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index f5739b47da..b1388d11ad 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1875,7 +1875,9 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 6722f90fb0..0e2ff7502c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1933,7 +1933,9 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 diff --git a/sysdeps/unix/sysv/linux/oldrecvmmsg.c b/sysdeps/unix/sysv/linux/oldrecvmmsg.c new file mode 100644 index 0000000000..4bf849bb58 --- /dev/null +++ b/sysdeps/unix/sysv/linux/oldrecvmmsg.c @@ -0,0 +1,87 @@ +/* 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/oldsendmmsg.c b/sysdeps/unix/sysv/linux/oldsendmmsg.c new file mode 100644 index 0000000000..e40c31121c --- /dev/null +++ b/sysdeps/unix/sysv/linux/oldsendmmsg.c @@ -0,0 +1,76 @@ +/* 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/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 7839b5a5dc..85286c42f3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2176,5 +2176,7 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 20d5a19654..0abd098e29 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -90,7 +90,9 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c index bf18260b46..08b89ba962 100644 --- a/sysdeps/unix/sysv/linux/recvmmsg.c +++ b/sysdeps/unix/sysv/linux/recvmmsg.c @@ -16,12 +16,10 @@ 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 @@ -32,31 +30,39 @@ # undef __NR_recvmmsg #endif -#ifdef __NR_recvmmsg +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 +} + 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 -int -recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, - struct timespec *tmo) -{ + adjust_mmsghdr (vmessages, vlen); return SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo); -} # else -static int have_recvmmsg; - -int -recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, - struct timespec *tmo) -{ + static int have_recvmmsg; 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. @@ -86,8 +92,19 @@ recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags, } __set_errno (ENOSYS); return -1; -} # endif /* __ASSUME_RECVMMSG_SOCKETCALL */ #else -# include +# 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); +#else +weak_alias (__recvmmsg, recvmmsg) #endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 5892fcdae9..03a9b97f81 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1872,7 +1872,9 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 diff --git a/sysdeps/unix/sysv/linux/sendmmsg.c b/sysdeps/unix/sysv/linux/sendmmsg.c index 6e0d46be9e..9b193438ce 100644 --- a/sysdeps/unix/sysv/linux/sendmmsg.c +++ b/sysdeps/unix/sysv/linux/sendmmsg.c @@ -16,12 +16,10 @@ 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 @@ -32,31 +30,53 @@ # undef __NR_sendmmsg #endif -#ifdef __NR_sendmmsg +#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 + 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; - -int -__sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags) -{ + static int have_sendmmsg; 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) @@ -84,10 +104,20 @@ __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 + libc_hidden_def (__sendmmsg) -weak_alias (__sendmmsg, sendmmsg) +#if __WORDSIZE == 64 +versioned_symbol (libc, __sendmmsg, sendmmsg, GLIBC_2_24); #else -# include +weak_alias (__sendmmsg, sendmmsg) #endif diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 015a2f10ac..38b976f1ed 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1901,7 +1901,9 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 1e160bde2c..07b1332a59 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2095,5 +2095,7 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 175339e7cd..baea1f56c3 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1852,7 +1852,9 @@ GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A +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 -- cgit v1.2.3 From 47dd3543d36465496970406da03db5aecdc377ee Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Mon, 6 Jun 2016 14:20:58 -0400 Subject: Bug 20198: quick_exit should not call destructors. In C++11 18.5.12 says "Objects shall not be destroyed as a result of calling quick_exit." In C11 quick_exit is silent about thread object destruction. Therefore to make glibc C++ compliant we do not call any thread local destructors. A new regression test verifies the fix. I will note that C++11 18.5.3 makes it clear that C++ defines additional requirements for _Exit() to prevent it from executing destructors. Given that the point of _Exit() is to terminate the process immediately it makes sense the C and C++ should line up and avoid calling destructors. No failures. New regtest passes. --- ChangeLog | 54 ++++++++++++++++++++++ stdlib/Makefile | 12 ++++- stdlib/Versions | 3 ++ stdlib/exit.c | 7 +-- stdlib/exit.h | 5 +- stdlib/quick_exit.c | 23 ++++++++- stdlib/tst-quick_exit.cc | 40 ++++++++++++++++ stdlib/tst-thread-quick_exit.cc | 50 ++++++++++++++++++++ sysdeps/arm/nacl/libc.abilist | 1 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 1 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 1 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 37 files changed, 215 insertions(+), 8 deletions(-) create mode 100644 stdlib/tst-quick_exit.cc create mode 100644 stdlib/tst-thread-quick_exit.cc (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index f6304a609f..8697644058 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,57 @@ +2016-06-03 Carlos O'Donell + + [BZ #20198] + * stdlib/Makefile (tests): Add tst-quick_exit, and + tst-thread-quick_exit. + [ifeq ($(have-cxx-thread_local),yes)] + (CFLAGS-tst-quick_exit.o): Use -stdc=c++11. + (CFLAGS-tst-thread-quick_exit.o): Likewise. + (LDLIBS-tst-quick_exit): Use -lstdc++ for C++ program. + (LDLIBS-tst-thread-quick_exit): Likewise. + [ifneq ($(have-cxx-thread_local),yes)] + (tests-unsupported): Add tst-quick_exit, and tst-thread-quick_exit. + * stdlib/exit.c (__run_exit_handlers): Add run_dtors argument. + If run_dtors is true call __call_tls_dtors. + (exit): Call __run_exit_handlers with run_dtors set to true. + * stdlib/exit.h: Add run_dtors argument to __run_exit_handlers + definition. + * stdlib/quick_exit.c (quick_exit): Remove function. + (__new_quick_exit): New function. + [SHLIB_COMPAT(libc, GLIBC_2_10, GLIBC_2_24)] (__old_quick_exit): New + function. + * stdlib/tst-quick_exit.cc: New file. + * stdlib/tst-thread-quick_exit.cc: New file. + * stdlib/Versions: Add quick_exit@GLIBC_2.24. + * sysdeps/arm/nacl/libc.abilist: Add 'GLIBC_2.24 quick_exit F'. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise + * 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/nios2/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/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-06 H.J. Lu * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Fix diff --git a/stdlib/Makefile b/stdlib/Makefile index e0eeadadd3..fc6f23dcaf 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -76,8 +76,18 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ tst-secure-getenv tst-strtod-overflow tst-strtod-round \ tst-tininess tst-strtod-underflow tst-tls-atexit \ tst-setcontext3 tst-tls-atexit-nodelete \ - tst-strtol-locale tst-strtod-nan-locale tst-strfmon_l + tst-strtol-locale tst-strtod-nan-locale tst-strfmon_l \ + tst-quick_exit tst-thread-quick_exit tests-static := tst-secure-getenv +ifeq ($(have-cxx-thread_local),yes) +CFLAGS-tst-quick_exit.o = -std=c++11 +LDLIBS-tst-quick_exit = -lstdc++ +CFLAGS-tst-thread-quick_exit.o = -std=c++11 +LDLIBS-tst-thread-quick_exit = -lstdc++ +$(objpfx)tst-thread-quick_exit: $(shared-thread-library) +else +tests-unsupported += tst-quick_exit tst-thread-quick_exit +endif modules-names = tst-tls-atexit-lib extra-test-objs += $(addsuffix .os, $(modules-names)) diff --git a/stdlib/Versions b/stdlib/Versions index 60b628d47a..9c06b43986 100644 --- a/stdlib/Versions +++ b/stdlib/Versions @@ -109,6 +109,9 @@ libc { GLIBC_2.18 { __cxa_thread_atexit_impl; } + GLIBC_2.24 { + quick_exit; + } GLIBC_PRIVATE { # functions which have an additional interface since they are # are cancelable. diff --git a/stdlib/exit.c b/stdlib/exit.c index 9d3c5f48df..b50b178c24 100644 --- a/stdlib/exit.c +++ b/stdlib/exit.c @@ -31,13 +31,14 @@ DEFINE_HOOK (__libc_atexit, (void)) void attribute_hidden __run_exit_handlers (int status, struct exit_function_list **listp, - bool run_list_atexit) + bool run_list_atexit, bool run_dtors) { /* First, call the TLS destructors. */ #ifndef SHARED if (&__call_tls_dtors != NULL) #endif - __call_tls_dtors (); + if (run_dtors) + __call_tls_dtors (); /* We do it this way to handle recursive calls to exit () made by the functions registered with `atexit' and `on_exit'. We call @@ -101,6 +102,6 @@ __run_exit_handlers (int status, struct exit_function_list **listp, void exit (int status) { - __run_exit_handlers (status, &__exit_funcs, true); + __run_exit_handlers (status, &__exit_funcs, true, true); } libc_hidden_def (exit) diff --git a/stdlib/exit.h b/stdlib/exit.h index b28a4c952b..b55e5d1a75 100644 --- a/stdlib/exit.h +++ b/stdlib/exit.h @@ -63,8 +63,9 @@ extern struct exit_function_list *__quick_exit_funcs attribute_hidden; extern struct exit_function *__new_exitfn (struct exit_function_list **listp); extern uint64_t __new_exitfn_called attribute_hidden; -extern void __run_exit_handlers (int status, struct exit_function_list **listp, - bool run_list_atexit) +extern void __run_exit_handlers (int status, + struct exit_function_list **listp, + bool run_list_atexit, bool run_dtors) attribute_hidden __attribute__ ((__noreturn__)); extern int __internal_atexit (void (*func) (void *), void *arg, void *d, diff --git a/stdlib/quick_exit.c b/stdlib/quick_exit.c index bb47472f9d..c0ac4a9007 100644 --- a/stdlib/quick_exit.c +++ b/stdlib/quick_exit.c @@ -19,11 +19,30 @@ #include #include #include +#include +#include +#include #include "exit.h" +void +__new_quick_exit (int status) +{ + /* The new quick_exit, following C++11 18.5.12, does not run object + destructors. While C11 says nothing about object destructors, + since it has none, the intent is to run the registered + at_quick_exit handlers and then run _Exit immediately without + disturbing the state of the process and threads. */ + __run_exit_handlers (status, &__quick_exit_funcs, false, false); +} +versioned_symbol (libc, __new_quick_exit, quick_exit, GLIBC_2_24); +#if SHLIB_COMPAT(libc, GLIBC_2_10, GLIBC_2_24) void -quick_exit (int status) +attribute_compat_text_section +__old_quick_exit (int status) { - __run_exit_handlers (status, &__quick_exit_funcs, false); + /* The old quick_exit runs thread_local destructors. */ + __run_exit_handlers (status, &__quick_exit_funcs, false, true); } +compat_symbol (libc, __old_quick_exit, quick_exit, GLIBC_2_10); +#endif diff --git a/stdlib/tst-quick_exit.cc b/stdlib/tst-quick_exit.cc new file mode 100644 index 0000000000..c4a15a901c --- /dev/null +++ b/stdlib/tst-quick_exit.cc @@ -0,0 +1,40 @@ +/* Bug 20198: Do not call object destructors at exit. + 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 + +struct A +{ + ~A() { abort(); } +}; + +thread_local A a; + +static int +do_test() +{ + (void)a; + /* The C++11 standard in 18.5.12 says: + "Objects shall not be destroyed as a result of calling + quick_exit." + If quick_exit calls the destructors the test aborts. */ + std::quick_exit(0); + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/stdlib/tst-thread-quick_exit.cc b/stdlib/tst-thread-quick_exit.cc new file mode 100644 index 0000000000..307d2a2430 --- /dev/null +++ b/stdlib/tst-thread-quick_exit.cc @@ -0,0 +1,50 @@ +/* Bug 20198: Do not call object destructors at exit. + 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 + +struct A +{ + ~A() { abort(); } +}; + +thread_local A a1; +thread_local A a2; + +/* Call std::quick_exit from a non-main thread. */ +void non_main_thread (void) +{ + (void)a1; + /* The C++11 standard in 18.5.12 says: + "Objects shall not be destroyed as a result of calling + quick_exit." + If quick_exit calls the destructors the test aborts. */ + std::quick_exit (0); +} + +static int +do_test() +{ + (void)a2; + std::thread th (non_main_thread); + th.join (); + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/sysdeps/arm/nacl/libc.abilist b/sysdeps/arm/nacl/libc.abilist index 05605109c8..2f7751d167 100644 --- a/sysdeps/arm/nacl/libc.abilist +++ b/sysdeps/arm/nacl/libc.abilist @@ -1840,3 +1840,4 @@ GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F GLIBC_2.23 fts64_read F GLIBC_2.23 fts64_set F +GLIBC_2.24 quick_exit F diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 79818172ba..38788910c2 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2088,6 +2088,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 0c1e1acc71..5ce7e10c44 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -1999,6 +1999,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 2b2f9f05a9..9f8eecc4c5 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -89,6 +89,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 84e84311a6..421b6feaea 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1853,6 +1853,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 0229cd6d9b..b7fc26c4cd 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2011,6 +2011,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index b1388d11ad..e0df2e3ae2 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1875,6 +1875,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 3a498cb36e..f80cdfe28e 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -90,6 +90,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 948b0506ba..9132c26e77 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1967,6 +1967,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index d7ba0bed17..94439272a5 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2088,5 +2088,6 @@ GLIBC_2.23 fts64_open F 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/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 87bb49b3b1..69386b2a94 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1942,6 +1942,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 1a415abad6..62ba3f918e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1940,6 +1940,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 949761b200..49b2ad7aa5 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1938,6 +1938,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 0e2ff7502c..445db92115 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1933,6 +1933,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 75ef1ab343..d854b6d8c9 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2129,5 +2129,6 @@ GLIBC_2.23 fts64_open F 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/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 5a0890e0e4..bcb4bd1c8d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1971,6 +1971,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index adbe736e87..01f49572ee 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1976,6 +1976,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 85286c42f3..83486704ab 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2176,6 +2176,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 0abd098e29..3de5d61cb7 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -90,6 +90,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 03983dfc29..761f3401ca 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1971,6 +1971,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 03a9b97f81..b7f5371085 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1872,6 +1872,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index a2d85e68c7..fb58c06b3d 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1857,6 +1857,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index c51e79066f..01260e253b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1963,6 +1963,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 38b976f1ed..8884d4e4b7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1901,6 +1901,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index cd48be13a7..81eea08440 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2095,5 +2095,6 @@ GLIBC_2.23 fts64_open F 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/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 07b1332a59..9ce9b57b28 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2095,6 +2095,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index cd48be13a7..81eea08440 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2095,5 +2095,6 @@ GLIBC_2.23 fts64_open F 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/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index baea1f56c3..03549b17df 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1852,6 +1852,7 @@ GLIBC_2.23 fts64_open F 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 diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 4f52e2e650..86dab3ff01 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2095,5 +2095,6 @@ GLIBC_2.23 fts64_open F 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 -- cgit v1.2.3 From 78880cc185dc521855a58001a28e3059722d8e85 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Thu, 9 Jun 2016 12:27:57 -0300 Subject: 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. --- ChangeLog | 102 +++++++++++++++++++++ conform/data/sys/socket.h-data | 8 +- nptl/Makefile | 6 +- sysdeps/unix/sysv/linux/Makefile | 9 +- sysdeps/unix/sysv/linux/aarch64/Versions | 4 - sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 - sysdeps/unix/sysv/linux/alpha/Versions | 3 - sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 - sysdeps/unix/sysv/linux/arm/libc.abilist | 2 - sysdeps/unix/sysv/linux/bits/socket.h | 49 ++-------- sysdeps/unix/sysv/linux/hppa/Versions | 3 - sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 - sysdeps/unix/sysv/linux/i386/Versions | 3 - sysdeps/unix/sysv/linux/i386/libc.abilist | 2 - sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 - sysdeps/unix/sysv/linux/m68k/Versions | 3 - sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 - sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 - sysdeps/unix/sysv/linux/microblaze/Versions | 3 - sysdeps/unix/sysv/linux/microblaze/libc.abilist | 2 - sysdeps/unix/sysv/linux/mips/mips32/Versions | 3 - .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 - .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 - sysdeps/unix/sysv/linux/mips/mips64/n32/Versions | 3 - .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 - sysdeps/unix/sysv/linux/mips/mips64/n64/Versions | 5 - .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 - sysdeps/unix/sysv/linux/nios2/Versions | 3 - sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 - sysdeps/unix/sysv/linux/oldrecvmmsg.c | 87 ------------------ sysdeps/unix/sysv/linux/oldrecvmsg.c | 40 -------- sysdeps/unix/sysv/linux/oldsendmmsg.c | 76 --------------- sysdeps/unix/sysv/linux/oldsendmsg.c | 40 -------- sysdeps/unix/sysv/linux/powerpc/Versions | 3 - .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 - .../linux/powerpc/powerpc32/nofpu/libc.abilist | 2 - sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions | 3 - .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 4 - .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 4 - sysdeps/unix/sysv/linux/recvmmsg.c | 61 +++++------- sysdeps/unix/sysv/linux/recvmsg.c | 39 ++------ sysdeps/unix/sysv/linux/s390/s390-32/Versions | 3 - sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 - sysdeps/unix/sysv/linux/s390/s390-64/Versions | 3 - sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 4 - sysdeps/unix/sysv/linux/sendmmsg.c | 72 +++++---------- sysdeps/unix/sysv/linux/sendmsg.c | 26 ++---- sysdeps/unix/sysv/linux/sh/Versions | 3 - sysdeps/unix/sysv/linux/sh/libc.abilist | 2 - sysdeps/unix/sysv/linux/sparc/Versions | 3 - sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 - sysdeps/unix/sysv/linux/sparc/sparc64/Versions | 3 - sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 4 - sysdeps/unix/sysv/linux/tile/Versions | 3 - .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 2 - .../unix/sysv/linux/tile/tilegx/tilegx64/Versions | 5 - .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 4 - sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 2 - sysdeps/unix/sysv/linux/x86_64/64/Versions | 5 - sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 4 - sysdeps/unix/sysv/linux/x86_64/Versions | 3 - sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 - 62 files changed, 180 insertions(+), 581 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/n64/Versions delete mode 100644 sysdeps/unix/sysv/linux/oldrecvmmsg.c delete mode 100644 sysdeps/unix/sysv/linux/oldrecvmsg.c delete mode 100644 sysdeps/unix/sysv/linux/oldsendmmsg.c delete mode 100644 sysdeps/unix/sysv/linux/oldsendmsg.c delete mode 100644 sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Versions delete mode 100644 sysdeps/unix/sysv/linux/x86_64/64/Versions (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 9f9c7080a7..34f51b5890 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 3a6cf7c673..442d4d288a 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 eaa6f7f283..a159b58935 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 c57575fbcb..35e1ed48d2 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 ae3742cc1e..9bd87fe2d0 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 38788910c2..9cdb623a5c 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 31abb2206e..29b82f999b 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 5ce7e10c44..f3f3c70ca6 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 9f8eecc4c5..a93803d182 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 ef4629a743..2eb95f7e20 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 f0af95ef46..b5098b2171 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 421b6feaea..58ed133385 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 64d503b62d..f3544acb75 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 b7fc26c4cd..61cbae0f58 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 e0df2e3ae2..d40d264ef2 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 2dc2e83d07..7ecc96ea97 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 f80cdfe28e..64432ae0e1 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 9132c26e77..8086c3857e 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 2e93b8a43a..aa48a3c155 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 94439272a5..8c4c3bba45 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 c4f38d8faf..9621fb5cae 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 69386b2a94..db014edc51 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 62ba3f918e..33ac881346 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 c4f38d8faf..9621fb5cae 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 49b2ad7aa5..b8b2c0eabb 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 517d79a880..0000000000 --- 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 445db92115..07413015f4 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 93458f5951..e42c85f575 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 d854b6d8c9..fa04825b2b 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 4bf849bb58..0000000000 --- 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 01c596e09a..0000000000 --- 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 e40c31121c..0000000000 --- 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 a96790aa23..0000000000 --- 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 ab0db57137..8ebeea15a1 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 bcb4bd1c8d..3d633c0999 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 01f49572ee..a6b164bc23 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 53e5527cb3..a8e88b89db 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 83486704ab..7200b76287 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 3de5d61cb7..de62ecb0f3 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 08b89ba962..bf18260b46 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 25a319358b..14ba67e72c 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 afcc3fee4e..1c120e8cbe 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 761f3401ca..8da0bc087f 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 fde5aeee48..3f4d960421 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 b7f5371085..59066a9402 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 9b193438ce..6e0d46be9e 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 a5ef238c4a..e10ab60ec3 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 ae5a00e640..e0938c4165 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 fb58c06b3d..01ca9e65ba 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 adbdec508a..4dc1cd720b 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 01260e253b..245c1c6d22 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 f950070b4d..fbea1bb2ef 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 8884d4e4b7..4478d13710 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 a68e181940..13da68fa79 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 81eea08440..c1a2613418 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 517d79a880..0000000000 --- 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 9ce9b57b28..35fbf8a904 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 81eea08440..c1a2613418 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 517d79a880..0000000000 --- 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 03549b17df..c1054ce9d2 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 bbef7e08e5..2a7ed280fd 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 86dab3ff01..2fd6d60d38 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 -- cgit v1.2.3 From 63eb8df85a17f7f966d4daa4cf44c8e956636a86 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Thu, 28 Apr 2016 12:29:55 -0400 Subject: Minimize sysdeps code involved in defining major/minor/makedev. Presently sys/sysmacros.h is entirely defined in sysdeps. This would mean that the deprecation logic coming up in the next patch would have to be written twice (in generic/ and unix/sysv/linux/). To avoid that, hoist all but the unavoidably system-dependent logic to misc/, leaving a bits/ header behind. This also promotes the Linux-specific encoding of dev_t, which accommodates 32-bit major and minor numbers in a 64-bit dev_t, to generic, as glibc's dev_t is always 64 bits wide. The former Linux implementation used inline functions to avoid evaluating arguments more than once. After this change, all platforms use inline functions, which means that three new symbols are added to the generic ABI. (These symbols are in the user namespace, which is how they have always been on Linux. They begin with "gnu_dev_", so collisions with user code are pretty unlikely.) New ports henceforth need only provide a bits/sysmacros.h defining internal macros __SYSMACROS_{DECLARE,DEFINE}_{MAJOR,MINOR,MAKEDEV}. This is only necessary if the kernel encoding is incompatible with the now-generic encoding (for instance, it would be necessary for FreeBSD). While I was at it, I added a basic round-trip test for these functions. * sysdeps/generic/sys/sysmacros.h: Delete file. * sysdeps/unix/sysv/linux/makedev.c: Delete file. * sysdeps/unix/sysv/linux/sys/sysmacros.h: Move file ... * bits/sysmacros.h: ... here; this encoding is now the generic encoding. Now defines only the following macros: __SYSMACROS_DECLARE_MAJOR, __SYSMACROS_DEFINE_MAJOR, __SYSMACROS_DECLARE_MINOR, __SYSMACROS_DEFINE_MINOR, __SYSMACROS_DECLARE_MAKEDEV, __SYSMACROS_DEFINE_MAKEDEV. * misc/sys/sysmacros.h, misc/makedev.c: New files that use bits/sysmacros.h and the above new macros to generate the public implementations of major, minor, and makedev. * misc/tst-makedev.c: New test. * include/sys/sysmacros.h: New wrapper. * misc/Makefile (headers): Add sys/sysmacros.h, bits/sysmacros.h. (routines): Add makedev. (tests): Add tst-makedev. * misc/Versions [GLIBC_2.25]: Add gnu_dev_major, gnu_dev_minor, gnu_dev_makedev. * posix/Makefile (headers): Remove sys/sysmacros.h. * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove makedev. * sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.25, gnu_dev_major, gnu_dev_makedev, gnu_dev_minor. * sysdeps/unix/sysv/linux/aarch64/libc.abilist * sysdeps/unix/sysv/linux/alpha/libc.abilist * sysdeps/unix/sysv/linux/arm/libc.abilist * sysdeps/unix/sysv/linux/hppa/libc.abilist * sysdeps/unix/sysv/linux/i386/libc.abilist * sysdeps/unix/sysv/linux/ia64/libc.abilist * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist * sysdeps/unix/sysv/linux/microblaze/libc.abilist * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist * sysdeps/unix/sysv/linux/nios2/libc.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist * sysdeps/unix/sysv/linux/sh/libc.abilist * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Add GLIBC_2.25. --- ChangeLog | 55 +++++++++++ bits/sysmacros.h | 74 +++++++++++++++ include/sys/sysmacros.h | 1 + misc/Makefile | 7 +- misc/Versions | 3 + misc/makedev.c | 30 ++++++ misc/sys/sysmacros.h | 64 +++++++++++++ misc/tst-makedev.c | 104 +++++++++++++++++++++ posix/Makefile | 2 +- sysdeps/arm/nacl/libc.abilist | 5 + sysdeps/generic/sys/sysmacros.h | 30 ------ sysdeps/unix/sysv/linux/Makefile | 2 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + sysdeps/unix/sysv/linux/makedev.c | 40 -------- sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sys/sysmacros.h | 65 ------------- .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 1 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 1 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 42 files changed, 370 insertions(+), 140 deletions(-) create mode 100644 bits/sysmacros.h create mode 100644 include/sys/sysmacros.h create mode 100644 misc/makedev.c create mode 100644 misc/sys/sysmacros.h create mode 100644 misc/tst-makedev.c delete mode 100644 sysdeps/generic/sys/sysmacros.h delete mode 100644 sysdeps/unix/sysv/linux/makedev.c delete mode 100644 sysdeps/unix/sysv/linux/sys/sysmacros.h (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index ceb28b5c74..d6a30781b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,60 @@ 2016-08-03 Zack Weinberg + * sysdeps/generic/sys/sysmacros.h: Delete file. + * sysdeps/unix/sysv/linux/makedev.c: Delete file. + * sysdeps/unix/sysv/linux/sys/sysmacros.h: Move file ... + * bits/sysmacros.h: ... here; this encoding is now the generic + encoding. Now defines only the following macros: + __SYSMACROS_DECLARE_MAJOR, __SYSMACROS_DEFINE_MAJOR, + __SYSMACROS_DECLARE_MINOR, __SYSMACROS_DEFINE_MINOR, + __SYSMACROS_DECLARE_MAKEDEV, __SYSMACROS_DEFINE_MAKEDEV. + + * misc/sys/sysmacros.h, misc/makedev.c: New files that use + bits/sysmacros.h and the above new macros to generate the + public implementations of major, minor, and makedev. + * misc/tst-makedev.c: New test. + * include/sys/sysmacros.h: New wrapper. + + * misc/Makefile (headers): Add sys/sysmacros.h, bits/sysmacros.h. + (routines): Add makedev. + (tests): Add tst-makedev. + * misc/Versions [GLIBC_2.25]: Add gnu_dev_major, gnu_dev_minor, + gnu_dev_makedev. + * posix/Makefile (headers): Remove sys/sysmacros.h. + * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove makedev. + + * sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.25, + gnu_dev_major, gnu_dev_makedev, gnu_dev_minor. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist + * sysdeps/unix/sysv/linux/alpha/libc.abilist + * sysdeps/unix/sysv/linux/arm/libc.abilist + * sysdeps/unix/sysv/linux/hppa/libc.abilist + * sysdeps/unix/sysv/linux/i386/libc.abilist + * sysdeps/unix/sysv/linux/ia64/libc.abilist + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist + * sysdeps/unix/sysv/linux/microblaze/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist + * sysdeps/unix/sysv/linux/nios2/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist + * sysdeps/unix/sysv/linux/sh/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: + Add GLIBC_2.25. + * include/features.h (__glibc_clang_prereq): New macro. * misc/sys/cdefs.h (__glibc_clang_has_extension) (__attribute_deprecated_msg__): New macros. diff --git a/bits/sysmacros.h b/bits/sysmacros.h new file mode 100644 index 0000000000..e2c0bc2f65 --- /dev/null +++ b/bits/sysmacros.h @@ -0,0 +1,74 @@ +/* Definitions of macros to access `dev_t' values. + Copyright (C) 1996-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 + . */ + +#ifndef _BITS_SYSMACROS_H +#define _BITS_SYSMACROS_H 1 + +#ifndef _SYS_SYSMACROS_H +# error "Never include directly; use instead." +#endif + +/* dev_t in glibc is a 64-bit quantity, with 32-bit major and minor numbers. + Our default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of + the major number and m is a hex digit of the minor number. This is + downward compatible with legacy systems where dev_t is 16 bits wide, + encoded as MMmm. It is also downward compatible with the Linux kernel, + which (as of 2016) uses 32-bit dev_t, encoded as mmmM MMmm. + + Systems that use an incompatible encoding for dev_t should override this + file in the appropriate sysdeps subdirectory. */ + +#define __SYSMACROS_DECLARE_MAJOR(DECL_TEMPL) \ + DECL_TEMPL(unsigned int, major, (__dev_t __dev)) + +#define __SYSMACROS_DEFINE_MAJOR(DECL_TEMPL) \ + __SYSMACROS_DECLARE_MAJOR (DECL_TEMPL) \ + { \ + unsigned int __major; \ + __major = ((__dev & (__dev_t) 0x00000000000fff00u) >> 8); \ + __major |= ((__dev & (__dev_t) 0xfffff00000000000u) >> 32); \ + return __major; \ + } + +#define __SYSMACROS_DECLARE_MINOR(DECL_TEMPL) \ + DECL_TEMPL(unsigned int, minor, (__dev_t __dev)) + +#define __SYSMACROS_DEFINE_MINOR(DECL_TEMPL) \ + __SYSMACROS_DECLARE_MINOR (DECL_TEMPL) \ + { \ + unsigned int __minor; \ + __minor = ((__dev & (__dev_t) 0x00000000000000ffu) >> 0); \ + __minor |= ((__dev & (__dev_t) 0x00000ffffff00000u) >> 12); \ + return __minor; \ + } + +#define __SYSMACROS_DECLARE_MAKEDEV(DECL_TEMPL) \ + DECL_TEMPL(__dev_t, makedev, (unsigned int __major, unsigned int __minor)) + +#define __SYSMACROS_DEFINE_MAKEDEV(DECL_TEMPL) \ + __SYSMACROS_DECLARE_MAKEDEV (DECL_TEMPL) \ + { \ + __dev_t __dev; \ + __dev = (((__dev_t) (__major & 0x00000fffu)) << 8); \ + __dev |= (((__dev_t) (__major & 0xfffff000u)) << 32); \ + __dev |= (((__dev_t) (__minor & 0x000000ffu)) << 0); \ + __dev |= (((__dev_t) (__minor & 0xffffff00u)) << 12); \ + return __dev; \ + } + +#endif /* bits/sysmacros.h */ diff --git a/include/sys/sysmacros.h b/include/sys/sysmacros.h new file mode 100644 index 0000000000..87813c5b53 --- /dev/null +++ b/include/sys/sysmacros.h @@ -0,0 +1 @@ +#include diff --git a/misc/Makefile b/misc/Makefile index 56e20ce521..3d2ebb8e45 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -34,7 +34,8 @@ headers := sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \ regexp.h bits/select.h bits/mman.h sys/xattr.h \ syslog.h sys/syslog.h \ bits/syslog.h bits/syslog-ldbl.h bits/syslog-path.h bits/error.h \ - bits/select2.h bits/hwcap.h sys/auxv.h + bits/select2.h bits/hwcap.h sys/auxv.h \ + sys/sysmacros.h bits/sysmacros.h routines := brk sbrk sstk ioctl \ readv writev preadv preadv64 pwritev pwritev64 \ @@ -67,7 +68,7 @@ routines := brk sbrk sstk ioctl \ getloadavg getclktck \ fgetxattr flistxattr fremovexattr fsetxattr getxattr \ listxattr lgetxattr llistxattr lremovexattr lsetxattr \ - removexattr setxattr getauxval ifunc-impl-list + removexattr setxattr getauxval ifunc-impl-list makedev generated += tst-error1.mtrace tst-error1-mem.out @@ -78,7 +79,7 @@ gpl2lgpl := error.c error.h tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \ tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240 \ - tst-preadvwritev tst-preadvwritev64 + tst-preadvwritev tst-preadvwritev64 tst-makedev ifeq ($(run-built-tests),yes) tests-special += $(objpfx)tst-error1-mem.out endif diff --git a/misc/Versions b/misc/Versions index 671f4870e9..f2c90fffda 100644 --- a/misc/Versions +++ b/misc/Versions @@ -152,6 +152,9 @@ libc { GLIBC_2.23 { # SHLIB_COMPAT(GLIBC_2_0, GLIBC_2_23) used in regexp.c } + GLIBC_2.25 { + gnu_dev_major; gnu_dev_minor; gnu_dev_makedev; + } GLIBC_PRIVATE { __madvise; __mktemp; diff --git a/misc/makedev.c b/misc/makedev.c new file mode 100644 index 0000000000..7303fb67a2 --- /dev/null +++ b/misc/makedev.c @@ -0,0 +1,30 @@ +/* Definitions of functions to access `dev_t' values. + Copyright (C) 2003-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 + +#undef __USE_EXTERN_INLINES +#define __SYSMACROS_NEED_IMPLEMENTATION +#include + +#define OUT_OF_LINE_IMPL_TEMPL(rtype, name, proto) \ + rtype gnu_dev_##name proto + +__SYSMACROS_DEFINE_MAJOR(OUT_OF_LINE_IMPL_TEMPL) +__SYSMACROS_DEFINE_MINOR(OUT_OF_LINE_IMPL_TEMPL) +__SYSMACROS_DEFINE_MAKEDEV(OUT_OF_LINE_IMPL_TEMPL) diff --git a/misc/sys/sysmacros.h b/misc/sys/sysmacros.h new file mode 100644 index 0000000000..dc2eb837a1 --- /dev/null +++ b/misc/sys/sysmacros.h @@ -0,0 +1,64 @@ +/* Definitions of macros to access `dev_t' values. + Copyright (C) 1996-2015 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 + . */ + +#ifndef _SYS_SYSMACROS_H +#define _SYS_SYSMACROS_H 1 + +#include +#include +#include + +#define __SYSMACROS_DECL_TEMPL(rtype, name, proto) \ + extern rtype gnu_dev_##name proto __THROW __attribute_const__; + +#define __SYSMACROS_IMPL_TEMPL(rtype, name, proto) \ + __extension__ __extern_inline __attribute_const__ rtype \ + __NTH (gnu_dev_##name proto) + +__BEGIN_DECLS + +__SYSMACROS_DECLARE_MAJOR (__SYSMACROS_DECL_TEMPL) +__SYSMACROS_DECLARE_MINOR (__SYSMACROS_DECL_TEMPL) +__SYSMACROS_DECLARE_MAKEDEV (__SYSMACROS_DECL_TEMPL) + +#ifdef __USE_EXTERN_INLINES + +__SYSMACROS_DEFINE_MAJOR (__SYSMACROS_IMPL_TEMPL) +__SYSMACROS_DEFINE_MINOR (__SYSMACROS_IMPL_TEMPL) +__SYSMACROS_DEFINE_MAKEDEV (__SYSMACROS_IMPL_TEMPL) + +#endif + +__END_DECLS + +#ifndef __SYSMACROS_NEED_IMPLEMENTATION +# undef __SYSMACROS_DECL_TEMPL +# undef __SYSMACROS_IMPL_TEMPL +# undef __SYSMACROS_DECLARE_MAJOR +# undef __SYSMACROS_DECLARE_MINOR +# undef __SYSMACROS_DECLARE_MAKEDEV +# undef __SYSMACROS_DEFINE_MAJOR +# undef __SYSMACROS_DEFINE_MINOR +# undef __SYSMACROS_DEFINE_MAKEDEV +#endif + +#define major(dev) gnu_dev_major (dev) +#define minor(dev) gnu_dev_minor (dev) +#define makedev(maj, min) gnu_dev_makedev (maj, min) + +#endif /* sys/sysmacros.h */ diff --git a/misc/tst-makedev.c b/misc/tst-makedev.c new file mode 100644 index 0000000000..b330b5a0fa --- /dev/null +++ b/misc/tst-makedev.c @@ -0,0 +1,104 @@ +/* Tests of functions to access `dev_t' values. + 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 + +/* Confirm that makedev (major (d), minor (d)) == d. */ +static int +do_test_split_combine (dev_t d1) +{ + unsigned int maj = major (d1); + unsigned int min = minor (d1); + dev_t d2 = makedev (maj, min); + if (d1 != d2) + { + printf ("FAIL: %016" PRIx64 " != %016" PRIx64 " (maj %08x min %08x)\n", + (uint64_t)d2, (uint64_t)d1, maj, min); + return 1; + } + else + return 0; +} + +/* Confirm that major (makedev (maj, min)) == maj and + minor (makedev (maj, min)) == min. */ +static int +do_test_combine_split (unsigned int maj1, unsigned int min1) +{ + dev_t d = makedev (maj1, min1); + unsigned int maj2 = major (d); + unsigned int min2 = minor (d); + if (maj1 != maj2 && min1 != min2) + { + printf ("FAIL: %08x != %08x, %08x != %08x (dev %016" PRIx64 ")\n", + maj2, maj1, min2, min1, (uint64_t)d); + return 1; + } + else if (maj1 != maj2) + { + printf ("FAIL: %08x != %08x, %08x == %08x (dev %016" PRIx64 ")\n", + maj2, maj1, min2, min1, (uint64_t)d); + return 1; + } + else if (min1 != min2) + { + printf ("FAIL: %08x == %08x, %08x != %08x (dev %016" PRIx64 ")\n", + maj2, maj1, min2, min1, (uint64_t)d); + return 1; + } + else + return 0; +} + +static int +do_test (void) +{ + dev_t d; + unsigned int maj, min; + int status = 0; + + /* Test the traditional range (16-bit dev_t, 8-bit each maj/min) + exhaustively. */ + for (d = 0; d <= 0xFFFF; d++) + status |= do_test_split_combine (d); + + for (maj = 0; maj <= 0xFF; maj++) + for (min = 0; min <= 0xFF; min++) + status |= do_test_combine_split (maj, min); + + /* Test glibc's expanded range (64-bit dev_t, 32-bit each maj/min). + Exhaustive testing would take much too long, instead we shift a + pair of 1-bits over each range. */ + { + unsigned int a, b; + for (a = 0; a <= 63; a++) + do_test_split_combine (((dev_t) 0x03) << a); + + for (a = 0; a < 31; a++) + for (b = 0; b <= 31; b++) + do_test_combine_split (0x03u << a, 0x03u << b); + } + + return status; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/posix/Makefile b/posix/Makefile index 5b0e298f75..3a7719e8c2 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -29,7 +29,7 @@ headers := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h \ bits/local_lim.h tar.h bits/utsname.h bits/confname.h \ bits/waitflags.h bits/waitstatus.h sys/unistd.h sched.h \ bits/sched.h re_comp.h wait.h bits/environments.h cpio.h \ - sys/sysmacros.h spawn.h bits/unistd.h + spawn.h bits/unistd.h routines := \ uname \ diff --git a/sysdeps/arm/nacl/libc.abilist b/sysdeps/arm/nacl/libc.abilist index 2f7751d167..4d3b0b9fe3 100644 --- a/sysdeps/arm/nacl/libc.abilist +++ b/sysdeps/arm/nacl/libc.abilist @@ -1840,4 +1840,9 @@ GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A +GLIBC_2.25 gnu_dev_major F +GLIBC_2.25 gnu_dev_makedev F +GLIBC_2.25 gnu_dev_minor F diff --git a/sysdeps/generic/sys/sysmacros.h b/sysdeps/generic/sys/sysmacros.h deleted file mode 100644 index 4cc59616fb..0000000000 --- a/sysdeps/generic/sys/sysmacros.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Definitions of macros to access `dev_t' values. - Copyright (C) 1996-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 - . */ - -#ifndef _SYS_SYSMACROS_H -#define _SYS_SYSMACROS_H 1 - -/* For compatibility we provide alternative names. - - The problem here is that compilers other than GCC probably don't - have the `long long' type and so `dev_t' is actually an array. */ -#define major(dev) ((int)(((unsigned int) (dev) >> 8) & 0xff)) -#define minor(dev) ((int)((dev) & 0xff)) -#define makedev(major, minor) (((major) << 8) | (minor)) - -#endif /* sys/sysmacros.h */ diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 35e1ed48d2..f0b052dfe9 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -15,7 +15,7 @@ ifeq ($(subdir),misc) include $(firstword $(wildcard $(sysdirs:=/sysctl.mk))) sysdep_routines += clone llseek umount umount2 readahead \ - setfsuid setfsgid makedev epoll_pwait signalfd \ + setfsuid setfsgid epoll_pwait signalfd \ eventfd eventfd_read eventfd_write prlimit \ personality diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 9cdb623a5c..2c2f49e85b 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2089,3 +2089,4 @@ 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.25 GLIBC_2.25 A diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index f3f3c70ca6..8afba471f7 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2000,6 +2000,7 @@ 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.25 GLIBC_2.25 A 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 a93803d182..de3bdf46fc 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -90,6 +90,7 @@ 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.25 GLIBC_2.25 A 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/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 58ed133385..3261b9395d 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1854,6 +1854,7 @@ 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.25 GLIBC_2.25 A 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/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 61cbae0f58..6465a555b1 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2012,6 +2012,7 @@ 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.25 GLIBC_2.25 A 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 d40d264ef2..4536271b6e 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1876,6 +1876,7 @@ 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.25 GLIBC_2.25 A 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/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 64432ae0e1..287d7a5df9 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -91,6 +91,7 @@ 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.25 GLIBC_2.25 A 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 8086c3857e..c9229fa94f 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1968,6 +1968,7 @@ 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.25 GLIBC_2.25 A 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/makedev.c b/sysdeps/unix/sysv/linux/makedev.c deleted file mode 100644 index 68c18ca333..0000000000 --- a/sysdeps/unix/sysv/linux/makedev.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Definitions of functions to access `dev_t' values. - Copyright (C) 2003-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 - -unsigned int -gnu_dev_major (unsigned long long int dev) -{ - return ((dev >> 8) & 0xfff) | ((unsigned int) (dev >> 32) & ~0xfff); -} - -unsigned int -gnu_dev_minor (unsigned long long int dev) -{ - return (dev & 0xff) | ((unsigned int) (dev >> 12) & ~0xff); -} - -unsigned long long int -gnu_dev_makedev (unsigned int major, unsigned int minor) -{ - return ((minor & 0xff) | ((major & 0xfff) << 8) - | (((unsigned long long int) (minor & ~0xff)) << 12) - | (((unsigned long long int) (major & ~0xfff)) << 32)); -} diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 8c4c3bba45..04097919b6 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2089,3 +2089,4 @@ 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.25 GLIBC_2.25 A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index db014edc51..f31653e584 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1943,6 +1943,7 @@ 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.25 GLIBC_2.25 A 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 33ac881346..a56bd992f7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1941,6 +1941,7 @@ 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.25 GLIBC_2.25 A 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index b8b2c0eabb..44552df7b0 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1939,6 +1939,7 @@ 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.25 GLIBC_2.25 A 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 07413015f4..8d2a09dc9c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1934,6 +1934,7 @@ 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.25 GLIBC_2.25 A 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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index fa04825b2b..0443b92361 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2130,3 +2130,4 @@ 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.25 GLIBC_2.25 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 3d633c0999..ba9a29a3bd 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1972,6 +1972,7 @@ 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.25 GLIBC_2.25 A 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 a6b164bc23..f19534c7b8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1977,6 +1977,7 @@ 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.25 GLIBC_2.25 A 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 7200b76287..f8de1ab30b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2177,3 +2177,4 @@ 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.25 GLIBC_2.25 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index de62ecb0f3..6819133256 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -91,6 +91,7 @@ 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.25 GLIBC_2.25 A 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/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 8da0bc087f..4cd5d85e42 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1972,6 +1972,7 @@ 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.25 GLIBC_2.25 A 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/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 59066a9402..8cdb9df0c8 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1873,6 +1873,7 @@ 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.25 GLIBC_2.25 A 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/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 01ca9e65ba..69791b4911 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1858,6 +1858,7 @@ 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.25 GLIBC_2.25 A 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/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 245c1c6d22..fce58a8e88 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1964,6 +1964,7 @@ 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.25 GLIBC_2.25 A 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/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 4478d13710..16ce7399bf 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1902,6 +1902,7 @@ 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.25 GLIBC_2.25 A 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/sys/sysmacros.h b/sysdeps/unix/sysv/linux/sys/sysmacros.h deleted file mode 100644 index 4c4a6978b5..0000000000 --- a/sysdeps/unix/sysv/linux/sys/sysmacros.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Definitions of macros to access `dev_t' values. - Copyright (C) 1996-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 - . */ - -#ifndef _SYS_SYSMACROS_H -#define _SYS_SYSMACROS_H 1 - -#include - -__BEGIN_DECLS - -__extension__ -extern unsigned int gnu_dev_major (unsigned long long int __dev) - __THROW __attribute_const__; -__extension__ -extern unsigned int gnu_dev_minor (unsigned long long int __dev) - __THROW __attribute_const__; -__extension__ -extern unsigned long long int gnu_dev_makedev (unsigned int __major, - unsigned int __minor) - __THROW __attribute_const__; - -#ifdef __USE_EXTERN_INLINES -__extension__ __extern_inline __attribute_const__ unsigned int -__NTH (gnu_dev_major (unsigned long long int __dev)) -{ - return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); -} - -__extension__ __extern_inline __attribute_const__ unsigned int -__NTH (gnu_dev_minor (unsigned long long int __dev)) -{ - return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); -} - -__extension__ __extern_inline __attribute_const__ unsigned long long int -__NTH (gnu_dev_makedev (unsigned int __major, unsigned int __minor)) -{ - return ((__minor & 0xff) | ((__major & 0xfff) << 8) - | (((unsigned long long int) (__minor & ~0xff)) << 12) - | (((unsigned long long int) (__major & ~0xfff)) << 32)); -} -#endif -__END_DECLS - -/* Access the functions with their traditional names. */ -#define major(dev) gnu_dev_major (dev) -#define minor(dev) gnu_dev_minor (dev) -#define makedev(maj, min) gnu_dev_makedev (maj, min) - -#endif /* sys/sysmacros.h */ diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index c1a2613418..f99c298211 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2096,3 +2096,4 @@ 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.25 GLIBC_2.25 A diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 35fbf8a904..c601ab0ee2 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2096,3 +2096,4 @@ 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.25 GLIBC_2.25 A diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index c1a2613418..f99c298211 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2096,3 +2096,4 @@ 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.25 GLIBC_2.25 A diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index c1054ce9d2..8e6fa57974 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1853,6 +1853,7 @@ 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.25 GLIBC_2.25 A 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/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 2fd6d60d38..1e12f48ec9 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2096,3 +2096,4 @@ 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.25 GLIBC_2.25 A -- cgit v1.2.3 From 6962682ffe5e5f0373047a0b894fee7a774be254 Mon Sep 17 00:00:00 2001 From: "Gabriel F. T. Gomes" Date: Tue, 28 Jun 2016 17:30:42 -0300 Subject: Add strfromd, strfromf, and strfroml functions ISO/IEC TS 18661-1 adds several functions in the strfrom family to stdlib. This patch adds strfromd, strfromf, and strfroml. This is being done in preparation for the new floating-point type, float128. The added functions convert a floating-point value into a string, with configurable format. --- ChangeLog | 47 +++++++ NEWS | 3 + manual/arith.texi | 41 ++++++ stdlib/Makefile | 7 + stdlib/Versions | 4 + stdlib/bits/stdlib-ldbl.h | 4 + stdlib/stdlib.h | 18 ++- stdlib/strfrom-skeleton.c | 149 +++++++++++++++++++++ stdlib/strfromd.c | 22 +++ stdlib/strfromf.c | 22 +++ stdlib/strfroml.c | 22 +++ sysdeps/arm/nacl/libc.abilist | 3 + sysdeps/ieee754/ldbl-opt/Makefile | 1 + sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c | 8 ++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 3 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 + sysdeps/unix/sysv/linux/arm/libc.abilist | 3 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 + sysdeps/unix/sysv/linux/i386/libc.abilist | 3 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 3 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 3 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 3 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 3 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 3 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 3 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 3 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 3 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 3 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 3 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 3 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 3 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 3 + sysdeps/unix/sysv/linux/sh/libc.abilist | 3 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 3 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 3 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 3 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 3 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 3 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 3 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 3 + 42 files changed, 434 insertions(+), 1 deletion(-) create mode 100644 stdlib/strfrom-skeleton.c create mode 100644 stdlib/strfromd.c create mode 100644 stdlib/strfromf.c create mode 100644 stdlib/strfroml.c create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 824ce66cbf..94a10af196 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,50 @@ +2016-10-25 Gabriel F. T. Gomes + + * NEWS: Mention the addition of strfromd, strfromf, and strfroml. + * manual/arith.texi: Document strfromd, strfromf, strfroml. + * stdlib/Makefile: Add strfromd, strfromf, and strfroml. + * stdlib/Versions (GLIBC_2.25): Add strfromd, strfromf, and strfroml. + * stdlib/stdlib.h (strfromd): New declaration. + (strfromf): Likewise. + (strfroml): Likewise. + * stdlib/strfrom-skeleton.c: New file. Generic implementation for + strfrom. + * stdlib/strfromd.c: New file. + * stdlib/strfromf.c: Likewise. + * stdlib/strfroml.c: Likewise. + * stdlib/bits/stdlib-ldbl.h: Add redirection from strfroml to strfromd. + * sysdeps/ieee754/ldbl-opt/Makefile: Add rule for nldbl-strfroml.c. + * sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c: New file; + * sysdeps/arm/nacl/libc.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise. + * 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/nios2/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/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-10-25 Joseph Myers * sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi diff --git a/NEWS b/NEWS index 6439040a28..897f1cfa77 100644 --- a/NEWS +++ b/NEWS @@ -60,6 +60,9 @@ Version 2.25 - NaN functions: getpayload, getpayloadf, getpayloadl. +* The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, + are added to libc. They convert a floating-point number into string. + * The header now includes the header. Support for the Linux quota interface which predates kernel version 2.4.22 has been removed. diff --git a/manual/arith.texi b/manual/arith.texi index e53988a083..eaaf2b7127 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -20,6 +20,7 @@ These functions are declared in the header files @file{math.h} and * Complex Numbers:: The types. Writing complex constants. * Operations on Complex:: Projection, conjugation, decomposition. * Parsing of Numbers:: Converting strings to numbers. +* Printing of Floats:: Converting floating-point numbers to strings. * System V Number Conversion:: An archaic way to convert numbers to strings. @end menu @@ -2806,6 +2807,46 @@ which take an additional argument, the locale to use in conversion. See also @ref{Parsing of Integers}. +@node Printing of Floats +@section Printing of Floats + +@pindex stdlib.h +The @samp{strfrom} functions are declared in @file{stdlib.h}. + +@comment stdlib.h +@comment ISO/IEC TS 18661-1 +@deftypefun int strfromd (char *restrict @var{string}, size_t @var{size}, const char *restrict @var{format}, double @var{value}) +@deftypefunx int strfromf (char *restrict @var{string}, size_t @var{size}, const char *restrict @var{format}, float @var{value}) +@deftypefunx int strfroml (char *restrict @var{string}, size_t @var{size}, const char *restrict @var{format}, long double @var{value}) +@safety{@prelim{}@mtsafe{@mtslocale{}}@asunsafe{@ascuheap{}}@acunsafe{@acsmem{}}} +@comment these functions depend on __printf_fp and __printf_fphex, which are +@comment AS-unsafe (ascuheap) and AC-unsafe (acsmem). +The functions @code{strfromd} (``string-from-double''), @code{strfromf} +(``string-from-float''), and @code{strfroml} (``string-from-long-double'') +convert the floating-point number @var{value} to a string of characters and +stores them into the area pointed to by @var{string}. The conversion +writes at most @var{size} characters and respects the format specified by +@var{format}. + +The format string must start with the character @samp{%}. An optional +precision follows, which starts with a period, @samp{.}, and may be +followed by a decimal integer, representing the precision. If a decimal +integer is not specified after the period, the precision is taken to be +zero. The character @samp{*} is not allowed. Finally, the format string +ends with one of the following conversion specifiers: @samp{a}, @samp{A}, +@samp{e}, @samp{E}, @samp{f}, @samp{F}, @samp{g} or @samp{G} (@pxref{Table +of Output Conversions}). Invalid format strings result in undefined +behavior. + +These functions return the number of characters that would have been +written to @var{string} had @var{size} been sufficiently large, not +counting the terminating null character. Thus, the null-terminated output +has been completely written if and only if the returned value is less than +@var{size}. + +These functions were introduced by ISO/IEC TS 18661-1. +@end deftypefun + @node System V Number Conversion @section Old-fashioned System V number-to-string functions diff --git a/stdlib/Makefile b/stdlib/Makefile index de3ecbbaa0..3cacb8b3f6 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -46,6 +46,7 @@ routines := \ drand48_r erand48_r lrand48_r nrand48_r mrand48_r jrand48_r \ srand48_r seed48_r lcong48_r \ drand48-iter \ + strfromf strfromd strfroml \ strtol strtoul strtoll strtoull \ strtol_l strtoul_l strtoll_l strtoull_l \ strtof strtod strtold \ @@ -122,6 +123,12 @@ CFLAGS-fmtmsg.c = -fexceptions CFLAGS-strfmon.c = $(libio-mtsafe) CFLAGS-strfmon_l.c = $(libio-mtsafe) +# The strfrom class of functions call __printf_fp in order to convert the +# floating-point value to characters. This requires the value of IO_MTSAFE_IO. +CFLAGS-strfromd.c = $(libio-mtsafe) +CFLAGS-strfromf.c = $(libio-mtsafe) +CFLAGS-strfroml.c = $(libio-mtsafe) + CFLAGS-tst-bsearch.c = $(stack-align-test-flags) CFLAGS-tst-qsort.c = $(stack-align-test-flags) CFLAGS-tst-makecontext.c += -funwind-tables diff --git a/stdlib/Versions b/stdlib/Versions index 9c06b43986..54416b7ea6 100644 --- a/stdlib/Versions +++ b/stdlib/Versions @@ -112,6 +112,10 @@ libc { GLIBC_2.24 { quick_exit; } + GLIBC_2.25 { + # s* + strfromd; strfromf; strfroml; + } GLIBC_PRIVATE { # functions which have an additional interface since they are # are cancelable. diff --git a/stdlib/bits/stdlib-ldbl.h b/stdlib/bits/stdlib-ldbl.h index acff499165..52fdc492d4 100644 --- a/stdlib/bits/stdlib-ldbl.h +++ b/stdlib/bits/stdlib-ldbl.h @@ -30,6 +30,10 @@ __END_NAMESPACE_C99 __LDBL_REDIR1_DECL (strtold_l, strtod_l) #endif +#if __GLIBC_USE (IEC_60559_BFP_EXT) +__LDBL_REDIR1_DECL (strfroml, strfromd) +#endif + #ifdef __USE_MISC __LDBL_REDIR1_DECL (qecvt, ecvt) __LDBL_REDIR1_DECL (qfcvt, fcvt) diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index f0dc951acf..48f9a9500e 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -21,7 +21,8 @@ #ifndef _STDLIB_H -#include +#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION +#include /* Get size_t, wchar_t and NULL from . */ #define __need_size_t @@ -178,6 +179,21 @@ extern unsigned long long int strtoull (const char *__restrict __nptr, __END_NAMESPACE_C99 #endif /* ISO C99 or use MISC. */ +/* Convert a floating-point number to a string. */ +#if __GLIBC_USE (IEC_60559_BFP_EXT) +extern int strfromd (char *__dest, size_t __size, const char *__format, + double __f) + __THROW __nonnull ((3)); + +extern int strfromf (char *__dest, size_t __size, const char *__format, + float __f) + __THROW __nonnull ((3)); + +extern int strfroml (char *__dest, size_t __size, const char *__format, + long double __f) + __THROW __nonnull ((3)); +#endif + #ifdef __USE_GNU /* The concept of one static locale per category is not very well diff --git a/stdlib/strfrom-skeleton.c b/stdlib/strfrom-skeleton.c new file mode 100644 index 0000000000..8fd1beb7aa --- /dev/null +++ b/stdlib/strfrom-skeleton.c @@ -0,0 +1,149 @@ +/* Convert a floating-point number to string. + 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 + . */ + +/* Generic implementation for strfrom functions. The implementation is generic + for several floating-point types (e.g.: float, double), so that each + function, such as strfromf and strfroml, share the same code, thus avoiding + code duplication. */ + +#include +#include "../libio/libioP.h" +#include "../libio/strfile.h" +#include +#include +#include + +#define UCHAR_T char +#define L_(Str) Str +#define ISDIGIT(Ch) isdigit (Ch) +#include "stdio-common/printf-parse.h" + +int +STRFROM (char *dest, size_t size, const char *format, FLOAT f) +{ + _IO_strnfile sfile; +#ifdef _IO_MTSAFE_IO + sfile.f._sbf._f._lock = NULL; +#endif + + int done; + + /* Single-precision values need to be stored in a double type, because + __printf_fp_l and __printf_fphex do not accept the float type. */ + union { + double flt; + FLOAT value; + } fpnum; + const void *fpptr; + fpptr = &fpnum; + + /* Variables to control the output format. */ + int precision = -1; /* printf_fp and printf_fphex treat this internally. */ + int specifier; + struct printf_info info; + + /* Single-precision values need to be converted into double-precision, + because __printf_fp and __printf_fphex only accept double and long double + as the floating-point argument. */ + if (__builtin_types_compatible_p (FLOAT, float)) + fpnum.flt = f; + else + fpnum.value = f; + + /* Check if the first character in the format string is indeed the '%' + character. Otherwise, abort. */ + if (*format == '%') + format++; + else + abort (); + + /* The optional precision specification always starts with a '.'. If such + character is present, read the precision. */ + if (*format == '.') + { + format++; + + /* Parse the precision. */ + if (ISDIGIT (*format)) + precision = read_int (&format); + /* If only the period is specified, the precision is taken as zero, as + described in ISO/IEC 9899:2011, section 7.21.6.1, 4th paragraph, 3rd + item. */ + else + precision = 0; + } + + /* Now there is only the conversion specifier to be read. */ + switch (*format) + { + case 'a': + case 'A': + case 'e': + case 'E': + case 'f': + case 'F': + case 'g': + case 'G': + specifier = *format; + break; + default: + abort (); + } + + /* The following code to prepare the virtual file has been adapted from the + function _IO_vsnprintf from libio. */ + + if (size == 0) + { + /* When size is zero, nothing is written and dest may be a null pointer. + This is specified for snprintf in ISO/IEC 9899:2011, Section 7.21.6.5, + in the second paragraph. Thus, if size is zero, prepare to use the + overflow buffer right from the start. */ + dest = sfile.overflow_buf; + size = sizeof (sfile.overflow_buf); + } + + /* Prepare the virtual string file. */ + _IO_no_init (&sfile.f._sbf._f, _IO_USER_LOCK, -1, NULL, NULL); + _IO_JUMPS (&sfile.f._sbf) = &_IO_strn_jumps; + _IO_str_init_static_internal (&sfile.f, dest, size - 1, dest); + + /* Prepare the format specification for printf_fp. */ + memset (&info, '\0', sizeof (info)); + + /* The functions strfromd and strfromf pass a floating-point number with + double precision to printf_fp, whereas strfroml passes a floating-point + number with long double precision. The following line informs printf_fp + which type of floating-point number is being passed. */ + info.is_long_double = __builtin_types_compatible_p (FLOAT, long double); + + /* Set info according to the format string. */ + info.prec = precision; + info.spec = specifier; + + if (info.spec != 'a' && info.spec != 'A') + done = __printf_fp_l (&sfile.f._sbf._f, _NL_CURRENT_LOCALE, &info, &fpptr); + else + done = __printf_fphex (&sfile.f._sbf._f, &info, &fpptr); + + /* Terminate the string. */ + if (sfile.f._sbf._f._IO_buf_base != sfile.overflow_buf) + *sfile.f._sbf._f._IO_write_ptr = '\0'; + + return done; +} diff --git a/stdlib/strfromd.c b/stdlib/strfromd.c new file mode 100644 index 0000000000..45a5790a1f --- /dev/null +++ b/stdlib/strfromd.c @@ -0,0 +1,22 @@ +/* Definitions for strfromd. Implementation in stdlib/strfrom-skeleton.c. + 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 + . */ + +#define FLOAT double +#define STRFROM strfromd + +#include "strfrom-skeleton.c" diff --git a/stdlib/strfromf.c b/stdlib/strfromf.c new file mode 100644 index 0000000000..f0b085844c --- /dev/null +++ b/stdlib/strfromf.c @@ -0,0 +1,22 @@ +/* Definitions for strfromf. Implementation in stdlib/strfrom-skeleton.c. + 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 + . */ + +#define FLOAT float +#define STRFROM strfromf + +#include "strfrom-skeleton.c" diff --git a/stdlib/strfroml.c b/stdlib/strfroml.c new file mode 100644 index 0000000000..8d5d15b0b9 --- /dev/null +++ b/stdlib/strfroml.c @@ -0,0 +1,22 @@ +/* Definitions for strfroml. Implementation in stdlib/strfrom-skeleton.c. + 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 + . */ + +#define FLOAT long double +#define STRFROM strfroml + +#include "strfrom-skeleton.c" diff --git a/sysdeps/arm/nacl/libc.abilist b/sysdeps/arm/nacl/libc.abilist index 4d3b0b9fe3..807e43d935 100644 --- a/sysdeps/arm/nacl/libc.abilist +++ b/sysdeps/arm/nacl/libc.abilist @@ -1846,3 +1846,6 @@ GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 gnu_dev_major F GLIBC_2.25 gnu_dev_makedev F GLIBC_2.25 gnu_dev_minor F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile index 4c7db9e353..239dd0efa5 100644 --- a/sysdeps/ieee754/ldbl-opt/Makefile +++ b/sysdeps/ieee754/ldbl-opt/Makefile @@ -24,6 +24,7 @@ libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \ vdprintf_chk obstack_printf_chk obstack_vprintf_chk \ syslog syslog_chk vsyslog vsyslog_chk \ strfmon strfmon_l \ + strfroml \ strtold strtold_l strtoldint wcstold wcstold_l wcstoldint \ qecvt qfcvt qgcvt qecvt_r qfcvt_r \ isinf isnan finite signbit scalb log2 lgamma_r ceil \ diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c b/sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c new file mode 100644 index 0000000000..d6df69e418 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c @@ -0,0 +1,8 @@ +#include "nldbl-compat.h" + +int +attribute_hidden +strfroml (char *dest, size_t size, const char *format, long double f) +{ + return strfromd (dest, size, format, f); +} diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 2c2f49e85b..77accdf5c1 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2090,3 +2090,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 8afba471f7..659b7fcf37 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2001,6 +2001,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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 de3bdf46fc..8bc979ad7f 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -91,6 +91,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 3261b9395d..299b705156 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1855,6 +1855,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 6465a555b1..f00345f673 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2013,6 +2013,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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 4536271b6e..e5fcf88b18 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1877,6 +1877,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 287d7a5df9..8f382f680b 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -92,6 +92,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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 c9229fa94f..320b7fef5f 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1969,6 +1969,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 04097919b6..21b14262c6 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2090,3 +2090,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index f31653e584..5c4b596c54 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1944,6 +1944,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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 a56bd992f7..001fa6c129 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1942,6 +1942,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 44552df7b0..2d870013f7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1940,6 +1940,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 8d2a09dc9c..aa1ee66ab7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1935,6 +1935,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 0443b92361..2471d68e87 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2131,3 +2131,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index ba9a29a3bd..4b0cde8faf 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1973,6 +1973,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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 f19534c7b8..0557c16130 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1978,6 +1978,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index f8de1ab30b..821384ebd6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2178,3 +2178,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 6819133256..c40a3f1cba 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -92,6 +92,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 4cd5d85e42..5b39a60638 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1973,6 +1973,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 8cdb9df0c8..a9db32f6c2 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1874,6 +1874,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 69791b4911..294af0a501 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1859,6 +1859,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index fce58a8e88..32747bd22d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1965,6 +1965,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 16ce7399bf..b0ac4d4472 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1903,6 +1903,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index f99c298211..4d92d81b85 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2097,3 +2097,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index c601ab0ee2..a68aef7bb7 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2097,3 +2097,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index f99c298211..4d92d81b85 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2097,3 +2097,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 8e6fa57974..b8623fc59f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1854,6 +1854,9 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml 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/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 1e12f48ec9..a61d874dfe 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2097,3 +2097,6 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F -- cgit v1.2.3 From 92dcaa3e2f7bf0f7f1c04cd2fb6a317df1a4e225 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 12 Dec 2016 17:28:03 +0100 Subject: Add getentropy, getrandom, [BZ #17252] --- ChangeLog | 48 ++++ NEWS | 3 + manual/crypt.texi | 112 ++++++++++ manual/math.texi | 3 +- stdlib/Makefile | 7 +- stdlib/Versions | 1 + stdlib/getentropy.c | 31 +++ stdlib/getrandom.c | 31 +++ stdlib/sys/random.h | 42 ++++ stdlib/tst-getrandom.c | 245 +++++++++++++++++++++ sysdeps/arm/nacl/libc.abilist | 2 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + sysdeps/unix/sysv/linux/arm/libc.abilist | 2 + sysdeps/unix/sysv/linux/getentropy.c | 73 ++++++ sysdeps/unix/sysv/linux/getrandom.c | 43 ++++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 2 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 + sysdeps/unix/sysv/linux/sh/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 2 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 2 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 + 41 files changed, 693 insertions(+), 4 deletions(-) create mode 100644 stdlib/getentropy.c create mode 100644 stdlib/getrandom.c create mode 100644 stdlib/sys/random.h create mode 100644 stdlib/tst-getrandom.c create mode 100644 sysdeps/unix/sysv/linux/getentropy.c create mode 100644 sysdeps/unix/sysv/linux/getrandom.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 4d31f4f81e..91cc64d59f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,51 @@ +2016-12-12 Florian Weimer + + [BZ #17252] + Add getentropy, getrandom. + * stdlib/sys/random.h: New file. + (headers): Add it. + * stdlib/Makefile (routines): Add getentropy, getrandom. + (tests): Add tst-getrandom. + * stdlib/Versions (GLIBC_2.25): Add getrandom, getentropy. + * stdlib/getentropy.c: New file. + * stdlib/getrandom.c: Likewise. + * stdlib/tst-getrandom.c: Likewise. + * sysdeps/unix/sysv/linux/getentropy.c: Likewise. + * sysdeps/unix/sysv/linux/getrandom.c: Likewise. + * manual/crypt.texi (Unpredictable Bytes): New section. + * manual/math.texi (Pseudo-Random Numbers): Add cross-reference. + * sysdeps/arm/nacl/libc.abilist: Add getrandom, getentropy. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise. + * 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/nios2/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/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-12-10 Florian Weimer [BZ #20956] diff --git a/NEWS b/NEWS index 4fe8886e83..64ed6593cb 100644 --- a/NEWS +++ b/NEWS @@ -96,6 +96,9 @@ Version 2.25 affect the ABI of other libraries that use this type in their interfaces, if they are compiled or used with those options. +* The getentropy and getrandom functions, and the header file + have been added. + * The buffer size for byte-oriented stdio streams is now limited to 8192 bytes by default. Previously, on Linux, the default buffer size on most file systems was 4096 bytes (and thus remains unchanged), except on diff --git a/manual/crypt.texi b/manual/crypt.texi index 9f4474023e..4ab512bb37 100644 --- a/manual/crypt.texi +++ b/manual/crypt.texi @@ -45,6 +45,7 @@ encrypted authentication use normal DES. * getpass:: Prompting the user for a password. * crypt:: A one-way function for passwords. * DES Encryption:: Routines for DES encryption. +* Unpredictable Bytes:: Randomness for cryptography purposes. @end menu @node Legal Problems @@ -428,3 +429,114 @@ each byte. The @code{ecb_crypt}, @code{cbc_crypt}, and @code{des_setparity} functions and their accompanying macros are all defined in the header @file{rpc/des_crypt.h}. + +@node Unpredictable Bytes +@section Generating Unpredictable Bytes + +Some cryptographic applications (such as session key generation) need +unpredictable bytes. + +In general, application code should use a deterministic random bit +generator, which could call the @code{getentropy} function described +below internally to obtain randomness to seed the generator. The +@code{getrandom} function is intended for low-level applications which +need additional control over the blocking behavior. + +@comment sys/random.h +@comment GNU +@deftypefun int getentropy (void *@var{buffer}, size_t @var{length}) +@safety{@mtsafe{}@assafe{}@acsafe{}} + +This function writes @var{length} bytes of random data to the array +starting at @var{buffer}, which must be at most 256 bytes long. The +function returns zero on success. On failure, it returns @code{-1} and +@code{errno} is updated accordingly. + +The @code{getentropy} function is declared in the header file +@file{sys/random.h}. It is derived from OpenBSD. + +The @code{getentropy} function is not a cancellation point. A call to +@code{getentropy} can block if the system has just booted and the kernel +entropy pool has not yet been initialized. In this case, the function +will keep blocking even if a signal arrives, and return only after the +entropy pool has been initialized. + +The @code{getentropy} function can fail with several errors, some of +which are listed below. + +@table @code +@item ENOSYS +The kernel does not implement the required system call. + +@item EFAULT +The combination of @var{buffer} and @var{length} arguments specifies +an invalid memory range. + +@item EIO +More than 256 bytes of randomness have been requested, or the buffer +could not be overwritten with random data for an unspecified reason. + +@end table + +@end deftypefun + +@comment sys/random.h +@comment GNU +@deftypefun ssize_t getrandom (void *@var{buffer}, size_t @var{length}, unsigned int @var{flags}) +@safety{@mtsafe{}@assafe{}@acsafe{}} + +This function writes @var{length} bytes of random data to the array +starting at @var{buffer}. On success, this function returns the number +of bytes which have been written to the buffer (which can be less than +@var{length}). On error, @code{-1} is returned, and @code{errno} is +updated accordingly. + +The @code{getrandom} function is declared in the header file +@file{sys/random.h}. It is a GNU extension. + +The following flags are defined for the @var{flags} argument: + +@table @code +@item GRND_RANDOM +Use the @file{/dev/random} (blocking) pool instead of the +@file{/dev/urandom} (non-blocking) pool to obtain randomness. If the +@code{GRND_RANDOM} flag is specified, the @code{getrandom} function can +block even after the randomness source has been initialized. + +@item GRND_NONBLOCK +Instead of blocking, return to the caller immediately if no data is +available. +@end table + +The @code{getrandom} function is a cancellation point. + +Obtaining randomness from the @file{/dev/urandom} pool (i.e., a call +without the @code{GRND_RANDOM} flag) can block if the system has just +booted and the pool has not yet been initialized. + +The @code{getrandom} function can fail with several errors, some of +which are listed below. In addition, the function may not fill the +buffer completely and return a value less than @var{length}. + +@table @code +@item ENOSYS +The kernel does not implement the @code{getrandom} system call. + +@item EAGAIN +No random data was available and @code{GRND_NONBLOCK} was specified in +@var{flags}. + +@item EFAULT +The combination of @var{buffer} and @var{length} arguments specifies +an invalid memory range. + +@item EINTR +The system call was interrupted. During the system boot process, before +the kernel randomness pool is initialized, this can happen even if +@var{flags} is zero. + +@item EINVAL +The @var{flags} argument contains an invalid combination of flags. +@end table + +@end deftypefun diff --git a/manual/math.texi b/manual/math.texi index 5ad8732eca..9b699f1def 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -1443,7 +1443,8 @@ is convenient when you are debugging a program, but it is unhelpful if you want the program to behave unpredictably. If you want a different pseudo-random series each time your program runs, you must specify a different seed each time. For ordinary purposes, basing the seed on the -current time works well. +current time works well. For random numbers in cryptography, +@pxref{Unpredictable Bytes}. You can obtain repeatable sequences of numbers on a particular machine type by specifying the same initial seed value for the random number diff --git a/stdlib/Makefile b/stdlib/Makefile index 3cce9d98d4..d6512639e0 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -28,7 +28,7 @@ headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h \ errno.h sys/errno.h bits/errno.h \ ucontext.h sys/ucontext.h \ alloca.h fmtmsg.h \ - bits/stdlib-bsearch.h + bits/stdlib-bsearch.h sys/random.h routines := \ atof atoi atol atoll \ @@ -45,7 +45,7 @@ routines := \ srand48 seed48 lcong48 \ drand48_r erand48_r lrand48_r nrand48_r mrand48_r jrand48_r \ srand48_r seed48_r lcong48_r \ - drand48-iter \ + drand48-iter getrandom getentropy \ strfromf strfromd strfroml \ strtol strtoul strtoll strtoull \ strtol_l strtoul_l strtoll_l strtoull_l \ @@ -79,7 +79,8 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ tst-setcontext3 tst-tls-atexit-nodelete \ tst-strtol-locale tst-strtod-nan-locale tst-strfmon_l \ tst-quick_exit tst-thread-quick_exit tst-width \ - tst-width-stdint tst-strfrom tst-strfrom-locale + tst-width-stdint tst-strfrom tst-strfrom-locale \ + tst-getrandom tests-static := tst-secure-getenv ifeq ($(have-cxx-thread_local),yes) CFLAGS-tst-quick_exit.o = -std=c++11 diff --git a/stdlib/Versions b/stdlib/Versions index 54416b7ea6..415b9945e2 100644 --- a/stdlib/Versions +++ b/stdlib/Versions @@ -115,6 +115,7 @@ libc { GLIBC_2.25 { # s* strfromd; strfromf; strfroml; + getrandom; getentropy; } GLIBC_PRIVATE { # functions which have an additional interface since they are diff --git a/stdlib/getentropy.c b/stdlib/getentropy.c new file mode 100644 index 0000000000..32a24c7633 --- /dev/null +++ b/stdlib/getentropy.c @@ -0,0 +1,31 @@ +/* Stub for getentropy. + 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 + +/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on + success and -1 on failure. */ +ssize_t +getentropy (void *buffer, size_t length) +{ + __set_errno (ENOSYS); + return -1; +} + +stub_warning (getentropy) diff --git a/stdlib/getrandom.c b/stdlib/getrandom.c new file mode 100644 index 0000000000..a24727bb70 --- /dev/null +++ b/stdlib/getrandom.c @@ -0,0 +1,31 @@ +/* Stub for getrandom. + 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 + +/* Write LENGTH bytes of randomness starting at BUFFER. Return the + number of bytes written, or -1 on error. */ +ssize_t +getrandom (void *buffer, size_t length, unsigned int flags) +{ + __set_errno (ENOSYS); + return -1; +} + +stub_warning (getrandom) diff --git a/stdlib/sys/random.h b/stdlib/sys/random.h new file mode 100644 index 0000000000..610b4685f1 --- /dev/null +++ b/stdlib/sys/random.h @@ -0,0 +1,42 @@ +/* Interfaces for obtaining random bytes. + 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 + . */ + +#ifndef _SYS_RANDOM_H +#define _SYS_RANDOM_H 1 + +#include +#include + +/* Flags for use with getrandom. */ +#define GRND_NONBLOCK 0x01 +#define GRND_RANDOM 0x02 + +__BEGIN_DECLS + +/* Write LENGTH bytes of randomness starting at BUFFER. Return the + number of bytes written, or -1 on error. */ +ssize_t getrandom (void *__buffer, size_t __length, + unsigned int __flags) __wur; + +/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on + success or -1 on error. */ +int getentropy (void *__buffer, size_t __length) __wur; + +__END_DECLS + +#endif /* _SYS_RANDOM_H */ diff --git a/stdlib/tst-getrandom.c b/stdlib/tst-getrandom.c new file mode 100644 index 0000000000..a76cd1868b --- /dev/null +++ b/stdlib/tst-getrandom.c @@ -0,0 +1,245 @@ +/* Tests for the getentropy, getrandom functions. + 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 +#include + +/* Set to true if any errors are encountered. */ +static bool errors; + +/* Test getrandom with a single buffer length. NB: The passed-in + buffer must have room for four extra bytes after the specified + length, which are used to test that getrandom leaves those bytes + unchanged. */ +static void +test_length (char *buffer, size_t length, unsigned int flags) +{ + memset (buffer, 0, length); + strcpy (buffer + length, "123"); + ssize_t ret = getrandom (buffer, length, flags); + if (ret < 0) + { + /* EAGAIN is an expected error with GRND_RANDOM and + GRND_NONBLOCK. */ + if ((flags & GRND_RANDOM) + && (flags & GRND_NONBLOCK) + && errno == EAGAIN) + return; + printf ("error: getrandom (%zu, 0x%x): %m\n", length, flags); + errors = true; + return; + } + if (ret != length) + { + if (flags & GRND_RANDOM) + { + if (ret == 0 || ret > length) + { + printf ("error: getrandom (%zu, 0x%x) returned %zd\n", + length, flags, ret); + errors = true; + } + } + else + { + printf ("error: getrandom (%zu, 0x%x) returned %zd\n", + length, flags, ret); + errors = true; + } + } + if (length >= 7) + { + /* One spurious test failure in 2**56 is sufficiently + unlikely. */ + int non_null = 0; + for (int i = 0; i < length; ++i) + non_null += buffer[i] != 0; + if (non_null == 0) + { + printf ("error: getrandom (%zu, 0x%x) returned all-zero bytes\n", + length, flags); + errors = true; + } + } + if (memcmp (buffer + length, "123", 4) != 0) + { + printf ("error: getrandom (%zu, 0x%x) wrote spurious bytes\n", + length, flags); + errors = true; + } +} + +/* Call getrandom repeatedly to fill the buffer. */ +static bool +getrandom_full (char *buffer, size_t length, unsigned int flags) +{ + char *end = buffer + length; + while (buffer < end) + { + ssize_t ret = getrandom (buffer, end - buffer, flags); + if (ret < 0) + { + printf ("error: getrandom (%zu, 0x%x): %m\n", length, flags); + errors = true; + return false; + } + buffer += ret; + } + + return true; +} + +static void +test_flags (unsigned int flags) +{ + /* Test various lengths, but only for !GRND_RANDOM, to conserve + entropy. */ + { + enum { max_length = 300 }; + char buffer[max_length + 4]; + if (flags & GRND_RANDOM) + test_length (buffer, 0, flags); + else + { + for (int length = 0; length <= 9; ++length) + test_length (buffer, length, flags); + test_length (buffer, 16, flags); + test_length (buffer, max_length, flags); + } + } + + /* Test that getrandom returns different data. */ + if (!(flags & GRND_NONBLOCK)) + { + char buffer1[8]; + memset (buffer1, 0, sizeof (buffer1)); + + char buffer2[8]; + memset (buffer2, 0, sizeof (buffer2)); + + if (getrandom_full (buffer1, sizeof (buffer1), flags) + && getrandom_full (buffer2, sizeof (buffer2), flags)) + { + /* The probability that these two 8-byte buffers are equal + is very small (assuming that two subsequent calls to + getrandom result are independent, uniformly distributed + random variables). */ + if (memcmp (buffer1, buffer2, sizeof (buffer1)) == 0) + { + printf ("error: getrandom returns constant value\n"); + errors = true; + } + } + } +} + +static void +test_getentropy (void) +{ + char buf[16]; + memset (buf, '@', sizeof (buf)); + if (getentropy (buf, 0) != 0) + { + printf ("error: getentropy zero length: %m\n"); + errors = true; + return; + } + for (size_t i = 0; i < sizeof (buf); ++i) + if (buf[i] != '@') + { + printf ("error: getentropy modified zero-length buffer\n"); + errors = true; + return; + } + + if (getentropy (buf, sizeof (buf)) != 0) + { + printf ("error: getentropy buf: %m\n"); + errors = true; + return; + } + + char buf2[256]; + _Static_assert (sizeof (buf) < sizeof (buf2), "buf and buf2 compatible"); + memset (buf2, '@', sizeof (buf2)); + if (getentropy (buf2, sizeof (buf)) != 0) + { + printf ("error: getentropy buf2: %m\n"); + errors = true; + return; + } + + /* The probability that these two buffers are equal is very + small. */ + if (memcmp (buf, buf2, sizeof (buf) == 0)) + { + printf ("error: getentropy appears to return constant bytes\n"); + errors = true; + return; + } + + for (size_t i = sizeof (buf); i < sizeof (buf2); ++i) + if (buf2[i] != '@') + { + printf ("error: getentropy wrote beyond the end of the buffer\n"); + errors = true; + return; + } + + char buf3[257]; + if (getentropy (buf3, sizeof (buf3)) == 0) + { + printf ("error: getentropy successful for 257 byte buffer\n"); + errors = true; + return; + } + if (errno != EIO) + { + printf ("error: getentropy wrong error for 257 byte buffer: %m\n"); + errors = true; + return; + } +} + +static int +do_test (void) +{ + /* Check if getrandom is not supported by this system. */ + if (getrandom (NULL, 0, 0) == -1 && errno == ENOSYS) + return 77; + + for (int use_random = 0; use_random < 2; ++use_random) + for (int use_nonblock = 0; use_nonblock < 2; ++use_nonblock) + { + unsigned int flags = 0; + if (use_random) + flags |= GRND_RANDOM; + if (use_nonblock) + flags |= GRND_NONBLOCK; + test_flags (flags); + } + + test_getentropy (); + + return errors; +} + +#include diff --git a/sysdeps/arm/nacl/libc.abilist b/sysdeps/arm/nacl/libc.abilist index 807e43d935..0a39f4d13e 100644 --- a/sysdeps/arm/nacl/libc.abilist +++ b/sysdeps/arm/nacl/libc.abilist @@ -1843,6 +1843,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 gnu_dev_major F GLIBC_2.25 gnu_dev_makedev F GLIBC_2.25 gnu_dev_minor F diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 77accdf5c1..8d3435f210 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2090,6 +2090,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 659b7fcf37..2381616b71 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2001,6 +2001,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 8bc979ad7f..e2dbf6fee7 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -91,6 +91,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/getentropy.c b/sysdeps/unix/sysv/linux/getentropy.c new file mode 100644 index 0000000000..1778632ff1 --- /dev/null +++ b/sysdeps/unix/sysv/linux/getentropy.c @@ -0,0 +1,73 @@ +/* Implementation of getentropy based on the getrandom system call. + 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 + +#ifdef __NR_getrandom +/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on + success and -1 on failure. */ +int +getentropy (void *buffer, size_t length) +{ + /* The interface is documented to return EIO for buffer lengths + longer than 256 bytes. */ + if (length > 256) + { + __set_errno (EIO); + return -1; + } + + /* Try to fill the buffer completely. Even with the 256 byte limit + above, we might still receive an EINTR error (when blocking + during boot). */ + void *end = buffer + length; + while (buffer < end) + { + /* NB: No cancellation point. */ + ssize_t bytes = INLINE_SYSCALL_CALL (getrandom, buffer, end - buffer, 0); + if (bytes < 0) + { + if (errno == EINTR) + /* Try again if interrupted by a signal. */ + continue; + else + return -1; + } + if (bytes == 0) + { + /* No more bytes available. This should not happen under + normal circumstances. */ + __set_errno (EIO); + return -1; + } + /* Try again in case of a short read. */ + buffer += bytes; + } + return 0; +} +#else +int +getentropy (void *buffer, size_t length) +{ + __set_errno (ENOSYS); + return -1; +} +#endif diff --git a/sysdeps/unix/sysv/linux/getrandom.c b/sysdeps/unix/sysv/linux/getrandom.c new file mode 100644 index 0000000000..7df0092688 --- /dev/null +++ b/sysdeps/unix/sysv/linux/getrandom.c @@ -0,0 +1,43 @@ +/* Implementation of the getrandom system call. + 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 + +#ifdef __NR_getrandom +/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on + success and -1 on failure. */ +ssize_t +getrandom (void *buffer, size_t length, unsigned int flags) +{ + return SYSCALL_CANCEL (getrandom, buffer, length, flags); +} +#else +/* Always provide a definition, even if the kernel headers lack the + system call number. */ +ssize_t +getrandom (void *buffer, size_t length, unsigned int flags) +{ + /* Ideally, we would add a cancellation point here, but we currently + cannot do so inside libc. */ + __set_errno (ENOSYS); + return -1; +} +#endif diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 299b705156..231f039e69 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1855,6 +1855,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index f00345f673..5d0159348b 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2013,6 +2013,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index e5fcf88b18..00ef4d77ab 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1877,6 +1877,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 8f382f680b..7de0b0e9bd 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -92,6 +92,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 320b7fef5f..93e1124592 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1969,6 +1969,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 21b14262c6..da70083bdd 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2090,6 +2090,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 5c4b596c54..570bbf6791 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1944,6 +1944,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 001fa6c129..5022e5a186 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1942,6 +1942,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 2d870013f7..ca9f91924f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1940,6 +1940,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index aa1ee66ab7..2a090db5c6 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1935,6 +1935,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 2471d68e87..d10bb32513 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2131,6 +2131,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 4ba3146902..a7e688bed9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1973,6 +1973,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 0557c16130..8c32c33076 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1978,6 +1978,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 821384ebd6..2a13e49a9e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2178,6 +2178,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index c40a3f1cba..4f29a6db6e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -92,6 +92,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 5b39a60638..1e9d4f4d91 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1973,6 +1973,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index a9db32f6c2..6b3d9320e1 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1874,6 +1874,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 294af0a501..93b79d3758 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1859,6 +1859,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 32747bd22d..a29b0c149b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1965,6 +1965,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index b0ac4d4472..8ac06e9b01 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1903,6 +1903,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 4d92d81b85..208e7425ff 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index a68aef7bb7..3d7836d546 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 4d92d81b85..208e7425ff 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index b8623fc59f..32cd1e07b4 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1854,6 +1854,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index a61d874dfe..4ff7acf300 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -- cgit v1.2.3 From ea1bd74defcf9d5291d14972e63105168ca9eb4f Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Thu, 15 Sep 2016 07:29:44 -0400 Subject: New string function explicit_bzero (from OpenBSD). explicit_bzero(s, n) is the same as memset(s, 0, n), except that the compiler is not allowed to delete a call to explicit_bzero even if the memory pointed to by 's' is dead after the call. Right now, this effect is achieved externally by having explicit_bzero be a function whose semantics are unknown to the compiler, and internally, with a no-op asm statement that clobbers memory. This does mean that small explicit_bzero operations cannot be expanded inline as small memset operations can, but on the other hand, small memset operations do get deleted by the compiler. Hopefully full compiler support for explicit_bzero will happen relatively soon. There are two new tests: test-explicit_bzero.c verifies the visible semantics in the same way as the existing test-bzero.c, and tst-xbzero-opt.c verifies the not-being-optimized-out property. The latter is conceptually based on a test written by Matthew Dempsky for the OpenBSD regression suite. The crypt() implementation has an immediate use for this new feature. We avoid having to add a GLIBC_PRIVATE alias for explicit_bzero by running all of libcrypt's calls through the fortified variant, __explicit_bzero_chk, which is in the impl namespace anyway. Currently I'm not aware of anything in libc proper that needs this, but the glue is all in place if it does become necessary. The legacy DES implementation wasn't bothering to clear its buffers, so I added that, mostly for consistency's sake. * string/explicit_bzero.c: New routine. * string/test-explicit_bzero.c, string/tst-xbzero-opt.c: New tests. * string/Makefile (routines, strop-tests, tests): Add them. * string/test-memset.c: Add ifdeffage for testing explicit_bzero. * string/string.h [__USE_MISC]: Declare explicit_bzero. * debug/explicit_bzero_chk.c: New routine. * debug/Makefile (routines): Add it. * debug/tst-chk1.c: Test fortification of explicit_bzero. * string/bits/string3.h: Fortify explicit_bzero. * manual/string.texi: Document explicit_bzero. * NEWS: Mention addition of explicit_bzero. * crypt/crypt-entry.c (__crypt_r): Clear key-dependent intermediate data before returning, using explicit_bzero. * crypt/md5-crypt.c (__md5_crypt_r): Likewise. * crypt/sha256-crypt.c (__sha256_crypt_r): Likewise. * crypt/sha512-crypt.c (__sha512_crypt_r): Likewise. * include/string.h: Redirect internal uses of explicit_bzero to __explicit_bzero_chk[_internal]. * string/Versions [GLIBC_2.25]: Add explicit_bzero. * debug/Versions [GLIBC_2.25]: Add __explicit_bzero_chk. * sysdeps/arm/nacl/libc.abilist * sysdeps/unix/sysv/linux/aarch64/libc.abilist * sysdeps/unix/sysv/linux/alpha/libc.abilist * sysdeps/unix/sysv/linux/arm/libc.abilist * sysdeps/unix/sysv/linux/hppa/libc.abilist * sysdeps/unix/sysv/linux/i386/libc.abilist * sysdeps/unix/sysv/linux/ia64/libc.abilist * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist * sysdeps/unix/sysv/linux/microblaze/libc.abilist * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist * sysdeps/unix/sysv/linux/nios2/libc.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist * sysdeps/unix/sysv/linux/sh/libc.abilist * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Add entries for explicit_bzero and __explicit_bzero_chk. --- ChangeLog | 59 +++++ NEWS | 6 + crypt/crypt-entry.c | 9 + crypt/md5-crypt.c | 8 +- crypt/sha256-crypt.c | 14 +- crypt/sha512-crypt.c | 14 +- debug/Makefile | 1 + debug/Versions | 3 + debug/explicit_bzero_chk.c | 44 ++++ debug/tst-chk1.c | 28 ++ include/string.h | 11 + manual/string.texi | 99 +++++++ string/Makefile | 7 +- string/Versions | 3 + string/bits/string3.h | 9 + string/explicit_bzero.c | 38 +++ string/string.h | 4 + string/test-explicit_bzero.c | 20 ++ string/test-memset.c | 10 +- string/tst-xbzero-opt.c | 288 +++++++++++++++++++++ sysdeps/arm/nacl/libc.abilist | 2 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + sysdeps/unix/sysv/linux/arm/libc.abilist | 2 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 2 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 + sysdeps/unix/sysv/linux/sh/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 2 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 2 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 + 49 files changed, 711 insertions(+), 22 deletions(-) create mode 100644 debug/explicit_bzero_chk.c create mode 100644 string/explicit_bzero.c create mode 100644 string/test-explicit_bzero.c create mode 100644 string/tst-xbzero-opt.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index d15b06d668..1d93077dcd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,62 @@ +2016-12-16 Zack Weinberg + Florian Weimer + Nick Mathewson + + * string/explicit_bzero.c: New routine. + * string/test-explicit_bzero.c, string/tst-xbzero-opt.c: New tests. + * string/Makefile (routines, strop-tests, tests): Add them. + * string/test-memset.c: Add ifdeffage for testing explicit_bzero. + * string/string.h [__USE_MISC]: Declare explicit_bzero. + + * debug/explicit_bzero_chk.c: New routine. + * debug/Makefile (routines): Add it. + * debug/tst-chk1.c: Test fortification of explicit_bzero. + * string/bits/string3.h: Fortify explicit_bzero. + + * manual/string.texi: Document explicit_bzero. + * NEWS: Mention addition of explicit_bzero. + + * crypt/crypt-entry.c (__crypt_r): Clear key-dependent intermediate + data before returning, using explicit_bzero. + * crypt/md5-crypt.c (__md5_crypt_r): Likewise. + * crypt/sha256-crypt.c (__sha256_crypt_r): Likewise. + * crypt/sha512-crypt.c (__sha512_crypt_r): Likewise. + + * include/string.h: Redirect internal uses of explicit_bzero + to __explicit_bzero_chk[_internal]. + * string/Versions [GLIBC_2.25]: Add explicit_bzero. + * debug/Versions [GLIBC_2.25]: Add __explicit_bzero_chk. + * sysdeps/arm/nacl/libc.abilist + * sysdeps/unix/sysv/linux/aarch64/libc.abilist + * sysdeps/unix/sysv/linux/alpha/libc.abilist + * sysdeps/unix/sysv/linux/arm/libc.abilist + * sysdeps/unix/sysv/linux/hppa/libc.abilist + * sysdeps/unix/sysv/linux/i386/libc.abilist + * sysdeps/unix/sysv/linux/ia64/libc.abilist + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist + * sysdeps/unix/sysv/linux/microblaze/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist + * sysdeps/unix/sysv/linux/nios2/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist + * sysdeps/unix/sysv/linux/sh/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: + Add entries for explicit_bzero and __explicit_bzero_chk. + 2016-12-16 Joseph Myers * math/fenv.h diff --git a/NEWS b/NEWS index baf46bd4ad..43d4e300b2 100644 --- a/NEWS +++ b/NEWS @@ -84,6 +84,12 @@ Version 2.25 * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, are added to libc. They convert a floating-point number into string. +* The function explicit_bzero, from OpenBSD, has been added to libc. It is + intended to be used instead of memset() to erase sensitive data after use; + the compiler will not optimize out calls to explicit_bzero even if they + are "unnecessary" (in the sense that no _correct_ program can observe the + effects of the memory clear). + * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined to float instead of double. This does not affect the ABI of any libraries that are part of the GNU C Library, but may affect the ABI of other diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c index a7dfccaa36..23e776fb9e 100644 --- a/crypt/crypt-entry.c +++ b/crypt/crypt-entry.c @@ -141,6 +141,15 @@ __crypt_r (const char *key, const char *salt, * And convert back to 6 bit ASCII */ _ufc_output_conversion_r (res[0], res[1], salt, data); + + /* + * Erase key-dependent intermediate data. Data dependent only on + * the salt is not considered sensitive. + */ + explicit_bzero (ktab, sizeof (ktab)); + explicit_bzero (data->keysched, sizeof (data->keysched)); + explicit_bzero (res, sizeof (res)); + return data->crypt_3_buf; } weak_alias (__crypt_r, crypt_r) diff --git a/crypt/md5-crypt.c b/crypt/md5-crypt.c index 2243bc7aed..6125c7f7f2 100644 --- a/crypt/md5-crypt.c +++ b/crypt/md5-crypt.c @@ -288,13 +288,13 @@ __md5_crypt_r (const char *key, const char *salt, char *buffer, int buflen) #ifndef USE_NSS __md5_init_ctx (&ctx); __md5_finish_ctx (&ctx, alt_result); - memset (&ctx, '\0', sizeof (ctx)); - memset (&alt_ctx, '\0', sizeof (alt_ctx)); + explicit_bzero (&ctx, sizeof (ctx)); + explicit_bzero (&alt_ctx, sizeof (alt_ctx)); #endif if (copied_key != NULL) - memset (copied_key, '\0', key_len); + explicit_bzero (copied_key, key_len); if (copied_salt != NULL) - memset (copied_salt, '\0', salt_len); + explicit_bzero (copied_salt, salt_len); free (free_key); return buffer; diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c index d768234879..8c670ea405 100644 --- a/crypt/sha256-crypt.c +++ b/crypt/sha256-crypt.c @@ -371,16 +371,16 @@ __sha256_crypt_r (const char *key, const char *salt, char *buffer, int buflen) #ifndef USE_NSS __sha256_init_ctx (&ctx); __sha256_finish_ctx (&ctx, alt_result); - memset (&ctx, '\0', sizeof (ctx)); - memset (&alt_ctx, '\0', sizeof (alt_ctx)); + explicit_bzero (&ctx, sizeof (ctx)); + explicit_bzero (&alt_ctx, sizeof (alt_ctx)); #endif - memset (temp_result, '\0', sizeof (temp_result)); - memset (p_bytes, '\0', key_len); - memset (s_bytes, '\0', salt_len); + explicit_bzero (temp_result, sizeof (temp_result)); + explicit_bzero (p_bytes, key_len); + explicit_bzero (s_bytes, salt_len); if (copied_key != NULL) - memset (copied_key, '\0', key_len); + explicit_bzero (copied_key, key_len); if (copied_salt != NULL) - memset (copied_salt, '\0', salt_len); + explicit_bzero (copied_salt, salt_len); free (free_key); free (free_pbytes); diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c index f404c88b20..dac145b2e9 100644 --- a/crypt/sha512-crypt.c +++ b/crypt/sha512-crypt.c @@ -393,16 +393,16 @@ __sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen) #ifndef USE_NSS __sha512_init_ctx (&ctx); __sha512_finish_ctx (&ctx, alt_result); - memset (&ctx, '\0', sizeof (ctx)); - memset (&alt_ctx, '\0', sizeof (alt_ctx)); + explicit_bzero (&ctx, sizeof (ctx)); + explicit_bzero (&alt_ctx, sizeof (alt_ctx)); #endif - memset (temp_result, '\0', sizeof (temp_result)); - memset (p_bytes, '\0', key_len); - memset (s_bytes, '\0', salt_len); + explicit_bzero (temp_result, sizeof (temp_result)); + explicit_bzero (p_bytes, key_len); + explicit_bzero (s_bytes, salt_len); if (copied_key != NULL) - memset (copied_key, '\0', key_len); + explicit_bzero (copied_key, key_len); if (copied_salt != NULL) - memset (copied_salt, '\0', salt_len); + explicit_bzero (copied_salt, salt_len); free (free_key); free (free_pbytes); diff --git a/debug/Makefile b/debug/Makefile index 6b5f31e4f6..84d3f92c0d 100644 --- a/debug/Makefile +++ b/debug/Makefile @@ -48,6 +48,7 @@ routines = backtrace backtracesyms backtracesymsfd noophooks \ vdprintf_chk obprintf_chk \ longjmp_chk ____longjmp_chk \ fdelt_chk poll_chk ppoll_chk \ + explicit_bzero_chk \ stack_chk_fail fortify_fail \ $(static-only-routines) static-only-routines := warning-nop stack_chk_fail_local diff --git a/debug/Versions b/debug/Versions index 0482c85f19..a6628db356 100644 --- a/debug/Versions +++ b/debug/Versions @@ -55,6 +55,9 @@ libc { GLIBC_2.16 { __poll_chk; __ppoll_chk; } + GLIBC_2.25 { + __explicit_bzero_chk; + } GLIBC_PRIVATE { __fortify_fail; } diff --git a/debug/explicit_bzero_chk.c b/debug/explicit_bzero_chk.c new file mode 100644 index 0000000000..2e507f8297 --- /dev/null +++ b/debug/explicit_bzero_chk.c @@ -0,0 +1,44 @@ +/* Generic implementation of __explicit_bzero_chk. + Copyright (C) 1991-2016 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Torbjorn Granlund (tege@sics.se). + + 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 + . */ + +/* This is the generic definition of __explicit_bzero_chk. The + __explicit_bzero_chk symbol is used as the implementation of + explicit_bzero throughout glibc. If this file is overriden by an + architecture, both __explicit_bzero_chk and + __explicit_bzero_chk_internal have to be defined (the latter not as + an IFUNC). */ + +#include + +void +__explicit_bzero_chk (void *dst, size_t len, size_t dstlen) +{ + /* Inline __memset_chk to avoid a PLT reference to __memset_chk. */ + if (__glibc_unlikely (dstlen < len)) + __chk_fail (); + memset (dst, '\0', len); + /* Compiler barrier. */ + asm volatile ("" ::: "memory"); +} + +/* libc-internal references use the hidden + __explicit_bzero_chk_internal symbol. This is necessary if + __explicit_bzero_chk is implemented as an IFUNC because some + targets do not support hidden references to IFUNC symbols. */ +strong_alias (__explicit_bzero_chk, __explicit_bzero_chk_internal) diff --git a/debug/tst-chk1.c b/debug/tst-chk1.c index 478c2fbb81..e87a279fb2 100644 --- a/debug/tst-chk1.c +++ b/debug/tst-chk1.c @@ -160,6 +160,10 @@ do_test (void) if (memcmp (buf, "aabcdabc\0\0", 10)) FAIL (); + explicit_bzero (buf + 6, 4); + if (memcmp (buf, "aabcda\0\0\0\0", 10)) + FAIL (); + strcpy (buf + 4, "EDCBA"); if (memcmp (buf, "aabcEDCBA", 10)) FAIL (); @@ -201,6 +205,10 @@ do_test (void) if (memcmp (buf, "aabcdabc\0\0", 10)) FAIL (); + explicit_bzero (buf + 6, l0 + 4); + if (memcmp (buf, "aabcda\0\0\0\0", 10)) + FAIL (); + strcpy (buf + 4, str1 + 5); if (memcmp (buf, "aabcEDCBA", 10)) FAIL (); @@ -256,6 +264,10 @@ do_test (void) if (memcmp (a.buf1, "aabcdabc\0\0", 10)) FAIL (); + explicit_bzero (a.buf1 + 6, l0 + 4); + if (memcmp (a.buf1, "aabcda\0\0\0\0", 10)) + FAIL (); + #if __USE_FORTIFY_LEVEL < 2 /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2 and sufficient GCC support, as the string operations overflow @@ -345,6 +357,14 @@ do_test (void) bzero (buf + 9, l0 + 2); CHK_FAIL_END + CHK_FAIL_START + explicit_bzero (buf + 9, 2); + CHK_FAIL_END + + CHK_FAIL_START + explicit_bzero (buf + 9, l0 + 2); + CHK_FAIL_END + CHK_FAIL_START strcpy (buf + 5, str1 + 5); CHK_FAIL_END @@ -454,6 +474,14 @@ do_test (void) bzero (a.buf1 + 9, l0 + 2); CHK_FAIL_END + CHK_FAIL_START + explicit_bzero (a.buf1 + 9, 2); + CHK_FAIL_END + + CHK_FAIL_START + explicit_bzero (a.buf1 + 9, l0 + 2); + CHK_FAIL_END + # if __USE_FORTIFY_LEVEL >= 2 # define O 0 # else diff --git a/include/string.h b/include/string.h index e145bfdb4c..300a2e2faa 100644 --- a/include/string.h +++ b/include/string.h @@ -100,6 +100,17 @@ extern __typeof (memmem) __memmem; libc_hidden_proto (__memmem) libc_hidden_proto (__ffs) +#if IS_IN (libc) +/* Avoid hidden reference to IFUNC symbol __explicit_bzero_chk. */ +void __explicit_bzero_chk_internal (void *, size_t, size_t) + __THROW __nonnull ((1)) attribute_hidden; +# define explicit_bzero(buf, len) \ + __explicit_bzero_chk_internal (buf, len, __bos0 (buf)) +#elif !IS_IN (nonlib) +void __explicit_bzero_chk (void *, size_t, size_t) __THROW __nonnull ((1)); +# define explicit_bzero(buf, len) __explicit_bzero_chk (buf, len, __bos0 (buf)) +#endif + libc_hidden_builtin_proto (memchr) libc_hidden_builtin_proto (memcpy) libc_hidden_builtin_proto (mempcpy) diff --git a/manual/string.texi b/manual/string.texi index 1986357ee8..b8810d66b7 100644 --- a/manual/string.texi +++ b/manual/string.texi @@ -34,6 +34,8 @@ too. * Search Functions:: Searching for a specific element or substring. * Finding Tokens in a String:: Splitting a string into tokens by looking for delimiters. +* Erasing Sensitive Data:: Clearing memory which contains sensitive + data, after it's no longer needed. * strfry:: Function for flash-cooking a string. * Trivial Encryption:: Obscuring data. * Encode Binary Data:: Encoding and Decoding of Binary Data. @@ -2404,6 +2406,103 @@ contains no '/' bytes, then "." is returned. The prototype for this function can be found in @file{libgen.h}. @end deftypefun +@node Erasing Sensitive Data +@section Erasing Sensitive Data + +Sensitive data, such as cryptographic keys, should be erased from +memory after use, to reduce the risk that a bug will expose it to the +outside world. However, compiler optimizations may determine that an +erasure operation is ``unnecessary,'' and remove it from the generated +code, because no @emph{correct} program could access the variable or +heap object containing the sensitive data after it's deallocated. +Since erasure is a precaution against bugs, this optimization is +inappropriate. + +The function @code{explicit_bzero} erases a block of memory, and +guarantees that the compiler will not remove the erasure as +``unnecessary.'' + +@smallexample +@group +#include + +extern void encrypt (const char *key, const char *in, + char *out, size_t n); +extern void genkey (const char *phrase, char *key); + +void encrypt_with_phrase (const char *phrase, const char *in, + char *out, size_t n) +@{ + char key[16]; + genkey (phrase, key); + encrypt (key, in, out, n); + explicit_bzero (key, 16); +@} +@end group +@end smallexample + +@noindent +In this example, if @code{memset}, @code{bzero}, or a hand-written +loop had been used, the compiler might remove them as ``unnecessary.'' + +@strong{Warning:} @code{explicit_bzero} does not guarantee that +sensitive data is @emph{completely} erased from the computer's memory. +There may be copies in temporary storage areas, such as registers and +``scratch'' stack space; since these are invisible to the source code, +a library function cannot erase them. + +Also, @code{explicit_bzero} only operates on RAM. If a sensitive data +object never needs to have its address taken other than to call +@code{explicit_bzero}, it might be stored entirely in CPU registers +@emph{until} the call to @code{explicit_bzero}. Then it will be +copied into RAM, the copy will be erased, and the original will remain +intact. Data in RAM is more likely to be exposed by a bug than data +in registers, so this creates a brief window where the data is at +greater risk of exposure than it would have been if the program didn't +try to erase it at all. + +Declaring sensitive variables as @code{volatile} will make both the +above problems @emph{worse}; a @code{volatile} variable will be stored +in memory for its entire lifetime, and the compiler will make +@emph{more} copies of it than it would otherwise have. Attempting to +erase a normal variable ``by hand'' through a +@code{volatile}-qualified pointer doesn't work at all---because the +variable itself is not @code{volatile}, some compilers will ignore the +qualification on the pointer and remove the erasure anyway. + +Having said all that, in most situations, using @code{explicit_bzero} +is better than not using it. At present, the only way to do a more +thorough job is to write the entire sensitive operation in assembly +language. We anticipate that future compilers will recognize calls to +@code{explicit_bzero} and take appropriate steps to erase all the +copies of the affected data, whereever they may be. + +@comment string.h +@comment BSD +@deftypefun void explicit_bzero (void *@var{block}, size_t @var{len}) +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + +@code{explicit_bzero} writes zero into @var{len} bytes of memory +beginning at @var{block}, just as @code{bzero} would. The zeroes are +always written, even if the compiler could determine that this is +``unnecessary'' because no correct program could read them back. + +@strong{Note:} The @emph{only} optimization that @code{explicit_bzero} +disables is removal of ``unnecessary'' writes to memory. The compiler +can perform all the other optimizations that it could for a call to +@code{memset}. For instance, it may replace the function call with +inline memory writes, and it may assume that @var{block} cannot be a +null pointer. + +@strong{Portability Note:} This function first appeared in OpenBSD 5.5 +and has not been standardized. Other systems may provide the same +functionality under a different name, such as @code{explicit_memset}, +@code{memset_s}, or @code{SecureZeroMemory}. + +@Theglibc{} declares this function in @file{string.h}, but on other +systems it may be in @file{strings.h} instead. +@end deftypefun + @node strfry @section strfry diff --git a/string/Makefile b/string/Makefile index 69d3f802fb..9a8b46d1bf 100644 --- a/string/Makefile +++ b/string/Makefile @@ -41,20 +41,21 @@ routines := strcat strchr strcmp strcoll strcpy strcspn \ addsep replace) \ envz basename \ strcoll_l strxfrm_l string-inlines memrchr \ - xpg-strerror strerror_l + xpg-strerror strerror_l explicit_bzero strop-tests := memchr memcmp memcpy memmove mempcpy memset memccpy \ stpcpy stpncpy strcat strchr strcmp strcpy strcspn \ strlen strncmp strncpy strpbrk strrchr strspn memmem \ strstr strcasestr strnlen strcasecmp strncasecmp \ - strncat rawmemchr strchrnul bcopy bzero memrchr + strncat rawmemchr strchrnul bcopy bzero memrchr \ + explicit_bzero tests := tester inl-tester noinl-tester testcopy test-ffs \ tst-strlen stratcliff tst-svc tst-inlcall \ bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap \ tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \ bug-strtok1 $(addprefix test-,$(strop-tests)) \ bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \ - tst-strtok_r bug-strcoll2 tst-cmp + tst-strtok_r bug-strcoll2 tst-cmp tst-xbzero-opt xtests = tst-strcoll-overflow diff --git a/string/Versions b/string/Versions index 475c1fdb64..9b709d12a9 100644 --- a/string/Versions +++ b/string/Versions @@ -82,4 +82,7 @@ libc { } GLIBC_2.24 { } + GLIBC_2.25 { + explicit_bzero; + } } diff --git a/string/bits/string3.h b/string/bits/string3.h index 8f13b65fa6..940c8d8e24 100644 --- a/string/bits/string3.h +++ b/string/bits/string3.h @@ -102,6 +102,15 @@ __NTH (bzero (void *__dest, size_t __len)) { (void) __builtin___memset_chk (__dest, '\0', __len, __bos0 (__dest)); } + +void __explicit_bzero_chk (void *__dest, size_t __len, size_t __destlen) + __THROW __nonnull ((1)); + +__fortify_function void +__NTH (explicit_bzero (void *__dest, size_t __len)) +{ + __explicit_bzero_chk (__dest, __len, __bos0 (__dest)); +} #endif __fortify_function char * diff --git a/string/explicit_bzero.c b/string/explicit_bzero.c new file mode 100644 index 0000000000..6712cad5a6 --- /dev/null +++ b/string/explicit_bzero.c @@ -0,0 +1,38 @@ +/* Erasure of sensitive data, generic implementation. + 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 + . */ + +/* An assembler implementation of explicit_bzero can be created as an + assembler alias of an optimized bzero implementation. + Architecture-specific implementations also need to define + __explicit_bzero_chk. */ + +#include + +/* glibc-internal users use __explicit_bzero_chk, and explicit_bzero + redirects to that. */ +#undef explicit_bzero + +/* Set LEN bytes of S to 0. The compiler will not delete a call to + this function, even if S is dead after the call. */ +void +explicit_bzero (void *s, size_t len) +{ + memset (s, '\0', len); + /* Compiler barrier. */ + asm volatile ("" ::: "memory"); +} diff --git a/string/string.h b/string/string.h index b103e64912..c398569c15 100644 --- a/string/string.h +++ b/string/string.h @@ -453,6 +453,10 @@ extern void bcopy (const void *__src, void *__dest, size_t __n) /* Set N bytes of S to 0. */ extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1)); +/* As bzero, but the compiler will not delete a call to this + function, even if S is dead after the call. */ +extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1)); + /* Compare N bytes of S1 and S2 (same as memcmp). */ extern int bcmp (const void *__s1, const void *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2)); diff --git a/string/test-explicit_bzero.c b/string/test-explicit_bzero.c new file mode 100644 index 0000000000..5a4543b41a --- /dev/null +++ b/string/test-explicit_bzero.c @@ -0,0 +1,20 @@ +/* Test and measure explicit_bzero. + 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 + . */ +#define TEST_EXPLICIT_BZERO +#define TEST_BZERO +#include "test-memset.c" diff --git a/string/test-memset.c b/string/test-memset.c index fee3bdf37f..7ca4f2076c 100644 --- a/string/test-memset.c +++ b/string/test-memset.c @@ -19,7 +19,11 @@ #define TEST_MAIN #ifdef TEST_BZERO -# define TEST_NAME "bzero" +# ifdef TEST_EXPLICIT_BZERO +# define TEST_NAME "explicit_bzero" +# else +# define TEST_NAME "bzero" +# endif #else # ifndef WIDE # define TEST_NAME "memset" @@ -56,7 +60,11 @@ void builtin_bzero (char *, size_t); IMPL (simple_bzero, 0) IMPL (builtin_bzero, 0) +#ifdef TEST_EXPLICIT_BZERO +IMPL (explicit_bzero, 1) +#else IMPL (bzero, 1) +#endif void simple_bzero (char *s, size_t n) diff --git a/string/tst-xbzero-opt.c b/string/tst-xbzero-opt.c new file mode 100644 index 0000000000..312857e056 --- /dev/null +++ b/string/tst-xbzero-opt.c @@ -0,0 +1,288 @@ +/* Test that explicit_bzero block clears are not optimized out. + 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 + . */ + +/* This test is conceptually based on a test designed by Matthew + Dempsky for the OpenBSD regression suite: + /src/regress/lib/libc/explicit_bzero/explicit_bzero.c. + The basic idea is, we have a function that contains a + block-clearing operation (not necessarily explicit_bzero), after + which the block is dead, in the compiler-jargon sense. Execute + that function while running on a user-allocated alternative + stack. Then we have another pointer to the memory region affected + by the block clear -- namely, the original allocation for the + alternative stack -- and can find out whether it actually happened. + + The OpenBSD test uses sigaltstack and SIGUSR1 to get onto an + alternative stack. This causes a number of awkward problems; some + operating systems (e.g. Solaris and OSX) wipe the signal stack upon + returning to the normal stack, there's no way to be sure that other + processes running on the same system will not interfere, and the + signal stack is very small so it's not safe to call printf there. + This implementation instead uses the coroutine + interface. The coroutine stack is still too small to safely use + printf, but we know the OS won't erase it, so we can do all the + checks and printing from the normal stack. */ + +#define _GNU_SOURCE 1 + +#include +#include +#include +#include +#include +#include +#include + +/* A byte pattern that is unlikely to occur by chance: the first 16 + prime numbers (OEIS A000040). */ +static const unsigned char test_pattern[16] = +{ + 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53 +}; + +/* Immediately after each subtest returns, we call swapcontext to get + back onto the main stack. That call might itself overwrite the + test pattern, so we fill a modest-sized buffer with copies of it + and check whether any of them survived. */ + +#define PATTERN_SIZE (sizeof test_pattern) +#define PATTERN_REPS 32 +#define TEST_BUFFER_SIZE (PATTERN_SIZE * PATTERN_REPS) + +/* There are three subtests, two of which are sanity checks. + Each test follows this sequence: + + main coroutine + ---- -------- + advance cur_subtest + swap + call setup function + prepare test buffer + swap + verify that buffer + was filled in + swap + possibly clear buffer + return + swap + check buffer again, + according to test + expectation + + In the "no_clear" case, we don't do anything to the test buffer + between preparing it and letting it go out of scope, and we expect + to find it. This confirms that the test buffer does get filled in + and we can find it from the stack buffer. In the "ordinary_clear" + case, we clear it using memset, and we expect to find it. This + confirms that the compiler can optimize out block clears in this + context; if it can't, the real test might be succeeding for the + wrong reason. Finally, the "explicit_clear" case uses + explicit_bzero and expects _not_ to find the test buffer, which is + the real test. */ + +static ucontext_t uc_main, uc_co; + +/* Always check the test buffer immediately after filling it; this + makes externally visible side effects depend on the buffer existing + and having been filled in. */ +static void +prepare_test_buffer (unsigned char *buf) +{ + for (unsigned int i = 0; i < PATTERN_REPS; i++) + memcpy (buf + i*PATTERN_SIZE, test_pattern, PATTERN_SIZE); + + if (swapcontext (&uc_co, &uc_main)) + abort (); +} + +static void +setup_no_clear (void) +{ + unsigned char buf[TEST_BUFFER_SIZE]; + prepare_test_buffer (buf); +} + +static void +setup_ordinary_clear (void) +{ + unsigned char buf[TEST_BUFFER_SIZE]; + prepare_test_buffer (buf); + memset (buf, 0, TEST_BUFFER_SIZE); +} + +static void +setup_explicit_clear (void) +{ + unsigned char buf[TEST_BUFFER_SIZE]; + prepare_test_buffer (buf); + explicit_bzero (buf, TEST_BUFFER_SIZE); +} + +enum test_expectation { EXPECT_NONE, EXPECT_SOME, EXPECT_ALL }; +struct subtest +{ + void (*setup_subtest) (void); + const char *label; + enum test_expectation expected; +}; +static const struct subtest *cur_subtest; + +static const struct subtest subtests[] = +{ + { setup_no_clear, "no clear", EXPECT_SOME }, + { setup_ordinary_clear, "ordinary clear", EXPECT_SOME }, + { setup_explicit_clear, "explicit clear", EXPECT_NONE }, + { 0, 0, -1 } +}; + +static void +test_coroutine (void) +{ + while (cur_subtest->setup_subtest) + { + cur_subtest->setup_subtest (); + if (swapcontext (&uc_co, &uc_main)) + abort (); + } +} + +/* All the code above this point runs on the coroutine stack. + All the code below this point runs on the main stack. */ + +static int test_status; +static unsigned char *co_stack_buffer; +static size_t co_stack_size; + +static unsigned int +count_test_patterns (unsigned char *buf, size_t bufsiz) +{ + unsigned char *first = memmem (buf, bufsiz, test_pattern, PATTERN_SIZE); + if (!first) + return 0; + unsigned int cnt = 0; + for (unsigned int i = 0; i < PATTERN_REPS; i++) + { + unsigned char *p = first + i*PATTERN_SIZE; + if (p + PATTERN_SIZE - buf > bufsiz) + break; + if (memcmp (p, test_pattern, PATTERN_SIZE) == 0) + cnt++; + } + return cnt; +} + +static void +check_test_buffer (enum test_expectation expected, + const char *label, const char *stage) +{ + unsigned int cnt = count_test_patterns (co_stack_buffer, co_stack_size); + switch (expected) + { + case EXPECT_NONE: + if (cnt == 0) + printf ("PASS: %s/%s: expected 0 got %d\n", label, stage, cnt); + else + { + printf ("FAIL: %s/%s: expected 0 got %d\n", label, stage, cnt); + test_status = 1; + } + break; + + case EXPECT_SOME: + if (cnt > 0) + printf ("PASS: %s/%s: expected some got %d\n", label, stage, cnt); + else + { + printf ("FAIL: %s/%s: expected some got 0\n", label, stage); + test_status = 1; + } + break; + + case EXPECT_ALL: + if (cnt == PATTERN_REPS) + printf ("PASS: %s/%s: expected %d got %d\n", label, stage, + PATTERN_REPS, cnt); + else + { + printf ("FAIL: %s/%s: expected %d got %d\n", label, stage, + PATTERN_REPS, cnt); + test_status = 1; + } + break; + + default: + printf ("ERROR: %s/%s: invalid value for 'expected' = %d\n", + label, stage, (int)expected); + test_status = 1; + } +} + +static void +test_loop (void) +{ + cur_subtest = subtests; + while (cur_subtest->setup_subtest) + { + if (swapcontext (&uc_main, &uc_co)) + abort (); + check_test_buffer (EXPECT_ALL, cur_subtest->label, "prepare"); + if (swapcontext (&uc_main, &uc_co)) + abort (); + check_test_buffer (cur_subtest->expected, cur_subtest->label, "test"); + cur_subtest++; + } + /* Terminate the coroutine. */ + if (swapcontext (&uc_main, &uc_co)) + abort (); +} + +int +do_test (void) +{ + size_t page_alignment = sysconf (_SC_PAGESIZE); + if (page_alignment < sizeof (void *)) + page_alignment = sizeof (void *); + + co_stack_size = SIGSTKSZ + TEST_BUFFER_SIZE; + if (co_stack_size < page_alignment * 4) + co_stack_size = page_alignment * 4; + + void *p; + int err = posix_memalign (&p, page_alignment, co_stack_size); + if (err || !p) + { + printf ("ERROR: allocating alt stack: %s\n", strerror (err)); + return 2; + } + co_stack_buffer = p; + + if (getcontext (&uc_co)) + { + printf ("ERROR: allocating coroutine context: %s\n", strerror (err)); + return 2; + } + uc_co.uc_stack.ss_sp = co_stack_buffer; + uc_co.uc_stack.ss_size = co_stack_size; + uc_co.uc_link = &uc_main; + makecontext (&uc_co, test_coroutine, 0); + + test_loop (); + return test_status; +} + +#include diff --git a/sysdeps/arm/nacl/libc.abilist b/sysdeps/arm/nacl/libc.abilist index 0a39f4d13e..abd70c8108 100644 --- a/sysdeps/arm/nacl/libc.abilist +++ b/sysdeps/arm/nacl/libc.abilist @@ -1843,6 +1843,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 gnu_dev_major F diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 8d3435f210..58d768c6bc 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2090,6 +2090,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 2381616b71..906050d2c3 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2001,6 +2001,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index e2dbf6fee7..66112dd0a7 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -91,6 +91,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 231f039e69..3ddadd2a24 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1855,6 +1855,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 5d0159348b..977ab90bc7 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2013,6 +2013,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 00ef4d77ab..c7edb9a272 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1877,6 +1877,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 7de0b0e9bd..450be4e9c1 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -92,6 +92,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 93e1124592..9e016bd76e 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1969,6 +1969,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index da70083bdd..1a455be0f5 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2090,6 +2090,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 570bbf6791..8eb5e668b9 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1944,6 +1944,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 5022e5a186..416d9ac0ae 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1942,6 +1942,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index ca9f91924f..f4949e5a38 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1940,6 +1940,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 2a090db5c6..c7375aee3f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1935,6 +1935,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index d10bb32513..724a0e3a04 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2131,6 +2131,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index a7e688bed9..2dc32b631c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1973,6 +1973,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 8c32c33076..5658109ca2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1978,6 +1978,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 2a13e49a9e..c761221ffe 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2178,6 +2178,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 4f29a6db6e..265c76914b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -92,6 +92,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 1e9d4f4d91..ed1b6bf26f 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1973,6 +1973,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 6b3d9320e1..2e75d29e47 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1874,6 +1874,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 93b79d3758..bd74c0cdab 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1859,6 +1859,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index a29b0c149b..5584838409 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1965,6 +1965,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 8ac06e9b01..efedbe2874 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1903,6 +1903,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 208e7425ff..ffd988a33d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 3d7836d546..f0c13ceea8 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 208e7425ff..ffd988a33d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 32cd1e07b4..f57004c860 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1854,6 +1854,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 4ff7acf300..05629e17e7 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2097,6 +2097,8 @@ GLIBC_2.23 fts64_set F GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 quick_exit F GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F -- cgit v1.2.3 From 2e0bbbfbf95fc9e22692e93658a6fbdd2d4554da Mon Sep 17 00:00:00 2001 From: Dennis Wölfing Date: Tue, 30 May 2017 18:26:19 -0300 Subject: Add reallocarray function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The reallocarray function is an extension from OpenBSD. It is an integer-overflow-safe replacement for realloc(p, X*Y) and malloc(X*Y) (realloc(NULL, X*Y)). It can therefore help in preventing certain security issues in code. This is an updated version of a patch originally submitted by Rüdiger Sonderfeld in May 2014 [1]. Checked on i686-linux-gnu and x86_64-linux-gnu. [1] . 2017-05-30 Dennis Wölfing Rüdiger Sonderfeld * include/stdlib.h (__libc_reallocarray): New declaration. * malloc/Makefile (routines): Add reallocarray. (tests): Add tst-reallocarray.c. * malloc/Versions: Add reallocarray and __libc_reallocarray. * malloc/malloc-internal.h (check_mul_overflow_size_t): New inline function. * malloc/malloc.h (reallocarray): New declaration. * stdlib/stdlib.h (reallocarray): Likewise. * malloc/reallocarray.c: New file. * malloc/tst-reallocarray.c: New test file. * manual/memory.texi: Document reallocarray. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add reallocarray. * 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/nios2/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/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/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. --- ChangeLog | 45 ++++++++ NEWS | 4 + include/stdlib.h | 4 + malloc/Makefile | 4 +- malloc/Versions | 4 + malloc/malloc-internal.h | 19 ++++ malloc/malloc.h | 8 ++ malloc/reallocarray.c | 37 +++++++ malloc/tst-reallocarray.c | 118 +++++++++++++++++++++ manual/memory.texi | 46 ++++++-- stdlib/stdlib.h | 11 ++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 + sysdeps/unix/sysv/linux/arm/libc.abilist | 2 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 2 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 2 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 2 + sysdeps/unix/sysv/linux/sh/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 2 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 2 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 2 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 2 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 2 + 39 files changed, 344 insertions(+), 12 deletions(-) create mode 100644 malloc/reallocarray.c create mode 100644 malloc/tst-reallocarray.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 92d762e48c..876244a00a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,48 @@ +2017-05-30 Dennis Wölfing + Rüdiger Sonderfeld + + * include/stdlib.h (__libc_reallocarray): New declaration. + * malloc/Makefile (routines): Add reallocarray. + (tests): Add tst-reallocarray.c. + * malloc/Versions: Add reallocarray and __libc_reallocarray. + * malloc/malloc-internal.h (check_mul_overflow_size_t): New inline + function. + * malloc/malloc.h (reallocarray): New declaration. + * stdlib/stdlib.h (reallocarray): Likewise. + * malloc/reallocarray.c: New file. + * malloc/tst-reallocarray.c: New test file. + * manual/memory.texi: Document reallocarray. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add reallocarray. + * 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/nios2/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/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/tilepro/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + 2017-05-30 H.J. Lu * sysdeps/x86_64/memchr.S (memchr): Use 32-bit registers for diff --git a/NEWS b/NEWS index b4ecd6201d..f92392a3f8 100644 --- a/NEWS +++ b/NEWS @@ -66,6 +66,10 @@ Version 2.26 * The port to Native Client running on ARMv7-A (--host=arm-nacl) has been removed. +* The reallocarray function has been added to libc. It is a realloc + replacement with a check for integer overflow when calculating total + allocation size. + Security related changes: * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, diff --git a/include/stdlib.h b/include/stdlib.h index c3ee680bd6..5847445fd3 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -110,6 +110,10 @@ extern int __posix_memalign (void **memptr, size_t alignment, size_t size); extern void *__libc_memalign (size_t alignment, size_t size) __attribute_malloc__; +extern void *__libc_reallocarray (void *__ptr, size_t __nmemb, size_t __size) + __THROW __attribute_warn_unused_result__; +libc_hidden_proto (__libc_reallocarray) + extern int __libc_system (const char *line); diff --git a/malloc/Makefile b/malloc/Makefile index d0f23f7bf3..b7d4c63920 100644 --- a/malloc/Makefile +++ b/malloc/Makefile @@ -26,7 +26,7 @@ dist-headers := malloc.h headers := $(dist-headers) obstack.h mcheck.h tests := mallocbug tst-malloc tst-valloc tst-calloc tst-obstack \ tst-mcheck tst-mallocfork tst-trim1 \ - tst-malloc-usable tst-realloc tst-posix_memalign \ + tst-malloc-usable tst-realloc tst-reallocarray tst-posix_memalign \ tst-pvalloc tst-memalign tst-mallopt \ tst-malloc-backtrace tst-malloc-thread-exit \ tst-malloc-thread-fail tst-malloc-fork-deadlock \ @@ -49,7 +49,7 @@ endif tests += $(tests-static) test-srcs = tst-mtrace -routines = malloc morecore mcheck mtrace obstack \ +routines = malloc morecore mcheck mtrace obstack reallocarray \ scratch_buffer_grow scratch_buffer_grow_preserve \ scratch_buffer_set_array_size diff --git a/malloc/Versions b/malloc/Versions index e34ab177be..23aafb5ccc 100644 --- a/malloc/Versions +++ b/malloc/Versions @@ -62,6 +62,7 @@ libc { aligned_alloc; } GLIBC_2.26 { + reallocarray; } GLIBC_PRIVATE { # Internal startup hook for libpthread. @@ -74,5 +75,8 @@ libc { __libc_scratch_buffer_grow; __libc_scratch_buffer_grow_preserve; __libc_scratch_buffer_set_array_size; + + # Internal name for reallocarray + __libc_reallocarray; } } diff --git a/malloc/malloc-internal.h b/malloc/malloc-internal.h index de6103d7e1..dbd801a58e 100644 --- a/malloc/malloc-internal.h +++ b/malloc/malloc-internal.h @@ -81,5 +81,24 @@ void __malloc_fork_unlock_parent (void) internal_function attribute_hidden; /* Called in the child process after a fork. */ void __malloc_fork_unlock_child (void) internal_function attribute_hidden; +/* Set *RESULT to LEFT * RIGHT. Return true if the multiplication + overflowed. */ +static inline bool +check_mul_overflow_size_t (size_t left, size_t right, size_t *result) +{ +#if __GNUC__ >= 5 + return __builtin_mul_overflow (left, right, result); +#else + /* size_t is unsigned so the behavior on overflow is defined. */ + *result = left * right; + size_t half_size_t = ((size_t) 1) << (8 * sizeof (size_t) / 2); + if (__glibc_unlikely ((left | right) >= half_size_t)) + { + if (__glibc_unlikely (right != 0 && *result / right != left)) + return true; + } + return false; +#endif +} #endif /* _MALLOC_INTERNAL_H */ diff --git a/malloc/malloc.h b/malloc/malloc.h index 274c0958e4..339ab64c7d 100644 --- a/malloc/malloc.h +++ b/malloc/malloc.h @@ -49,6 +49,14 @@ __THROW __attribute_malloc__ __wur; extern void *realloc (void *__ptr, size_t __size) __THROW __attribute_warn_unused_result__; +/* Re-allocate the previously allocated block in PTR, making the new + block large enough for NMEMB elements of SIZE bytes each. */ +/* __attribute_malloc__ is not used, because if reallocarray returns + the same pointer that was passed to it, aliasing needs to be allowed + between objects pointed by the old and new pointers. */ +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) +__THROW __attribute_warn_unused_result__; + /* Free a block allocated by `malloc', `realloc' or `calloc'. */ extern void free (void *__ptr) __THROW; diff --git a/malloc/reallocarray.c b/malloc/reallocarray.c new file mode 100644 index 0000000000..07562c30c9 --- /dev/null +++ b/malloc/reallocarray.c @@ -0,0 +1,37 @@ +/* Change the size of an allocated block. + Copyright (C) 2017 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; see the file COPYING.LIB. If + not, see . */ + +#include +#include +#include + +void * +__libc_reallocarray (void *optr, size_t nmemb, size_t elem_size) +{ + size_t bytes; + if (check_mul_overflow_size_t (nmemb, elem_size, &bytes)) + { + __set_errno (ENOMEM); + return 0; + } + else + return realloc (optr, bytes); +} +libc_hidden_def (__libc_reallocarray) + +weak_alias (__libc_reallocarray, reallocarray) diff --git a/malloc/tst-reallocarray.c b/malloc/tst-reallocarray.c new file mode 100644 index 0000000000..f1cbf7fe0a --- /dev/null +++ b/malloc/tst-reallocarray.c @@ -0,0 +1,118 @@ +/* Test for reallocarray. + Copyright (C) 2017 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 + +static int +do_test (void) +{ + void *ptr = NULL; + void *ptr2 = NULL; + unsigned char *c; + size_t i; + int ok; + const size_t max = ~(size_t)0; + size_t a, b; + + /* Test overflow detection. */ + errno = 0; + ptr = reallocarray (NULL, max, 2); + TEST_VERIFY (!ptr); + TEST_VERIFY (errno == ENOMEM); + + errno = 0; + ptr = reallocarray (NULL, 2, max); + TEST_VERIFY (!ptr); + TEST_VERIFY (errno == ENOMEM); + + a = 65537; + b = max/65537 + 1; + errno = 0; + ptr = reallocarray (NULL, a, b); + TEST_VERIFY (!ptr); + TEST_VERIFY (errno == ENOMEM); + + errno = 0; + ptr = reallocarray (NULL, b, a); + TEST_VERIFY (!ptr); + TEST_VERIFY (errno == ENOMEM); + + /* Test realloc-like behavior. */ + /* Allocate memory like malloc. */ + ptr = reallocarray (NULL, 10, 2); + TEST_VERIFY_EXIT (ptr); + TEST_VERIFY_EXIT (malloc_usable_size (ptr) >= 10*2); + + memset (ptr, 0xAF, 10*2); + + /* Enlarge buffer. */ + ptr2 = reallocarray (ptr, 20, 2); + TEST_VERIFY (ptr2); + if (ptr2) + ptr = ptr2; + TEST_VERIFY (malloc_usable_size (ptr) >= 20*2); + + c = ptr; + ok = 1; + for (i = 0; i < 10*2; ++i) + { + if (c[i] != 0xAF) + ok = 0; + } + TEST_VERIFY (ok); + + /* Decrease buffer size. */ + ptr2 = reallocarray (ptr, 5, 3); + TEST_VERIFY (ptr2); + if (ptr2) + ptr = ptr2; + TEST_VERIFY_EXIT (malloc_usable_size (ptr) >= 5*3); + + c = ptr; + ok = 1; + for (i = 0; i < 5*3; ++i) + { + if (c[i] != 0xAF) + ok = 0; + } + TEST_VERIFY (ok); + + /* Overflow should leave buffer untouched. */ + errno = 0; + ptr2 = reallocarray (ptr, 2, ~(size_t)0); + TEST_VERIFY (!ptr2); + TEST_VERIFY (errno == ENOMEM); + + c = ptr; + ok = 1; + for (i = 0; i < 5*3; ++i) + { + if (c[i] != 0xAF) + ok = 0; + } + TEST_VERIFY (ok); + + free (ptr); + + return 0; +} + +#include diff --git a/manual/memory.texi b/manual/memory.texi index a256ca07b2..fb6b594ef1 100644 --- a/manual/memory.texi +++ b/manual/memory.texi @@ -751,8 +751,8 @@ be a buffer that you use to hold a line being read from a file; no matter how long you make the buffer initially, you may encounter a line that is longer. -You can make the block longer by calling @code{realloc}. This function -is declared in @file{stdlib.h}. +You can make the block longer by calling @code{realloc} or +@code{reallocarray}. These functions are declared in @file{stdlib.h}. @pindex stdlib.h @comment malloc.h stdlib.h @@ -816,9 +816,29 @@ behavior, and will probably crash when @code{realloc} is passed a null pointer. @end deftypefun -Like @code{malloc}, @code{realloc} may return a null pointer if no -memory space is available to make the block bigger. When this happens, -the original block is untouched; it has not been modified or relocated. +@comment malloc.h stdlib.h +@comment BSD +@deftypefun {void *} reallocarray (void *@var{ptr}, size_t @var{nmemb}, size_t @var{size}) +@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} + +The @code{reallocarray} function changes the size of the block whose address +is @var{ptr} to be long enough to contain a vector of @var{nmemb} elements, +each of size @var{size}. It is equivalent to @samp{realloc (@var{ptr}, +@var{nmemb} * @var{size})}, except that @code{reallocarray} fails safely if +the multiplication overflows, by setting @code{errno} to @code{ENOMEM}, +returning a null pointer, and leaving the original block unchanged. + +@code{reallocarray} should be used instead of @code{realloc} when the new size +of the allocated block is the result of a multiplication that might overflow. + +@strong{Portability Note:} This function is not part of any standard. It was +first introduced in OpenBSD 5.6. +@end deftypefun + +Like @code{malloc}, @code{realloc} and @code{reallocarray} may return a null +pointer if no memory space is available to make the block bigger. When this +happens, the original block is untouched; it has not been modified or +relocated. In most cases it makes no difference what happens to the original block when @code{realloc} fails, because the application program cannot continue @@ -838,16 +858,17 @@ xrealloc (void *ptr, size_t size) @} @end smallexample -You can also use @code{realloc} to make a block smaller. The reason you -would do this is to avoid tying up a lot of memory space when only a little -is needed. +You can also use @code{realloc} or @code{reallocarray} to make a block +smaller. The reason you would do this is to avoid tying up a lot of memory +space when only a little is needed. @comment The following is no longer true with the new malloc. @comment But it seems wise to keep the warning for other implementations. In several allocation implementations, making a block smaller sometimes necessitates copying it, so it can fail if no other space is available. -If the new size you specify is the same as the old size, @code{realloc} -is guaranteed to change nothing and return the same address that you gave. +If the new size you specify is the same as the old size, @code{realloc} and +@code{reallocarray} are guaranteed to change nothing and return the same +address that you gave. @node Allocating Cleared Space @subsubsection Allocating Cleared Space @@ -1588,6 +1609,11 @@ Malloc}. Make a block previously allocated by @code{malloc} larger or smaller, possibly by copying it to a new location. @xref{Changing Block Size}. +@item void *reallocarray (void *@var{ptr}, size_t @var{nmemb}, size_t @var{size}) +Change the size of a block previously allocated by @code{malloc} to +@code{@var{nmemb} * @var{size}} bytes as with @code{realloc}. @xref{Changing +Block Size}. + @item void *calloc (size_t @var{count}, size_t @var{eltsize}) Allocate a block of @var{count} * @var{eltsize} bytes using @code{malloc}, and set its contents to zero. @xref{Allocating Cleared diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 99125f2d23..428ca2ef68 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -422,6 +422,17 @@ extern void *calloc (size_t __nmemb, size_t __size) between objects pointed by the old and new pointers. */ extern void *realloc (void *__ptr, size_t __size) __THROW __attribute_warn_unused_result__; + +#ifdef __USE_GNU +/* Re-allocate the previously allocated block in PTR, making the new + block large enough for NMEMB elements of SIZE bytes each. */ +/* __attribute_malloc__ is not used, because if reallocarray returns + the same pointer that was passed to it, aliasing needs to be allowed + between objects pointed by the old and new pointers. */ +extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) + __THROW __attribute_warn_unused_result__; +#endif + /* Free a block allocated by `malloc', `realloc' or `calloc'. */ extern void free (void *__ptr) __THROW; diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 58d768c6bc..a494c3947d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2097,3 +2097,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 906050d2c3..2fc1a9bae7 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2008,6 +2008,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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 66112dd0a7..4465a62ff1 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -98,6 +98,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 3ddadd2a24..96126d9e6a 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1862,6 +1862,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 977ab90bc7..aae351bbff 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2020,6 +2020,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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 c7edb9a272..81ec65bec0 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1884,6 +1884,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 450be4e9c1..9db205b68e 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -99,6 +99,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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 9e016bd76e..ee59e950b6 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1976,6 +1976,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 1a455be0f5..feb869757c 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2097,3 +2097,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 8eb5e668b9..a5b1c42929 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1951,6 +1951,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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 416d9ac0ae..570a859aac 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1949,6 +1949,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index f4949e5a38..71008ad873 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1947,6 +1947,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index c7375aee3f..1a07d66caf 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1942,6 +1942,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 724a0e3a04..a62a41be62 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2138,3 +2138,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 2dc32b631c..f4f11dc625 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1980,6 +1980,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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 5658109ca2..2977569f2c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1985,6 +1985,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index c761221ffe..271d32e19b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2185,3 +2185,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 265c76914b..372ef67c27 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -99,6 +99,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index ed1b6bf26f..705ff851a9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1980,6 +1980,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 2e75d29e47..21fd2b5671 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1881,6 +1881,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index bd74c0cdab..313a71e589 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1866,6 +1866,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 5584838409..94a4fb2213 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1972,6 +1972,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index efedbe2874..6db5811c3f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1910,6 +1910,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index ffd988a33d..5d83926aac 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2104,3 +2104,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index f0c13ceea8..ce14ceb15f 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2104,3 +2104,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index ffd988a33d..5d83926aac 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2104,3 +2104,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index f57004c860..f69de7aa83 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1861,6 +1861,8 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray 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/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 05629e17e7..a330855308 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2104,3 +2104,5 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 reallocarray F -- cgit v1.2.3 From 52bd9381692fd23df859fd0e564af247b1571557 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 25 Apr 2017 16:43:27 -0300 Subject: posix: Implement preadv2 and pwritev2 This patch adds support of preadv2 and pwritev2 which are similar to preadv/pwritev but with an extra flag argument. As for preadv/pwritev both interfaces are added a non-standard GNU API. For default 'posix' implementation trying to emulate the Linux supported flags is troublesome: * We can not temporary change the file state of the O_DSYNC and O_SYNC flags to emulate RWF_{D}SYNC (attempts to change the state of using fcntl are silently ignored). * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal semantic not provided by any other flag (O_NONBLOCK for instance). So default sysdeps/posix implementations fails with EOPNOTSUPP for any non supported flag (which are none currently) calls generic preadv/pwritev. Basically this implementation supports only preadv2 called as preadv (with flags sets to 0). The Linux one uses the preadv2/pwritev2 syscall if defined, otherwise it call preadv/writev. Instead of using the previous __ASSUME_* to unconditionally issue the syscall (and avoid building the fallback routine), it call pread/write if the preadv2/pwritev2 syscalls fails. The idea is just avoid adding another __ASSUME_* and checking each architecture on every kernel bump and simplify code conditionals. Checked on x86_64-linux-gnu and on i686-linux-gnu and a check with run-built-tests=no on aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabihf, ia64-linux-gnu, m68k-linux-gnu, microblaze-linux-gnu, mips{64,64n32}-linux-gnu, nios2-linux-gnu, powerpc{64,64le}-linux-gnu, s390{x}-linux-gnu, sparc{64,v9}-linux-gnu, tile{gx,pro}-linux-gnu, and sh4-linux-gnu (all using gcc 6.3). * NEWS: Add note about pwritev2 and preadv2 inclusion. * misc/Makefile (routines): Add preadv2, preadv64v2, pwritev2, and pwritev64v2. (tests): Add tst-preadvwritev2 and tst-preadvwritev64v2. * misc/Versions (GLIBC_2.26): Add preadv2, preadv64v2, pwritev2, and pwritev64v2. * misc/preadv2.c: New file. * misc/preadv64v2.c: Likewise. * misc/pwritev2.c: Likewise. * misc/pwritev64v2.c: Likewise. * misc/tst-preadvwritev2.c: Likewise. * misc/tst-preadvwritev64v2.c: Likewise. * manual/llio.texi: Add preadv2 and pwritev2 documentation. * misc/sys/uio.h [__USE_GNU && !__USE_FILE_OFFSET64] (preadv2): New prototype. [__USE_GNU && !__USE_FILE_OFFSET64] (pwritev2): Likewise. [__USE_GNU && __USE_FILE_OFFSET64] (preadv64v2): Likewise. [__USE_GNU && __USE_FILE_OFFSET64] (pwritev64v2): Likewise. * misc/tst-preadvwritev-common.c (PREADV): Define if not defined. (PWRITEV): Likewise. (do_test_with_offset): Use PREADV and PWRITEV macros and check for ENOSYS. * nptl/tst-cancel4.c (tf_pwritev2): New test. (tf_preadv2): Likewise. (tf_fsync): Add tf_pwritev2 and tf_preadv2. * sysdeps/posix/preadv2.c: Likewise. * sysdeps/posix/preadv64v2.c: Likewise. * sysdeps/posix/pwritev2.c: Likewise. * sysdeps/posix/pwritev64v2.c: Likewise. * sysdeps/unix/sysv/linux/kernel-features.h: Add comment for syscall support in kernel. * sysdeps/unix/sysv/linux/preadv2.c: Likewise. * sysdeps/unix/sysv/linux/preadv64v2.c: Likewise. * sysdeps/unix/sysv/linux/pwritev2.c: Likewise. * sysdeps/unix/sysv/linux/pwritev64v2.c: Likewise. * sysdeps/unix/sysv/linux/preadv.c (preadv): Add libc_hidden_def. * sysdeps/unix/sysv/linux/preadv64.c (preadv64): Likewise. * sysdeps/unix/sysv/linux/pwritev.c (pwritev): Likewise. * sysdeps/unix/sysv/linux/pwritev64.c (pwritev64): Likewise. * sysdeps/unix/sysv/linux/bits/uio.h: Add supported preadv2/pwritev2 support flags on Linux. * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.26): Add preadv2, preadv64v2, pwritev2, pwritev64v2. * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/sysv/linux/tile/tilegx/tilegx32/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/sysv/linux/tile/tilegx/tilegx64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.26): Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.26): Likewise. --- ChangeLog | 93 ++++++++++++++++++ NEWS | 7 ++ include/sys/uio.h | 6 ++ manual/llio.texi | 109 +++++++++++++++++++++ misc/Makefile | 4 +- misc/Versions | 3 + misc/preadv2.c | 30 ++++++ misc/preadv64v2.c | 30 ++++++ misc/pwritev2.c | 30 ++++++ misc/pwritev64v2.c | 30 ++++++ misc/sys/uio.h | 41 ++++++++ misc/tst-preadvwritev-common.c | 19 +++- misc/tst-preadvwritev2.c | 31 ++++++ misc/tst-preadvwritev64v2.c | 33 +++++++ nptl/tst-cancel4.c | 71 ++++++++++++++ sysdeps/posix/preadv2.c | 38 +++++++ sysdeps/posix/preadv64v2.c | 37 +++++++ sysdeps/posix/pwritev2.c | 38 +++++++ sysdeps/posix/pwritev64v2.c | 38 +++++++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 + sysdeps/unix/sysv/linux/arm/libc.abilist | 4 + sysdeps/unix/sysv/linux/bits/uio.h | 6 ++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 + sysdeps/unix/sysv/linux/i386/libc.abilist | 4 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 + sysdeps/unix/sysv/linux/kernel-features.h | 5 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 4 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 4 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 4 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 4 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 4 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 4 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 4 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 4 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 4 + sysdeps/unix/sysv/linux/preadv.c | 2 + sysdeps/unix/sysv/linux/preadv2.c | 55 +++++++++++ sysdeps/unix/sysv/linux/preadv64.c | 2 + sysdeps/unix/sysv/linux/preadv64v2.c | 55 +++++++++++ sysdeps/unix/sysv/linux/pwrite64.c | 1 + sysdeps/unix/sysv/linux/pwritev.c | 2 + sysdeps/unix/sysv/linux/pwritev2.c | 51 ++++++++++ sysdeps/unix/sysv/linux/pwritev64.c | 2 + sysdeps/unix/sysv/linux/pwritev64v2.c | 55 +++++++++++ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 4 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 4 + sysdeps/unix/sysv/linux/sh/libc.abilist | 4 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 4 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 4 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 4 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 4 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 4 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 4 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 4 + 58 files changed, 1031 insertions(+), 5 deletions(-) create mode 100644 misc/preadv2.c create mode 100644 misc/preadv64v2.c create mode 100644 misc/pwritev2.c create mode 100644 misc/pwritev64v2.c create mode 100644 misc/tst-preadvwritev2.c create mode 100644 misc/tst-preadvwritev64v2.c create mode 100644 sysdeps/posix/preadv2.c create mode 100644 sysdeps/posix/preadv64v2.c create mode 100644 sysdeps/posix/pwritev2.c create mode 100644 sysdeps/posix/pwritev64v2.c create mode 100644 sysdeps/unix/sysv/linux/preadv2.c create mode 100644 sysdeps/unix/sysv/linux/preadv64v2.c create mode 100644 sysdeps/unix/sysv/linux/pwritev2.c create mode 100644 sysdeps/unix/sysv/linux/pwritev64v2.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 1dc6d5c8e3..c0d9d6d212 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,96 @@ +2017-05-31 Adhemerval Zanella + + * NEWS: Add note about pwritev2 and preadv2 inclusion. + * misc/Makefile (routines): Add preadv2, preadv64v2, pwritev2, and + pwritev64v2. + (tests): Add tst-preadvwritev2 and tst-preadvwritev64v2. + * misc/Versions (GLIBC_2.26): Add preadv2, preadv64v2, pwritev2, and + pwritev64v2. + * misc/preadv2.c: New file. + * misc/preadv64v2.c: Likewise. + * misc/pwritev2.c: Likewise. + * misc/pwritev64v2.c: Likewise. + * misc/tst-preadvwritev2.c: Likewise. + * misc/tst-preadvwritev64v2.c: Likewise. + * manual/llio.texi: Add preadv2 and pwritev2 documentation. + * misc/sys/uio.h [__USE_GNU && !__USE_FILE_OFFSET64] (preadv2): New + prototype. + [__USE_GNU && !__USE_FILE_OFFSET64] (pwritev2): Likewise. + [__USE_GNU && __USE_FILE_OFFSET64] (preadv64v2): Likewise. + [__USE_GNU && __USE_FILE_OFFSET64] (pwritev64v2): Likewise. + * misc/tst-preadvwritev-common.c (PREADV): Define if not defined. + (PWRITEV): Likewise. + (do_test_with_offset): Use PREADV and PWRITEV macros and check for + ENOSYS. + * nptl/tst-cancel4.c (tf_pwritev2): New test. + (tf_preadv2): Likewise. + (tf_fsync): Add tf_pwritev2 and tf_preadv2. + * sysdeps/posix/preadv2.c: Likewise. + * sysdeps/posix/preadv64v2.c: Likewise. + * sysdeps/posix/pwritev2.c: Likewise. + * sysdeps/posix/pwritev64v2.c: Likewise. + * sysdeps/unix/sysv/linux/kernel-features.h: Add comment for syscall + support in kernel. + * sysdeps/unix/sysv/linux/preadv2.c: Likewise. + * sysdeps/unix/sysv/linux/preadv64v2.c: Likewise. + * sysdeps/unix/sysv/linux/pwritev2.c: Likewise. + * sysdeps/unix/sysv/linux/pwritev64v2.c: Likewise. + * sysdeps/unix/sysv/linux/preadv.c (preadv): Add libc_hidden_def. + * sysdeps/unix/sysv/linux/preadv64.c (preadv64): Likewise. + * sysdeps/unix/sysv/linux/pwritev.c (pwritev): Likewise. + * sysdeps/unix/sysv/linux/pwritev64.c (pwritev64): Likewise. + * sysdeps/unix/sysv/linux/bits/uio.h: Add supported preadv2/pwritev2 + support flags on Linux. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.26): Add + preadv2, preadv64v2, pwritev2, pwritev64v2. + * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist + (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.26): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/sysv/linux/tile/tilegx/tilegx32/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/sysv/linux/tile/tilegx/tilegx64/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.26): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.26): + Likewise. + 2017-05-31 Andreas Schwab * nptl/tst-fork3.c: Include . diff --git a/NEWS b/NEWS index f92392a3f8..256d8f0e3f 100644 --- a/NEWS +++ b/NEWS @@ -70,6 +70,13 @@ Version 2.26 replacement with a check for integer overflow when calculating total allocation size. +* New preadv2 and pwritev2 has been added. They are Linux extensions to + preadv and pwritev with an additional flag argument where it is possible + to set high priority or use O_DSYNC or O_SYNC for a specific IO operation. + For complete support it requires Linux kernel version 4.6, otherwise a + compat implementation will be used (which refuses all flags and routes it + to preadv or pwritev). + Security related changes: * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, diff --git a/include/sys/uio.h b/include/sys/uio.h index f44ce182ba..20860bfd82 100644 --- a/include/sys/uio.h +++ b/include/sys/uio.h @@ -7,5 +7,11 @@ extern ssize_t __readv (int __fd, const struct iovec *__iovec, int __count); extern ssize_t __writev (int __fd, const struct iovec *__iovec, int __count); + +/* Used for p{read,write}{v64}v2 implementation. */ +libc_hidden_proto (preadv) +libc_hidden_proto (preadv64) +libc_hidden_proto (pwritev) +libc_hidden_proto (pwritev64) #endif #endif diff --git a/manual/llio.texi b/manual/llio.texi index 9fad8f4d6b..8d18509d45 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -764,6 +764,115 @@ When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a @code{pwritev} and so transparently replaces the 32 bit interface. @end deftypefun +@comment sys/uio.h +@comment GNU +@deftypefun ssize_t preadv2 (int @var{fd}, const struct iovec *@var{iov}, int @var{iovcnt}, off_t @var{offset}, int @var{flags}) +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation +@c is also MT-Safe since it calls preadv. + +This function is similar to the @code{preadv} function, with the difference +it adds an extra @var{flags} parameter of type @code{int}. The supported +@var{flags} are dependent of the underlying system. For Linux it supports: + +@vtable @code +@item RWF_HIPRI +High priority request. This adds a flag that tells the file system that +this is a high priority request for which it is worth to poll the hardware. +The flag is purely advisory and can be ignored if not supported. The +@var{fd} must be opened using @code{O_DIRECT}. + +@item RWF_DSYNC +Per-IO synchronization as if the file was opened with @code{O_DSYNC} flag. + +@item RWF_SYNC +Per-IO synchronization as if the file was opened with @code{O_SYNC} flag. +@end vtable + +When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the +@code{preadv2} function is in fact @code{preadv64v2} and the type +@code{off_t} has 64 bits, which makes it possible to handle files up to +@twoexp{63} bytes in length. + +The return value is a count of bytes (@emph{not} buffers) read, @math{0} +indicating end-of-file, or @math{-1} indicating an error. The possible +errors are the same as in @code{preadv} with the addition of: + +@table @code + +@item EOPNOTSUPP + +@c The default sysdeps/posix code will return it for any flags value +@c different than 0. +An unsupported @var{flags} was used. + +@end table + +@end deftypefun + +@comment unistd.h +@comment GNU +@deftypefun ssize_t preadv64v2 (int @var{fd}, const struct iovec *@var{iov}, int @var{iovcnt}, off64_t @var{offset}, int @var{flags}) +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation +@c is also MT-Safe since it calls preadv. + +This function is similar to the @code{preadv2} function with the difference +is that the @var{offset} parameter is of type @code{off64_t} instead of +@code{off_t}. It makes it possible on 32 bit machines to address +files larger than @twoexp{31} bytes and up to @twoexp{63} bytes. The +file descriptor @code{filedes} must be opened using @code{open64} since +otherwise the large offsets possible with @code{off64_t} will lead to +errors with a descriptor in small file mode. + +When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a +32 bit machine this function is actually available under the name +@code{preadv2} and so transparently replaces the 32 bit interface. +@end deftypefun + + +@comment sys/uio.h +@comment GNU +@deftypefun ssize_t pwritev2 (int @var{fd}, const struct iovec *@var{iov}, int @var{iovcnt}, off_t @var{offset}, int @var{flags}) +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation +@c is also MT-Safe since it calls pwritev. + +This function is similar to the @code{pwritev} function, with the difference +it adds an extra @var{flags} parameter of type @code{int}. The supported +@var{flags} are dependent of the underlying system and for Linux it supports +the same ones as for @code{preadv2}. + +When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the +@code{pwritev2} function is in fact @code{pwritev64v2} and the type +@code{off_t} has 64 bits, which makes it possible to handle files up to +@twoexp{63} bytes in length. + +The return value is a count of bytes (@emph{not} buffers) write, @math{0} +indicating end-of-file, or @math{-1} indicating an error. The possible +errors are the same as in @code{preadv2}. +@end deftypefun + +@comment unistd.h +@comment GNU +@deftypefun ssize_t pwritev64v2 (int @var{fd}, const struct iovec *@var{iov}, int @var{iovcnt}, off64_t @var{offset}, int @var{flags}) +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@c This is a syscall for Linux v4.6. The sysdeps/posix fallback emulation +@c is also MT-Safe since it calls pwritev. + +This function is similar to the @code{pwritev2} function with the difference +is that the @var{offset} parameter is of type @code{off64_t} instead of +@code{off_t}. It makes it possible on 32 bit machines to address +files larger than @twoexp{31} bytes and up to @twoexp{63} bytes. The +file descriptor @code{filedes} must be opened using @code{open64} since +otherwise the large offsets possible with @code{off64_t} will lead to +errors with a descriptor in small file mode. + +When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a +32 bit machine this function is actually available under the name +@code{pwritev2} and so transparently replaces the 32 bit interface. +@end deftypefun + @node File Position Primitive @section Setting the File Position of a Descriptor diff --git a/misc/Makefile b/misc/Makefile index 2db1fd8397..c393fa7cf2 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -39,6 +39,7 @@ headers := sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \ routines := brk sbrk sstk ioctl \ readv writev preadv preadv64 pwritev pwritev64 \ + preadv2 preadv64v2 pwritev2 pwritev64v2 \ setreuid setregid \ seteuid setegid \ getpagesize \ @@ -79,7 +80,8 @@ gpl2lgpl := error.c error.h tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \ tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240 \ - tst-preadvwritev tst-preadvwritev64 tst-makedev tst-empty + tst-preadvwritev tst-preadvwritev64 tst-makedev tst-empty \ + tst-preadvwritev2 tst-preadvwritev64v2 tests-internal := tst-atomic tst-atomic-long tests-static := tst-empty diff --git a/misc/Versions b/misc/Versions index f2c90fffda..bafda78a1f 100644 --- a/misc/Versions +++ b/misc/Versions @@ -155,6 +155,9 @@ libc { GLIBC_2.25 { gnu_dev_major; gnu_dev_minor; gnu_dev_makedev; } + GLIBC_2.26 { + preadv2; preadv64v2; pwritev2; pwritev64v2; + } GLIBC_PRIVATE { __madvise; __mktemp; diff --git a/misc/preadv2.c b/misc/preadv2.c new file mode 100644 index 0000000000..a62dcaa699 --- /dev/null +++ b/misc/preadv2.c @@ -0,0 +1,30 @@ +/* Default implementation of preadv2. + Copyright (C) 2017 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 + +/* Same as preadv but with an additional flags argument. */ +ssize_t +preadv2 (int fd, const struct iovec *vector, int count, off_t offset, + int flags) +{ + __set_errno (ENOSYS); + return -1; +} + +stub_warning (preadv2) diff --git a/misc/preadv64v2.c b/misc/preadv64v2.c new file mode 100644 index 0000000000..a802c2f1ab --- /dev/null +++ b/misc/preadv64v2.c @@ -0,0 +1,30 @@ +/* Default implementation of preadv2 (LFS version). + Copyright (C) 2017 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 + +/* Same as preadv64 but with an addional flag argument. */ +ssize_t +preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + int flags) +{ + __set_errno (ENOSYS); + return -1; +} + +stub_warning (preadv64v2) diff --git a/misc/pwritev2.c b/misc/pwritev2.c new file mode 100644 index 0000000000..b9e07272da --- /dev/null +++ b/misc/pwritev2.c @@ -0,0 +1,30 @@ +/* Default implementation of pwritev2. + Copyright (C) 2017 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 + +/* Same as pwritev but with an additional flags argument. */ +ssize_t +pwritev2 (int fd, const struct iovec *vector, int count, off_t offset, + int flags) +{ + __set_errno (ENOSYS); + return -1; +} + +stub_warning (pwritev2) diff --git a/misc/pwritev64v2.c b/misc/pwritev64v2.c new file mode 100644 index 0000000000..1f874f054c --- /dev/null +++ b/misc/pwritev64v2.c @@ -0,0 +1,30 @@ +/* Default implementation of pwritev2 (LFS version). + Copyright (C) 2017 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 + +/* Same as preadv64 but with an addional flag argument. */ +ssize_t +pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + int flags) +{ + __set_errno (ENOSYS); + return -1; +} + +stub_warning (pwritev64v2) diff --git a/misc/sys/uio.h b/misc/sys/uio.h index e80f0136c9..66c22f04f6 100644 --- a/misc/sys/uio.h +++ b/misc/sys/uio.h @@ -76,6 +76,7 @@ extern ssize_t preadv (int __fd, const struct iovec *__iovec, int __count, __THROW. */ extern ssize_t pwritev (int __fd, const struct iovec *__iovec, int __count, __off_t __offset) __wur; + # else # ifdef __REDIRECT extern ssize_t __REDIRECT (preadv, (int __fd, const struct iovec *__iovec, @@ -117,6 +118,46 @@ extern ssize_t pwritev64 (int __fd, const struct iovec *__iovec, int __count, # endif #endif /* Use misc. */ + +#ifdef __USE_GNU +# ifndef __USE_FILE_OFFSET64 +/* Same as preadv but with an additional flag argumenti defined at uio.h. */ +extern ssize_t preadv2 (int __fp, const struct iovec *__iovec, int __count, + __off_t __offset, int ___flags) __wur; + +/* Same as preadv but with an additional flag argument defined at uio.h. */ +extern ssize_t pwritev2 (int __fd, const struct iovec *__iodev, int __count, + __off_t __offset, int __flags) __wur; + +# else +# ifdef __REDIRECT +extern ssize_t __REDIRECT (pwritev2, (int __fd, const struct iovec *__iovec, + int __count, __off64_t __offset, + int __flags), + pwritev64v2) __wur; +extern ssize_t __REDIRECT (preadv2, (int __fd, const struct iovec *__iovec, + int __count, __off64_t __offset, + int __flags), + preadv64v2) __wur; +# else +# define preadv2 preadv64v2 +# define pwritev2 pwritev64v2 +# endif +# endif + +# ifdef __USE_LARGEFILE64 +/* Same as preadv but with an additional flag argumenti defined at uio.h. */ +extern ssize_t preadv64v2 (int __fp, const struct iovec *__iovec, + int __count, __off64_t __offset, + int ___flags) __wur; + +/* Same as preadv but with an additional flag argument defined at uio.h. */ +extern ssize_t pwritev64v2 (int __fd, const struct iovec *__iodev, + int __count, __off64_t __offset, + int __flags) __wur; +# endif +#endif /* Use GNU. */ + __END_DECLS #endif /* sys/uio.h */ diff --git a/misc/tst-preadvwritev-common.c b/misc/tst-preadvwritev-common.c index 5540dfb04d..676d4953ac 100644 --- a/misc/tst-preadvwritev-common.c +++ b/misc/tst-preadvwritev-common.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -39,6 +40,16 @@ do_prepare (int argc, char **argv) } #define PREPARE do_prepare +#ifndef PREADV +# define PREADV(__fd, __iov, __iovcnt, __offset) \ + preadv (__fd, __iov, __iovcnt, __offset) +#endif + +#ifndef PWRITEV +# define PWRITEV(__fd, __iov, __iovcnt, __offset) \ + pwritev (__fd, __iov, __iovcnt, __offset) +#endif + static int do_test_with_offset (off_t offset) { @@ -58,13 +69,13 @@ do_test_with_offset (off_t offset) iov[1].iov_base = buf2; iov[1].iov_len = sizeof buf2; - ret = pwritev (temp_fd, iov, 2, offset); + ret = PWRITEV (temp_fd, iov, 2, offset); if (ret == -1) FAIL_RET ("first pwritev returned -1"); if (ret != (sizeof buf1 + sizeof buf2)) FAIL_RET ("first pwritev returned an unexpected value"); - ret = pwritev (temp_fd, iov, 2, sizeof buf1 + sizeof buf2 + offset); + ret = PWRITEV (temp_fd, iov, 2, sizeof buf1 + sizeof buf2 + offset); if (ret == -1) FAIL_RET ("second pwritev returned -1"); if (ret != (sizeof buf1 + sizeof buf2)) @@ -82,7 +93,7 @@ do_test_with_offset (off_t offset) iov[1].iov_len = sizeof buf4; /* Now read two buffer with 32 and 64 bytes respectively. */ - ret = preadv (temp_fd, iov, 2, offset); + ret = PREADV (temp_fd, iov, 2, offset); if (ret == -1) FAIL_RET ("first preadv returned -1"); if (ret != (sizeof buf3 + sizeof buf4)) @@ -93,7 +104,7 @@ do_test_with_offset (off_t offset) if (memcmp (buf2, buf4, sizeof buf2) != 0) FAIL_RET ("second buffer from first preadv different than expected"); - ret = preadv (temp_fd, iov, 2, sizeof buf3 + sizeof buf4 + offset); + ret = PREADV (temp_fd, iov, 2, sizeof buf3 + sizeof buf4 + offset); if (ret == -1) FAIL_RET ("second preadv returned -1"); if (ret != (sizeof buf3 + sizeof buf4)) diff --git a/misc/tst-preadvwritev2.c b/misc/tst-preadvwritev2.c new file mode 100644 index 0000000000..cf36272dd3 --- /dev/null +++ b/misc/tst-preadvwritev2.c @@ -0,0 +1,31 @@ +/* Tests for preadv2 and pwritev2. + Copyright (C) 2016-2017 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 + . */ + +#define PREADV(__fd, __iov, __iovcnt, __offset) \ + preadv2 (__fd, __iov, __iovcnt, __offset, 0) + +#define PWRITEV(__fd, __iov, __iovcnt, __offset) \ + pwritev2 (__fd, __iov, __iovcnt, __offset, 0) + +#include "tst-preadvwritev-common.c" + +static int +do_test (void) +{ + return do_test_with_offset (0); +} diff --git a/misc/tst-preadvwritev64v2.c b/misc/tst-preadvwritev64v2.c new file mode 100644 index 0000000000..8d0c48ea78 --- /dev/null +++ b/misc/tst-preadvwritev64v2.c @@ -0,0 +1,33 @@ +/* Tests for preadv2 and pwritev2 (LFS version). + Copyright (C) 2017 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 + . */ + +#define _FILE_OFFSET_BITS 64 + +#define PREADV(__fd, __iov, __iovcnt, __offset) \ + preadv2 (__fd, __iov, __iovcnt, __offset, 0) + +#define PWRITEV(__fd, __iov, __iovcnt, __offset) \ + pwritev2 (__fd, __iov, __iovcnt, __offset, 0) + +#include "tst-preadvwritev-common.c" + +static int +do_test (void) +{ + return do_test_with_offset (0); +} diff --git a/nptl/tst-cancel4.c b/nptl/tst-cancel4.c index e66961f9a8..7a560a1dda 100644 --- a/nptl/tst-cancel4.c +++ b/nptl/tst-cancel4.c @@ -1078,6 +1078,75 @@ tf_pwritev (void *arg) FAIL_EXIT1 ("pwritev returns with %zd", s); } +static void * +tf_pwritev2 (void *arg) +{ + int fd; + + if (arg == NULL) + /* XXX If somebody can provide a portable test case in which pwritev2 + blocks we can enable this test to run in both rounds. */ + abort (); + + errno = 0; + + char fname[] = "/tmp/tst-cancel4-fd-XXXXXX"; + tempfd = fd = mkstemp (fname); + if (fd == -1) + FAIL_EXIT1 ("mkstemp: %m"); + unlink (fname); + + xpthread_barrier_wait (&b2); + + xpthread_barrier_wait (&b2); + + ssize_t s; + pthread_cleanup_push (cl, NULL); + + char buf[WRITE_BUFFER_SIZE]; + memset (buf, '\0', sizeof (buf)); + struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } }; + s = pwritev2 (fd, iov, 1, 0, 0); + + pthread_cleanup_pop (0); + + FAIL_EXIT1 ("pwritev2 returns with %zd", s); +} + +static void * +tf_preadv2 (void *arg) +{ + int fd; + + if (arg == NULL) + /* XXX If somebody can provide a portable test case in which preadv2 + blocks we can enable this test to run in both rounds. */ + abort (); + + errno = 0; + + char fname[] = "/tmp/tst-cancel4-fd-XXXXXX"; + tempfd = fd = mkstemp (fname); + if (fd == -1) + FAIL_EXIT1 ("mkstemp failed: %m"); + unlink (fname); + + xpthread_barrier_wait (&b2); + + xpthread_barrier_wait (&b2); + + ssize_t s; + pthread_cleanup_push (cl, NULL); + + char buf[100]; + struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } }; + s = preadv2 (fd, iov, 1, 0, 0); + + pthread_cleanup_pop (0); + + FAIL_EXIT1 ("preadv2 returns with %zd", s); +} + static void * tf_fsync (void *arg) { @@ -1473,7 +1542,9 @@ struct cancel_tests tests[] = ADD_TEST (recvfrom, 2, 0), ADD_TEST (recvmsg, 2, 0), ADD_TEST (preadv, 2, 1), + ADD_TEST (preadv2, 2, 1), ADD_TEST (pwritev, 2, 1), + ADD_TEST (pwritev2, 2, 1), ADD_TEST (open, 2, 1), ADD_TEST (close, 2, 1), ADD_TEST (pread, 2, 1), diff --git a/sysdeps/posix/preadv2.c b/sysdeps/posix/preadv2.c new file mode 100644 index 0000000000..2a7cf11e27 --- /dev/null +++ b/sysdeps/posix/preadv2.c @@ -0,0 +1,38 @@ +/* Generic version of preadv2. + Copyright (C) 2017 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 + +#ifndef __OFF_T_MATCHES_OFF64_T + +/* Since we define no flags for preadv2 just route to preadv. */ +ssize_t +preadv2 (int fd, const struct iovec *vector, int count, OFF_T offset, + int flags) +{ + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + + return preadv (fd, vector, count, offset); +} + +#endif diff --git a/sysdeps/posix/preadv64v2.c b/sysdeps/posix/preadv64v2.c new file mode 100644 index 0000000000..e084f3f9e1 --- /dev/null +++ b/sysdeps/posix/preadv64v2.c @@ -0,0 +1,37 @@ +/* Generic version of preadv2. + Copyright (C) 2017 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 + +ssize_t +preadv64v2 (int fd, const struct iovec *vector, int count, OFF_T offset, + int flags) +{ + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + + return preadv64 (fd, vector, count, offset); +} + +#ifdef __OFF_T_MATCHES_OFF64_T +strong_alias (preadv64v2, preadv2) +#endif diff --git a/sysdeps/posix/pwritev2.c b/sysdeps/posix/pwritev2.c new file mode 100644 index 0000000000..5b7650c4fc --- /dev/null +++ b/sysdeps/posix/pwritev2.c @@ -0,0 +1,38 @@ +/* Generic version of pwritev2. + Copyright (C) 2017 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 + +#ifndef __OFF_T_MATCHES_OFF64_T + +/* Since we define no flags for pwritev2 just route to pwritev. */ +ssize_t +pwritev2 (int fd, const struct iovec *vector, int count, OFF_T offset, + int flags) +{ + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + + return pwritev (fd, vector, count, offset); +} + +#endif diff --git a/sysdeps/posix/pwritev64v2.c b/sysdeps/posix/pwritev64v2.c new file mode 100644 index 0000000000..0f2f9ef863 --- /dev/null +++ b/sysdeps/posix/pwritev64v2.c @@ -0,0 +1,38 @@ +/* Generic version of pwritev2. + Copyright (C) 2017 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 + +/* Since we define no flags for pwritev2 just route to pwritev. */ +ssize_t +pwritev64v2 (int fd, const struct iovec *vector, int count, OFF_T offset, + int flags) +{ + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + + return pwritev64 (fd, vector, count, offset); +} + +#ifdef __OFF_T_MATCHES_OFF64_T +strong_alias (pwritev64v2, pwritev2) +#endif diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index a494c3947d..81e4fe9d9c 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2098,4 +2098,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 2fc1a9bae7..fab73317ca 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2009,6 +2009,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 4465a62ff1..d2a206a8df 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -99,6 +99,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F diff --git a/sysdeps/unix/sysv/linux/bits/uio.h b/sysdeps/unix/sysv/linux/bits/uio.h index 1583f0455b..d5701f8171 100644 --- a/sysdeps/unix/sysv/linux/bits/uio.h +++ b/sysdeps/unix/sysv/linux/bits/uio.h @@ -69,4 +69,10 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, __END_DECLS # endif + +/* Flags for preadv2/pwritev2: */ +#define RWF_HIPRI 0x00000001 /* High priority request. */ +#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */ +#define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */ + #endif diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 96126d9e6a..24bb7300d3 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1863,6 +1863,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index aae351bbff..2ff1998ac9 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2021,6 +2021,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 81ec65bec0..39ccf2b5ee 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1885,6 +1885,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 8961e4dd78..9495db4fef 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -97,3 +97,8 @@ /* Support for SysV IPC through wired syscalls. All supported architectures either support ipc syscall and/or all the ipc correspondent syscalls. */ #define __ASSUME_DIRECT_SYSVIPC_SYSCALLS 1 + +/* Support for p{read,write}v2 was added in 4.6. However Linux default + implementation does not assume the __ASSUME_* and instead use a fallback + implementation based on p{read,write}v and returning an error for + non supported flags. */ diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 9db205b68e..b594ebd7c6 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -100,6 +100,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index ee59e950b6..a36739d41c 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1977,6 +1977,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index feb869757c..16aa25485f 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2098,4 +2098,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index a5b1c42929..907ab331f2 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1952,6 +1952,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_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 570a859aac..36ee235d71 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1950,6 +1950,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 71008ad873..783aa73ab7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1948,6 +1948,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 1a07d66caf..e1275dfe28 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1943,6 +1943,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index a62a41be62..be252287d1 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2139,4 +2139,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index f4f11dc625..e213895c71 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1981,6 +1981,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_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 2977569f2c..d25aefd1ae 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1986,6 +1986,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 271d32e19b..443d89f663 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2186,4 +2186,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 372ef67c27..5eb056baf5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -100,6 +100,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _Exit F diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c index 7d971cc7b3..ecabc8c9c6 100644 --- a/sysdeps/unix/sysv/linux/preadv.c +++ b/sysdeps/unix/sysv/linux/preadv.c @@ -50,4 +50,6 @@ preadv (int fd, const struct iovec *vector, int count, off_t offset) # define OFF_T off_t # include # endif /* __ASSUME_PREADV */ + +libc_hidden_def (preadv) #endif diff --git a/sysdeps/unix/sysv/linux/preadv2.c b/sysdeps/unix/sysv/linux/preadv2.c new file mode 100644 index 0000000000..11fe85eaa8 --- /dev/null +++ b/sysdeps/unix/sysv/linux/preadv2.c @@ -0,0 +1,55 @@ +/* Linux implementation of preadv2. + Copyright (C) 2017 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 + +#ifndef __OFF_T_MATCHES_OFF64_T + +# if !defined (__NR_preadv2) && defined (__NR_pread64v2) +# define __NR_preadv2 __NR_pread64v2 +# endif + +ssize_t +preadv2 (int fd, const struct iovec *vector, int count, off_t offset, + int flags) +{ +# ifdef __NR_preadv2 + ssize_t result = SYSCALL_CANCEL (preadv2, fd, vector, count, + LO_HI_LONG (offset), flags); + if (result >= 0 || errno != ENOSYS) + return result; +# endif + /* Trying to emulate the preadv2 syscall flags is troublesome: + + * We can not temporary change the file state of the O_DSYNC and O_SYNC + flags to emulate RWF_{D}SYNC (attempts to change the state of using + fcntl are silently ignored). + + * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal + semantic not provided by any other flag (O_NONBLOCK for instance). */ + + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + return preadv (fd, vector, count, offset); +} + +#endif diff --git a/sysdeps/unix/sysv/linux/preadv64.c b/sysdeps/unix/sysv/linux/preadv64.c index 66daa74ded..c96b2142e3 100644 --- a/sysdeps/unix/sysv/linux/preadv64.c +++ b/sysdeps/unix/sysv/linux/preadv64.c @@ -48,7 +48,9 @@ preadv64 (int fd, const struct iovec *vector, int count, off64_t offset) # define OFF_T off64_t # include #endif +libc_hidden_def (preadv64) #ifdef __OFF_T_MATCHES_OFF64_T strong_alias (preadv64, preadv) +libc_hidden_def (preadv) #endif diff --git a/sysdeps/unix/sysv/linux/preadv64v2.c b/sysdeps/unix/sysv/linux/preadv64v2.c new file mode 100644 index 0000000000..9d7f8c9893 --- /dev/null +++ b/sysdeps/unix/sysv/linux/preadv64v2.c @@ -0,0 +1,55 @@ +/* Linux implementation of preadv2 (LFS version). + Copyright (C) 2017 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 + +#if !defined(__NR_preadv64v2) && defined(__NR_preadv2) +# define __NR_preadv64v2 __NR_preadv2 +#endif + +ssize_t +preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + int flags) +{ +#ifdef __NR_preadv64v2 + ssize_t result = SYSCALL_CANCEL (preadv64v2, fd, vector, count, + LO_HI_LONG (offset), flags); + if (result >= 0 || errno != ENOSYS) + return result; +#endif + /* Trying to emulate the preadv2 syscall flags is troublesome: + + * We can not temporary change the file state of the O_DSYNC and O_SYNC + flags to emulate RWF_{D}SYNC (attempts to change the state of using + fcntl are silently ignored). + + * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal + semantic not provided by any other flag (O_NONBLOCK for instance). */ + + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + return preadv64 (fd, vector, count, offset); +} + +#ifdef __OFF_T_MATCHES_OFF64_T +strong_alias (preadv64v2, preadv2) +#endif diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c index 57e5d20328..71959c0de2 100644 --- a/sysdeps/unix/sysv/linux/pwrite64.c +++ b/sysdeps/unix/sysv/linux/pwrite64.c @@ -28,6 +28,7 @@ __libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset) { return SYSCALL_CANCEL (pwrite64, fd, buf, count, SYSCALL_LL64_PRW (offset)); } + weak_alias (__libc_pwrite64, __pwrite64) libc_hidden_weak (__pwrite64) weak_alias (__libc_pwrite64, pwrite64) diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c index ce02996a0b..7545cb3e1e 100644 --- a/sysdeps/unix/sysv/linux/pwritev.c +++ b/sysdeps/unix/sysv/linux/pwritev.c @@ -50,4 +50,6 @@ pwritev (int fd, const struct iovec *vector, int count, off_t offset) # define OFF_T off_t # include # endif /* __ASSUME_PREADV */ + +libc_hidden_def (pwritev) #endif diff --git a/sysdeps/unix/sysv/linux/pwritev2.c b/sysdeps/unix/sysv/linux/pwritev2.c new file mode 100644 index 0000000000..72f0471f96 --- /dev/null +++ b/sysdeps/unix/sysv/linux/pwritev2.c @@ -0,0 +1,51 @@ +/* Linux implementation of pwritev2. + Copyright (C) 2017 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 + +#ifndef __OFF_T_MATCHES_OFF64_T + +ssize_t +pwritev2 (int fd, const struct iovec *vector, int count, off_t offset, + int flags) +{ +# ifdef __NR_pwritev2 + ssize_t result = SYSCALL_CANCEL (pwritev2, fd, vector, count, + LO_HI_LONG (offset), flags); + if (result >= 0 || errno != ENOSYS) + return result; +# endif + /* Trying to emulate the pwritev2 syscall flags is troublesome: + + * We can not temporary change the file state of the O_DSYNC and O_SYNC + flags to emulate RWF_{D}SYNC (attempts to change the state of using + fcntl are silently ignored). + + * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal + semantic not provided by any other flag (O_NONBLOCK for instance). */ + + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + return pwritev (fd, vector, count, offset); +} + +#endif diff --git a/sysdeps/unix/sysv/linux/pwritev64.c b/sysdeps/unix/sysv/linux/pwritev64.c index 45fb90b0d7..9dc4e55f96 100644 --- a/sysdeps/unix/sysv/linux/pwritev64.c +++ b/sysdeps/unix/sysv/linux/pwritev64.c @@ -48,7 +48,9 @@ pwritev64 (int fd, const struct iovec *vector, int count, off64_t offset) # define OFF_T off64_t # include #endif +libc_hidden_def (pwritev64) #ifdef __OFF_T_MATCHES_OFF64_T strong_alias (pwritev64, pwritev) +libc_hidden_def (pwritev) #endif diff --git a/sysdeps/unix/sysv/linux/pwritev64v2.c b/sysdeps/unix/sysv/linux/pwritev64v2.c new file mode 100644 index 0000000000..def9a0bc57 --- /dev/null +++ b/sysdeps/unix/sysv/linux/pwritev64v2.c @@ -0,0 +1,55 @@ +/* Linux implementation of pwritev2 (LFS version). + Copyright (C) 2017 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 + +#if !defined(__NR_pwritev64v2) && defined(__NR_pwritev2) +# define __NR_pwritev64v2 __NR_pwritev2 +#endif + +ssize_t +pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset, + int flags) +{ +#ifdef __NR_pwritev64v2 + ssize_t result = SYSCALL_CANCEL (pwritev64v2, fd, vector, count, + LO_HI_LONG (offset), flags); + if (result >= 0 || errno != ENOSYS) + return result; +#endif + /* Trying to emulate the pwritev2 syscall flags is troublesome: + + * We can not temporary change the file state of the O_DSYNC and O_SYNC + flags to emulate RWF_{D}SYNC (attempts to change the state of using + fcntl are silently ignored). + + * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal + semantic not provided by any other flag (O_NONBLOCK for instance). */ + + if (flags != 0) + { + __set_errno (EOPNOTSUPP); + return -1; + } + return pwritev64 (fd, vector, count, offset); +} + +#ifdef __OFF_T_MATCHES_OFF64_T +strong_alias (pwritev64v2, pwritev2) +#endif diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 705ff851a9..63d33e8b37 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1981,6 +1981,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 21fd2b5671..b1b2b29c94 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1882,6 +1882,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 313a71e589..f3a70a0f6f 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1867,6 +1867,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 94a4fb2213..8c4c2e502c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1973,6 +1973,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 6db5811c3f..1653164d9e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1911,6 +1911,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 5d83926aac..41647d4610 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2105,4 +2105,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index ce14ceb15f..1088923e59 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2105,4 +2105,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 5d83926aac..41647d4610 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2105,4 +2105,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index f69de7aa83..513524d932 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1862,6 +1862,10 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index a330855308..0c557e9f43 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2105,4 +2105,8 @@ GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -- cgit v1.2.3 From ccf970c7a77e86f4f5ef8ecc5e637114b1c0136a Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Fri, 15 Sep 2017 11:31:13 -0300 Subject: posix: Add compat glob symbol to not follow dangling symbols This patch follows commit 5554304f0 (posix: Allow glob to match dangling symlinks [BZ #866]) by adding a compat symbol that follow previous semantic of not following dangling symlinks and thus avoiding call gl_lstat with GLOB_ALTDIRFUNC. It avoids failure with old binaries that not set the alternate function pointer for lstat (GNUmake for instance). The following scenario, for instance, fails with current GNUmake because glibc will access unitialized memory when calling gl_lstat: $ cat src/t/t.c int main () { return 0; } $ cat Makefile SRC = $(wildcard src/*/t.c) OBJ = $(patsubst src/%.c, obj/%.o, $(SRC)) prog: $(OBJ) $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) $(OBJ) -o prog obj/%.o: src/%.c $(CC) $(CFLAGS) -c $< -o $@ $ make This works as expected with the patch applied. Since it is for generic ABI, default compat symbols are added with override for Linux due LFS. Now we have two compat symbols for glob on Linux: 1. sysdeps/unix/sysv/linux/oldglob.c which implements glob64 with the old dirent layout. For this implementation I also set it to not follow dangling symlinks (which is the safest path). 2. sysdeps/unix/sysv/linux/glob{64}-lstat-compat.c which implements the compat symbol for dangling symlinks. As for generic glob, the implementation uses XSTAT_IS_XSTAT64 to define whether both __glob_lstat_compat and __glob64_lstat_compat should be different implementations. For archictures that define XSTAT_IS_XSTAT64, __glob_lstat_compat is aliased to __glob64_lstat_compat. 3. sysdeps/unix/sysv/linux/alpha/oldglob.c with a different glob_t layout. As for 1. this patch changes it to not follow dangling symlinks. The patch also bumps _GNU_GLOB_INTERFACE_VERSION to 2 to advertise the new semantic. On GNUmake, for instance, it will force to it use its internal glob implementation instead and avoiding triggering the same failure on builds against newer GLIBCs. Checked on x86_64-linux-gnu and i686-linux-gnu. I also checked with a build against the major ABIs required to check for the abilist. The changes should also work on gnulib (I run gnulib-tool.py check glob and it shown no regressions). [BZ #22183] * include/gnu-versions.h (_GNU_GLOB_INTERFACE_VERSION): Increase version to 2. * posix/Makefile (routines): Add glob-lstat-compat and glob64-lstat-compat. * posix/Versions (GLIBC_2.27, glob, glob64): Add symbol version. * posix/glob-lstat-compat.c: New file. * posix/glob64-lstat-compat.c: Likewise. * posix/tst-glob_lstat_compat.c: Likewise. * sysdeps/unix/sysv/linux/glob-lstat-compat.c: Likewise. * sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c: Likewise. * sysdeps/unix/sysv/linux/glob64-lstat-compat.c: Likewise. * sysdeps/unix/sysv/linux/alpha/glob.c: Remove file. * posix/glob.c (glob_lstat): New function. (glob): Rename to __glob and add versioned symbol to 2.27. (glob_in_dir): Use glob_lstat. * posix/glob64.c (glob64): Add GLOB_ATTRIBUTE. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/glob.c (glob): Add versioned symbol for 2.27. * sysdeps/unix/sysv/linux/glob64.c (glob64): Likewise. * sysdeps/unix/sysv/linux/oldglob.c (GLOB_NO_LSTAT): Define. * sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob): Do not use gl_lstat on glob call. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add GLIBC_2.27 glob and glob64 symbols. * sysdeps/unix/sysv/linux/alpha/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/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/linux/powerpc/powerpc32/nofpu/libc.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/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. --- ChangeLog | 58 +++++ include/gnu-versions.h | 2 +- posix/Makefile | 4 +- posix/Versions | 3 + posix/glob-lstat-compat.c | 36 +++ posix/glob.c | 67 ++++-- posix/glob64-lstat-compat.c | 36 +++ posix/glob64.c | 5 + posix/tst-glob_lstat_compat.c | 263 +++++++++++++++++++++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 3 + sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c | 2 + sysdeps/unix/sysv/linux/alpha/glob.c | 47 ---- sysdeps/unix/sysv/linux/alpha/libc.abilist | 3 + sysdeps/unix/sysv/linux/alpha/oldglob.c | 6 +- sysdeps/unix/sysv/linux/arm/libc.abilist | 3 + sysdeps/unix/sysv/linux/glob-lstat-compat.c | 47 ++++ sysdeps/unix/sysv/linux/glob.c | 5 +- sysdeps/unix/sysv/linux/glob64-lstat-compat.c | 56 +++++ sysdeps/unix/sysv/linux/glob64.c | 7 +- sysdeps/unix/sysv/linux/hppa/libc.abilist | 3 + sysdeps/unix/sysv/linux/i386/libc.abilist | 3 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 3 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 3 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 3 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 3 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 3 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 3 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 3 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 3 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 3 + sysdeps/unix/sysv/linux/oldglob.c | 5 +- .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 3 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 3 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 3 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 3 + .../sysv/linux/s390/s390-32/glob64-lstat-compat.c | 2 + sysdeps/unix/sysv/linux/s390/s390-32/glob64.c | 2 - sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 3 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 3 + sysdeps/unix/sysv/linux/sh/libc.abilist | 3 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 3 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 3 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 3 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 3 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 3 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 3 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 3 + 47 files changed, 654 insertions(+), 83 deletions(-) create mode 100644 posix/glob-lstat-compat.c create mode 100644 posix/glob64-lstat-compat.c create mode 100644 posix/tst-glob_lstat_compat.c create mode 100644 sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c delete mode 100644 sysdeps/unix/sysv/linux/alpha/glob.c create mode 100644 sysdeps/unix/sysv/linux/glob-lstat-compat.c create mode 100644 sysdeps/unix/sysv/linux/glob64-lstat-compat.c create mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/glob64.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index c2cebf1c91..416d673523 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,61 @@ +2017-09-25 Adhemerval Zanella + + [BZ #22183] + * include/gnu-versions.h (_GNU_GLOB_INTERFACE_VERSION): Increase + version to 2. + * posix/Makefile (routines): Add glob-lstat-compat and + glob64-lstat-compat. + * posix/Versions (GLIBC_2.27, glob, glob64): Add symbol version. + * posix/glob-lstat-compat.c: New file. + * posix/glob64-lstat-compat.c: Likewise. + * posix/tst-glob_lstat_compat.c: Likewise. + * sysdeps/unix/sysv/linux/glob-lstat-compat.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c: Likewise. + * sysdeps/unix/sysv/linux/glob64-lstat-compat.c: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c: + Likewise. + * sysdeps/unix/sysv/linux/alpha/glob.c: Remove file. + * sysdeps/unix/sysv/linux/s390/s390-32/glob64.c: Likewise. + * posix/glob.c (glob_lstat): New function. + (glob): Rename to __glob and add versioned symbol to 2.27. + (glob_in_dir): Use glob_lstat. + * posix/glob64.c (glob64): Add GLOB_ATTRIBUTE. + * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/glob.c (glob): Add versioned symbol for + 2.27. + * sysdeps/unix/sysv/linux/glob64.c (glob64): Likewise. + * sysdeps/unix/sysv/linux/oldglob.c (GLOB_NO_LSTAT): Define. + * sysdeps/unix/sysv/linux/alpha/oldglob.c (__old_glob): Do not use + gl_lstat on glob call. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Add GLIBC_2.27 glob + and glob64 symbols. + * sysdeps/unix/sysv/linux/alpha/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/nios2/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: + Likewise. + * sysdeps/unix/linux/powerpc/powerpc32/nofpu/libc.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/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. + 2017-09-25 H.J. Lu * configure.ac (AS): Require binutils 2.25 or later. diff --git a/include/gnu-versions.h b/include/gnu-versions.h index 40f2bfcc79..ce2625440b 100644 --- a/include/gnu-versions.h +++ b/include/gnu-versions.h @@ -45,7 +45,7 @@ #define _GNU_OBSTACK_INTERFACE_VERSION 1 /* vs malloc/obstack.c */ #define _GNU_REGEX_INTERFACE_VERSION 1 /* vs posix/regex.c */ -#define _GNU_GLOB_INTERFACE_VERSION 1 /* vs posix/glob.c */ +#define _GNU_GLOB_INTERFACE_VERSION 2 /* vs posix/glob.c */ #define _GNU_GETOPT_INTERFACE_VERSION 2 /* vs posix/getopt.c and posix/getopt1.c */ diff --git a/posix/Makefile b/posix/Makefile index 7f77b07dfa..b5894425ae 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -46,6 +46,7 @@ routines := \ getresuid getresgid setresuid setresgid \ pathconf sysconf fpathconf \ glob glob64 globfree globfree64 glob_pattern_p fnmatch regex \ + glob-lstat-compat glob64-lstat-compat \ confstr \ getopt getopt1 \ sched_setp sched_getp sched_sets sched_gets sched_yield sched_primax \ @@ -95,7 +96,8 @@ tests := test-errno tstgetopt testfnm runtests runptests \ tst-posix_fadvise tst-posix_fadvise64 \ tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve tests-internal := bug-regex5 bug-regex20 bug-regex33 \ - tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 + tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \ + tst-glob_lstat_compat xtests := bug-ga2 ifeq (yes,$(build-shared)) test-srcs := globtest diff --git a/posix/Versions b/posix/Versions index bb481a505b..65e96870e1 100644 --- a/posix/Versions +++ b/posix/Versions @@ -134,6 +134,9 @@ libc { GLIBC_2.11 { execvpe; } + GLIBC_2.27 { + glob; glob64; + } GLIBC_PRIVATE { __libc_fork; __libc_pread; __libc_pwrite; } diff --git a/posix/glob-lstat-compat.c b/posix/glob-lstat-compat.c new file mode 100644 index 0000000000..e30d34351d --- /dev/null +++ b/posix/glob-lstat-compat.c @@ -0,0 +1,36 @@ +/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC. + Copyright (C) 2017 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 + +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_27) + +# include + +# define __glob(pattern, flags, errfunc, pglob) \ + __glob_lstat_compat (pattern, flags, errfunc, pglob) + +# define GLOB_ATTRIBUTE attribute_compat_text_section + +/* Avoid calling gl_lstat with GLOB_ALTDIRFUNC. */ +# define GLOB_NO_LSTAT + +# include + +compat_symbol (libc, __glob_lstat_compat, glob, GLIBC_2_0); +#endif diff --git a/posix/glob.c b/posix/glob.c index c699177d19..98122dac88 100644 --- a/posix/glob.c +++ b/posix/glob.c @@ -57,7 +57,9 @@ # endif # define struct_stat64 struct stat64 # define FLEXIBLE_ARRAY_MEMBER +# include #else /* !_LIBC */ +# define __glob glob # define __getlogin_r(buf, len) getlogin_r (buf, len) # define __lstat64(fname, buf) lstat (fname, buf) # define __stat64(fname, buf) stat (fname, buf) @@ -179,6 +181,29 @@ convert_dirent64 (const struct dirent64 *source) ((void) (buf), (void) (len), (void) (newlen), (void) (avar), (void *) 0) #endif +static int +glob_lstat (glob_t *pglob, int flags, const char *fullname) +{ +/* Use on glob-lstat-compat.c to provide a compat symbol which does not + use lstat / gl_lstat. */ +#ifdef GLOB_NO_LSTAT +# define GL_LSTAT gl_stat +# define LSTAT64 __stat64 +#else +# define GL_LSTAT gl_lstat +# define LSTAT64 __lstat64 +#endif + + union + { + struct stat st; + struct_stat64 st64; + } ust; + return (__glibc_unlikely (flags & GLOB_ALTDIRFUNC) + ? pglob->GL_LSTAT (fullname, &ust.st) + : LSTAT64 (fullname, &ust.st64)); +} + /* Set *R = A + B. Return true if the answer is mathematically incorrect due to overflow; in this case, *R is the low order bits of the correct answer. */ @@ -248,6 +273,9 @@ next_brace_sub (const char *cp, int flags) return *cp != '\0' ? cp : NULL; } +#ifndef GLOB_ATTRIBUTE +# define GLOB_ATTRIBUTE +#endif /* Do glob searching for PATTERN, placing results in PGLOB. The bits defined above may be set in FLAGS. @@ -258,11 +286,9 @@ next_brace_sub (const char *cp, int flags) If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. Otherwise, 'glob' returns zero. */ int -#ifdef GLOB_ATTRIBUTE GLOB_ATTRIBUTE -#endif -glob (const char *pattern, int flags, int (*errfunc) (const char *, int), - glob_t *pglob) +__glob (const char *pattern, int flags, int (*errfunc) (const char *, int), + glob_t *pglob) { const char *filename; char *dirname = NULL; @@ -406,9 +432,10 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), /* Construct the new glob expression. */ mempcpy (mempcpy (alt_start, p, next - p), rest, rest_len); - result = glob (onealt, - ((flags & ~(GLOB_NOCHECK | GLOB_NOMAGIC)) - | GLOB_APPEND), errfunc, pglob); + result = __glob (onealt, + ((flags & ~(GLOB_NOCHECK | GLOB_NOMAGIC)) + | GLOB_APPEND), + errfunc, pglob); /* If we got an error, return it. */ if (result && result != GLOB_NOMATCH) @@ -557,7 +584,7 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC); } } - int val = glob (dirname, flags | GLOB_MARK, errfunc, pglob); + int val = __glob (dirname, flags | GLOB_MARK, errfunc, pglob); if (val == 0) pglob->gl_flags = ((pglob->gl_flags & ~GLOB_MARK) | (flags & GLOB_MARK)); @@ -931,11 +958,10 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), dirs.gl_lstat = pglob->gl_lstat; } - status = glob (dirname, - ((flags & (GLOB_ERR | GLOB_NOESCAPE - | GLOB_ALTDIRFUNC)) - | GLOB_NOSORT | GLOB_ONLYDIR), - errfunc, &dirs); + status = __glob (dirname, + ((flags & (GLOB_ERR | GLOB_NOESCAPE | GLOB_ALTDIRFUNC)) + | GLOB_NOSORT | GLOB_ONLYDIR), + errfunc, &dirs); if (status != 0) { if ((flags & GLOB_NOCHECK) == 0 || status != GLOB_NOMATCH) @@ -1133,8 +1159,9 @@ glob (const char *pattern, int flags, int (*errfunc) (const char *, int), return retval; } -#if defined _LIBC && !defined glob -libc_hidden_def (glob) +#if defined _LIBC && !defined __glob +versioned_symbol (libc, __glob, glob, GLIBC_2_27); +libc_hidden_ver (__glob, glob) #endif @@ -1250,11 +1277,6 @@ glob_in_dir (const char *pattern, const char *directory, int flags, } else if (meta == GLOBPAT_NONE) { - union - { - struct stat st; - struct_stat64 st64; - } ust; size_t patlen = strlen (pattern); size_t fullsize; bool alloca_fullname @@ -1273,10 +1295,7 @@ glob_in_dir (const char *pattern, const char *directory, int flags, mempcpy (mempcpy (mempcpy (fullname, directory, dirlen), "/", 1), pattern, patlen + 1); - if (((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0) - ? (*pglob->gl_lstat) (fullname, &ust.st) - : __lstat64 (fullname, &ust.st64)) - == 0) + if (glob_lstat (pglob, flags, fullname) == 0 || errno == EOVERFLOW) /* We found this file to be existing. Now tell the rest of the function to copy this name into the result. */ diff --git a/posix/glob64-lstat-compat.c b/posix/glob64-lstat-compat.c new file mode 100644 index 0000000000..1fabf8667e --- /dev/null +++ b/posix/glob64-lstat-compat.c @@ -0,0 +1,36 @@ +/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC. + Copyright (C) 2017 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 + +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_27) + +# include + +# define glob(pattern, flags, errfunc, pglob) \ + __glob64_lstat_compat (pattern, flags, errfunc, pglob) + +# define GLOB_ATTRIBUTE attribute_compat_text_section + +/* Avoid calling gl_lstat with GLOB_ALTDIRFUNC. */ +# define GLOB_NO_LSTAT + +# include + +compat_symbol (libc, __glob64_lstat_compat, glob64, GLIBC_2_0); +#endif diff --git a/posix/glob64.c b/posix/glob64.c index a515a1c12f..ee7ef841f1 100644 --- a/posix/glob64.c +++ b/posix/glob64.c @@ -20,6 +20,10 @@ #include #include +#ifdef GLOB_ATTRIBUTE +# define GLOB_ATTRIBUTE +#endif + /* Do glob searching for PATTERN, placing results in PGLOB. The bits defined above may be set in FLAGS. If a directory cannot be opened or read and ERRFUNC is not nil, @@ -29,6 +33,7 @@ If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. Otherwise, `glob' returns zero. */ int +GLOB_ATTRIBUTE glob64 (const char *pattern, int flags, int (*errfunc) (const char *, int), glob64_t *pglob) { diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c new file mode 100644 index 0000000000..ccfda4bb74 --- /dev/null +++ b/posix/tst-glob_lstat_compat.c @@ -0,0 +1,263 @@ +/* Test glob compat symbol which avoid call GLOB_ALTDIRFUNC/gl_lstat. + Copyright (C) 2017 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 +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) + +__typeof (glob) glob; +compat_symbol_reference (libc, glob, glob, GLIBC_2_0); + +/* Compat glob should not call gl_lstat since for some old binaries it + might be unitialized (for instance GNUmake). Check if it is indeed + not called. */ +static bool stat_called; +static bool lstat_called; + +static struct +{ + const char *name; + int level; + int type; +} filesystem[] = +{ + { ".", 1, DT_DIR }, + { "..", 1, DT_DIR }, + { "dir1lev1", 1, DT_UNKNOWN }, + { ".", 2, DT_DIR }, + { "..", 2, DT_DIR }, + { "file1lev2", 2, DT_REG }, + { "file2lev2", 2, DT_REG }, +}; +static const size_t nfiles = sizeof (filesystem) / sizeof (filesystem [0]); + +typedef struct +{ + int level; + int idx; + struct dirent d; + char room_for_dirent[NAME_MAX]; +} my_DIR; + +static long int +find_file (const char *s) +{ + int level = 1; + long int idx = 0; + + while (s[0] == '/') + { + if (s[1] == '\0') + { + s = "."; + break; + } + ++s; + } + + if (strcmp (s, ".") == 0) + return 0; + + if (s[0] == '.' && s[1] == '/') + s += 2; + + while (*s != '\0') + { + char *endp = strchrnul (s, '/'); + + while (idx < nfiles && filesystem[idx].level >= level) + { + if (filesystem[idx].level == level + && memcmp (s, filesystem[idx].name, endp - s) == 0 + && filesystem[idx].name[endp - s] == '\0') + break; + ++idx; + } + + if (idx == nfiles || filesystem[idx].level < level) + { + errno = ENOENT; + return -1; + } + + if (*endp == '\0') + return idx + 1; + + if (filesystem[idx].type != DT_DIR + && (idx + 1 >= nfiles + || filesystem[idx].level >= filesystem[idx + 1].level)) + { + errno = ENOTDIR; + return -1; + } + + ++idx; + + s = endp + 1; + ++level; + } + + errno = ENOENT; + return -1; +} + +static void * +my_opendir (const char *s) +{ + long int idx = find_file (s); + if (idx == -1 || filesystem[idx].type != DT_DIR) + return NULL; + + my_DIR *dir = malloc (sizeof (my_DIR)); + if (dir == NULL) + FAIL_EXIT1 ("cannot allocate directory handle"); + + dir->level = filesystem[idx].level; + dir->idx = idx; + + return dir; +} + +static struct dirent * +my_readdir (void *gdir) +{ + my_DIR *dir = gdir; + + if (dir->idx == -1) + return NULL; + + while (dir->idx < nfiles && filesystem[dir->idx].level > dir->level) + ++dir->idx; + + if (dir->idx == nfiles || filesystem[dir->idx].level < dir->level) + { + dir->idx = -1; + return NULL; + } + + dir->d.d_ino = 1; /* glob should not skip this entry. */ + +#ifdef _DIRENT_HAVE_D_TYPE + dir->d.d_type = filesystem[dir->idx].type; +#endif + + strcpy (dir->d.d_name, filesystem[dir->idx].name); + + ++dir->idx; + + return &dir->d; +} + +static void +my_closedir (void *dir) +{ + free (dir); +} + +static int +my_stat (const char *name, struct stat *st) +{ + stat_called = true; + + long int idx = find_file (name); + if (idx == -1) + return -1; + + memset (st, '\0', sizeof (*st)); + + if (filesystem[idx].type == DT_UNKNOWN) + st->st_mode = DTTOIF (idx + 1 < nfiles + && filesystem[idx].level < filesystem[idx + 1].level + ? DT_DIR : DT_REG) | 0777; + else + st->st_mode = DTTOIF (filesystem[idx].type) | 0777; + return 0; +} + +static int +my_lstat (const char *name, struct stat *st) +{ + lstat_called = true; + + long int idx = find_file (name); + if (idx == -1) + return -1; + + memset (st, '\0', sizeof (*st)); + + if (filesystem[idx].type == DT_UNKNOWN) + st->st_mode = DTTOIF (idx + 1 < nfiles + && filesystem[idx].level < filesystem[idx + 1].level + ? DT_DIR : DT_REG) | 0777; + else + st->st_mode = DTTOIF (filesystem[idx].type) | 0777; + return 0; +} + +static int +do_test (void) +{ + glob_t gl; + + memset (&gl, '\0', sizeof (gl)); + + gl.gl_closedir = my_closedir; + gl.gl_readdir = my_readdir; + gl.gl_opendir = my_opendir; + gl.gl_lstat = my_lstat; + gl.gl_stat = my_stat; + + int flags = GLOB_ALTDIRFUNC; + + stat_called = false; + lstat_called = false; + + TEST_VERIFY_EXIT (glob ("*/file1lev2", flags, NULL, &gl) == 0); + TEST_VERIFY_EXIT (gl.gl_pathc == 1); + TEST_VERIFY_EXIT (strcmp (gl.gl_pathv[0], "dir1lev1/file1lev2") == 0); + + TEST_VERIFY_EXIT (stat_called == true); + TEST_VERIFY_EXIT (lstat_called == false); + + return 0; +} + +#else /* TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) */ + +static int +do_test (void) +{ + return 77; +} +#endif + +#include diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 81e4fe9d9c..e7438c5c1d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2103,3 +2103,6 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c b/sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c new file mode 100644 index 0000000000..a76471d4df --- /dev/null +++ b/sysdeps/unix/sysv/linux/alpha/glob-lstat-compat.c @@ -0,0 +1,2 @@ +#define GLOB_LSTAT_VERSION GLIBC_2_1 +#include diff --git a/sysdeps/unix/sysv/linux/alpha/glob.c b/sysdeps/unix/sysv/linux/alpha/glob.c deleted file mode 100644 index 1b813c1cfd..0000000000 --- a/sysdeps/unix/sysv/linux/alpha/glob.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (C) 1998-2017 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 - . */ - -#define glob64 __no_glob64_decl -#define globfree64 __no_globfree64_decl - -#include -#include -#include - -/* For Linux/Alpha we have to make the glob symbols versioned. */ -#define glob(pattern, flags, errfunc, pglob) \ - __new_glob (pattern, flags, errfunc, pglob) -#define globfree(pglob) \ - __new_globfree (pglob) - -/* We need prototypes for these new names. */ -extern int __new_glob (const char *__pattern, int __flags, - int (*__errfunc) (const char *, int), - glob_t *__pglob); -extern void __new_globfree (glob_t *__pglob); - -#include - -#undef glob -#undef globfree -#undef glob64 -#undef globfree64 - -versioned_symbol (libc, __new_glob, glob, GLIBC_2_1); -libc_hidden_ver (__new_glob, glob) - -weak_alias (__new_glob, glob64) diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index fab73317ca..4836ea0374 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2014,6 +2014,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/alpha/oldglob.c b/sysdeps/unix/sysv/linux/alpha/oldglob.c index 988c92ba45..b54624c611 100644 --- a/sysdeps/unix/sysv/linux/alpha/oldglob.c +++ b/sysdeps/unix/sysv/linux/alpha/oldglob.c @@ -59,7 +59,9 @@ __old_glob (const char *pattern, int flags, correct.gl_closedir = pglob->gl_closedir; correct.gl_readdir = pglob->gl_readdir; correct.gl_opendir = pglob->gl_opendir; - correct.gl_lstat = pglob->gl_lstat; + /* Set gl_lstat and gl_stat for both gl_stat for compatibility with old + implementation that did not follow dangling symlinks. */ + correct.gl_lstat = pglob->gl_stat; correct.gl_stat = pglob->gl_stat; result = glob (pattern, flags, errfunc, &correct); @@ -72,7 +74,7 @@ __old_glob (const char *pattern, int flags, pglob->gl_closedir = correct.gl_closedir; pglob->gl_readdir = correct.gl_readdir; pglob->gl_opendir = correct.gl_opendir; - pglob->gl_lstat = correct.gl_lstat; + /* Only need to restore gl_stat. */ pglob->gl_stat = correct.gl_stat; return result; diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index d2a206a8df..5b70e1bfc9 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -104,6 +104,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/glob-lstat-compat.c b/sysdeps/unix/sysv/linux/glob-lstat-compat.c new file mode 100644 index 0000000000..9867e2f3b1 --- /dev/null +++ b/sysdeps/unix/sysv/linux/glob-lstat-compat.c @@ -0,0 +1,47 @@ +/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC. + Linux version which handles LFS when required. + Copyright (C) 2017 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 + +#define glob64 __no_glob64_decl +#include +#undef glob64 + +#define __glob __glob_lstat_compat + +#define GLOB_ATTRIBUTE attribute_compat_text_section + +/* Avoid calling gl_lstat with GLOB_ALTDIRFUNC. */ +#define GLOB_NO_LSTAT + +#include + +#ifndef GLOB_LSTAT_VERSION +# define GLOB_LSTAT_VERSION GLIBC_2_0 +#endif + +#if SHLIB_COMPAT(libc, GLOB_LSTAT_VERSION, GLIBC_2_27) +compat_symbol (libc, __glob_lstat_compat, glob, GLOB_LSTAT_VERSION); +# if XSTAT_IS_XSTAT64 +strong_alias (__glob_lstat_compat, __glob64_lstat_compat) +compat_symbol (libc, __glob64_lstat_compat, glob64, GLOB_LSTAT_VERSION); +# endif +#endif diff --git a/sysdeps/unix/sysv/linux/glob.c b/sysdeps/unix/sysv/linux/glob.c index 057ae7fe25..e3547993ab 100644 --- a/sysdeps/unix/sysv/linux/glob.c +++ b/sysdeps/unix/sysv/linux/glob.c @@ -20,9 +20,12 @@ #include #define glob64 __no_glob64_decl +#define __glob64 __no___glob64_decl #include #undef glob64 +#undef __glob64 #if XSTAT_IS_XSTAT64 -weak_alias (glob, glob64) +strong_alias (__glob, __glob64) +versioned_symbol (libc, __glob64, glob64, GLIBC_2_27); #endif diff --git a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c new file mode 100644 index 0000000000..4f80602227 --- /dev/null +++ b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c @@ -0,0 +1,56 @@ +/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC. + Linux version which handles LFS when required. + Copyright (C) 2017 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 + +#if !XSTAT_IS_XSTAT64 +# include +# include +# include +# include + +# define dirent dirent64 +# define __readdir(dirp) __readdir64 (dirp) + +# define glob_t glob64_t +# define __glob __glob64_lstat_compat +# define globfree globfree64 + +# undef stat +# define stat stat64 + +# define COMPILE_GLOB64 1 + +# define GLOB_ATTRIBUTE attribute_compat_text_section + +/* Avoid calling gl_lstat with GLOB_ALTDIRFUNC. */ +# define GLOB_NO_LSTAT + +# include + +# if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_27) +# ifndef GLOB_NO_OLD_VERSION +# define GLOB_LSTAT_START_VER GLIBC_2_2 +# else +# define GLOB_LSTAT_START_VER GLIBC_2_1 +# endif +compat_symbol (libc, __glob64_lstat_compat, glob64, GLOB_LSTAT_START_VER); +# endif +#endif /* XSTAT_IS_XSTAT64 */ diff --git a/sysdeps/unix/sysv/linux/glob64.c b/sysdeps/unix/sysv/linux/glob64.c index 428bbacb11..0189d1c77d 100644 --- a/sysdeps/unix/sysv/linux/glob64.c +++ b/sysdeps/unix/sysv/linux/glob64.c @@ -28,8 +28,7 @@ # define __readdir(dirp) __readdir64 (dirp) # define glob_t glob64_t -# define glob(pattern, flags, errfunc, pglob) \ - __glob64 (pattern, flags, errfunc, pglob) +# define __glob __glob64 # define globfree(pglob) globfree64 (pglob) # undef stat @@ -39,13 +38,13 @@ # include -# include "shlib-compat.h" +# include # ifdef GLOB_NO_OLD_VERSION strong_alias (__glob64, glob64) libc_hidden_def (glob64) # else -versioned_symbol (libc, __glob64, glob64, GLIBC_2_2); +versioned_symbol (libc, __glob64, glob64, GLIBC_2_27); libc_hidden_ver (__glob64, glob64) # endif #endif /* XSTAT_IS_XSTAT64 */ diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 24bb7300d3..6a2500a8b3 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1868,6 +1868,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 12e77bd7f2..9ab4e3642a 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2033,6 +2033,9 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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 62b67b859d..81bb623fe8 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1897,6 +1897,9 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index b594ebd7c6..5a33b57390 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -105,6 +105,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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 a36739d41c..50a86e74fa 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1982,6 +1982,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 16aa25485f..250ef305c3 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2103,3 +2103,6 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 907ab331f2..87a1dc4ad7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1957,6 +1957,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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 36ee235d71..f2b35f250e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1955,6 +1955,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 783aa73ab7..e119842b47 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1953,6 +1953,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index e1275dfe28..67f10f5641 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1948,6 +1948,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index be252287d1..c599dd9212 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2144,3 +2144,6 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/oldglob.c b/sysdeps/unix/sysv/linux/oldglob.c index 5402450f55..a034c2d930 100644 --- a/sysdeps/unix/sysv/linux/oldglob.c +++ b/sysdeps/unix/sysv/linux/oldglob.c @@ -21,7 +21,7 @@ libc_hidden_proto (__old_glob64); #define __readdir(dirp) __old_readdir64 (dirp) #define glob_t glob64_t -#define glob(pattern, flags, errfunc, pglob) \ +#define __glob(pattern, flags, errfunc, pglob) \ __old_glob64 (pattern, flags, errfunc, pglob) #define globfree(pglob) globfree64(pglob) @@ -33,6 +33,9 @@ libc_hidden_proto (__old_glob64); #undef __stat #define __stat(file, buf) __xstat64 (_STAT_VER, file, buf) +/* Avoid calling gl_lstat with GLOB_ALTDIRFUNC. */ +#define GLOB_NO_LSTAT + #define GLOB_ATTRIBUTE attribute_compat_text_section #include diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index e213895c71..385409aa6e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1986,6 +1986,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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 d25aefd1ae..e99cb454b5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1991,6 +1991,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 51a8d19711..173672ab5e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2198,3 +2198,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 5eb056baf5..8a654436ab 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -105,6 +105,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/s390/s390-32/glob64-lstat-compat.c b/sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c new file mode 100644 index 0000000000..3016785fa1 --- /dev/null +++ b/sysdeps/unix/sysv/linux/s390/s390-32/glob64-lstat-compat.c @@ -0,0 +1,2 @@ +#define GLOB_NO_OLD_VERSION +#include diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/glob64.c b/sysdeps/unix/sysv/linux/s390/s390-32/glob64.c deleted file mode 100644 index d220e22e30..0000000000 --- a/sysdeps/unix/sysv/linux/s390/s390-32/glob64.c +++ /dev/null @@ -1,2 +0,0 @@ -#define GLOB_NO_OLD_VERSION -#include diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 63d33e8b37..271eccc853 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1986,6 +1986,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index b1b2b29c94..8b96e16916 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1887,6 +1887,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index f3a70a0f6f..0f840e6e88 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1872,6 +1872,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 8c4c2e502c..7f7449f52b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1978,6 +1978,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 1653164d9e..a50485efd8 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1916,6 +1916,9 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 41647d4610..38a96d3a02 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2110,3 +2110,6 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 1088923e59..572b917d7d 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2110,3 +2110,6 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 41647d4610..38a96d3a02 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2110,3 +2110,6 @@ GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 8bff2b225b..b83d25c2e3 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1874,6 +1874,9 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 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/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index d91a03861b..cba1d59057 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2117,3 +2117,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F +GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 glob F +GLIBC_2.27 glob64 F -- cgit v1.2.3 From 81325b12b14c44887f1633a2c180a413afc2b504 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 18 Oct 2017 17:37:18 +0000 Subject: Add _Float128 function aliases. This patch adds support for *f128 function aliases on platforms where long double has the binary128 format (and thus GCC 7 provides the _Float128 type with the same ABI as long double but as a distinct type in terms of C type compatibility). This is the same API as provided in glibc 2.26 for powerpc64le / x86_64 / x86 / ia64 where _Float128 has a different format from long double, with the bulk of the API coming from TS 18661-3. All the functions alias the corresponding long double functions, and __* function names are not provided since those are only needed once for each floating-point format, not more than once for different types with the same format (so for example, -ffinite-math-only maps foof128 to __fool_finite, while type-generic macros end up calling e.g. __issignalingl for _Float128 arguments on such platforms). The preparation for this feature was done in previous patches, so this one just needs to add the relevant makefile and header definitions, and update macro definitions of libm_alias_ldouble_other_r, to turn on the feature, and update documentation and ABI baselines. Tested (a) for x86_64, (b) for aarch64, (c) with build-many-glibcs.py with both GCC 6 and GCC 7. * sysdeps/ieee754/ldbl-128/Makeconfig: New file. * sysdeps/ieee754/ldbl-128/bits/floatn.h: Likewise. * sysdeps/ieee754/ldbl-128/float128-abi.h: Likewise. * sysdeps/generic/libm-alias-ldouble.h: Include . [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (libm_alias_ldouble_other_r): Also create _Float128 alias. * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h: Include . [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] (libm_alias_ldouble_other_r): Also create _Float128 alias. * manual/math.texi (Mathematics): Document additional architecture support for _Float128. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.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/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. --- ChangeLog | 30 ++++++ NEWS | 6 ++ manual/math.texi | 3 +- sysdeps/generic/libm-alias-ldouble.h | 9 +- sysdeps/ieee754/ldbl-128/Makeconfig | 3 + sysdeps/ieee754/ldbl-128/bits/floatn.h | 80 ++++++++++++++++ sysdeps/ieee754/ldbl-128/float128-abi.h | 2 + sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h | 8 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 5 + sysdeps/unix/sysv/linux/aarch64/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/alpha/libc.abilist | 5 + sysdeps/unix/sysv/linux/alpha/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 104 +++++++++++++++++++++ .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 5 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 104 +++++++++++++++++++++ 23 files changed, 906 insertions(+), 3 deletions(-) create mode 100644 sysdeps/ieee754/ldbl-128/Makeconfig create mode 100644 sysdeps/ieee754/ldbl-128/bits/floatn.h create mode 100644 sysdeps/ieee754/ldbl-128/float128-abi.h (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index eae1159cf3..1bd3f73ac4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,33 @@ +2017-10-18 Joseph Myers + + * sysdeps/ieee754/ldbl-128/Makeconfig: New file. + * sysdeps/ieee754/ldbl-128/bits/floatn.h: Likewise. + * sysdeps/ieee754/ldbl-128/float128-abi.h: Likewise. + * sysdeps/generic/libm-alias-ldouble.h: Include . + [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] + (libm_alias_ldouble_other_r): Also create _Float128 alias. + * sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h: Include + . + [__HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128] + (libm_alias_ldouble_other_r): Also create _Float128 alias. + * manual/math.texi (Mathematics): Document additional architecture + support for _Float128. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.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/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + 2017-10-18 Renlin Li * sysdeps/aarch64/dl-machine.h (elf_machine_load_address): Use diff --git a/NEWS b/NEWS index 464d1ce9b3..ad680db874 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,12 @@ Major new features: in deadlocks and further data corruption. This change also affects process aborts as the result of assertion failures. +* On platforms where long double has the IEEE binary128 format (aarch64, + alpha, mips64, s390 and sparc), the math library now implements _Float128 + interfaces for that type, as defined by ISO/IEC TS 18661-3:2015. These + are the same interfaces added in version 2.26 for some platforms where + this format is supported but is not the format of long double. + Deprecated and removed features, and other changes affecting compatibility: * On GNU/Linux, the obsolete Linux constant PTRACE_SEIZE_DEVEL is no longer diff --git a/manual/math.texi b/manual/math.texi index f5602c9be3..e6aa342076 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -67,7 +67,8 @@ these functions are described along with the @code{double}, Currently, support for @code{_Float@var{N}} or @code{_Float@var{N}x} types is only provided for @code{_Float128} on powerpc64le (PowerPC -64-bits little-endian), x86_64, x86 and ia64. +64-bits little-endian), x86_64, x86, ia64, aarch64, alpha, mips64, +s390 and sparc. @menu * Mathematical Constants:: Precise numeric values for often-used diff --git a/sysdeps/generic/libm-alias-ldouble.h b/sysdeps/generic/libm-alias-ldouble.h index 82dafd513e..7b9bf9a0e3 100644 --- a/sysdeps/generic/libm-alias-ldouble.h +++ b/sysdeps/generic/libm-alias-ldouble.h @@ -19,11 +19,18 @@ #ifndef _LIBM_ALIAS_LDOUBLE_H #define _LIBM_ALIAS_LDOUBLE_H +#include + /* Define _FloatN / _FloatNx aliases for a long double libm function that has internal name FROM ## l ## R and public names TO ## suffix ## R for each suffix of a supported _FloatN / _FloatNx floating-point type with the same format as long double. */ -#define libm_alias_ldouble_other_r(from, to, r) +#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128 +# define libm_alias_ldouble_other_r(from, to, r) \ + weak_alias (from ## l ## r, to ## f128 ## r) +#else +# define libm_alias_ldouble_other_r(from, to, r) +#endif /* Likewise, but without the R suffix. */ #define libm_alias_ldouble_other(from, to) \ diff --git a/sysdeps/ieee754/ldbl-128/Makeconfig b/sysdeps/ieee754/ldbl-128/Makeconfig new file mode 100644 index 0000000000..1f8e2562f0 --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/Makeconfig @@ -0,0 +1,3 @@ +# Include this earlier so it can be used earlier in Makefiles, +# and sysdep/ makefiles. +float128-alias-fcts = yes diff --git a/sysdeps/ieee754/ldbl-128/bits/floatn.h b/sysdeps/ieee754/ldbl-128/bits/floatn.h new file mode 100644 index 0000000000..5c87366aef --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/bits/floatn.h @@ -0,0 +1,80 @@ +/* Macros to control TS 18661-3 glibc features on ldbl-128 platforms. + Copyright (C) 2017 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 + . */ + +#ifndef _BITS_FLOATN_H +#define _BITS_FLOATN_H + +#include +#include + +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the IEEE 754 binary128 format, and this + glibc includes corresponding *f128 interfaces for it. */ +#ifndef __NO_LONG_DOUBLE_MATH +# define __HAVE_FLOAT128 1 +#else +/* glibc does not support _Float128 for platforms where long double is + normally binary128 when building with long double as binary64. + GCC's default for supported scalar modes does not support it either + in that case. */ +# define __HAVE_FLOAT128 0 +#endif + +/* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct + from the default float, double and long double types in this glibc. */ +#define __HAVE_DISTINCT_FLOAT128 0 + +/* Defined to concatenate the literal suffix to be used with _Float128 + types, if __HAVE_FLOAT128 is 1. */ +#if __HAVE_FLOAT128 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +/* The literal suffix f128 exists only since GCC 7.0. */ +# define __f128(x) x##l +# else +# define __f128(x) x##f128 +# endif +#endif + +/* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ +#if __HAVE_FLOAT128 +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +# define __CFLOAT128 _Complex long double +# else +# define __CFLOAT128 _Complex _Float128 +# endif +#endif + +/* The remaining of this file provides support for older compilers. */ +#if __HAVE_FLOAT128 + +/* The type _Float128 exists only since GCC 7.0. */ +# if !__GNUC_PREREQ (7, 0) || defined __cplusplus +typedef long double _Float128; +# endif + +/* Various built-in functions do not exist before GCC 7.0. */ +# if !__GNUC_PREREQ (7, 0) +# define __builtin_huge_valf128() (__builtin_huge_vall ()) +# define __builtin_inff128() (__builtin_infl ()) +# define __builtin_nanf128(x) (__builtin_nanl (x)) +# define __builtin_nansf128(x) (__builtin_nansl (x)) +# endif + +#endif + +#endif /* _BITS_FLOATN_H */ diff --git a/sysdeps/ieee754/ldbl-128/float128-abi.h b/sysdeps/ieee754/ldbl-128/float128-abi.h new file mode 100644 index 0000000000..3077ffc7fe --- /dev/null +++ b/sysdeps/ieee754/ldbl-128/float128-abi.h @@ -0,0 +1,2 @@ +/* ABI version for _Float128 ABI introduction. */ +#define FLOAT128_VERSION GLIBC_2.27 diff --git a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h index 291a5f56cb..ad31f69f1a 100644 --- a/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h +++ b/sysdeps/ieee754/ldbl-opt/libm-alias-ldouble.h @@ -19,6 +19,7 @@ #ifndef _LIBM_ALIAS_LDOUBLE_H #define _LIBM_ALIAS_LDOUBLE_H +#include #include #include @@ -26,7 +27,12 @@ that has internal name FROM ## l ## R and public names TO ## suffix ## R for each suffix of a supported _FloatN / _FloatNx floating-point type with the same format as long double. */ -#define libm_alias_ldouble_other_r(from, to, r) +#if __HAVE_FLOAT128 && !__HAVE_DISTINCT_FLOAT128 +# define libm_alias_ldouble_other_r(from, to, r) \ + weak_alias (from ## l ## r, to ## f128 ## r) +#else +# define libm_alias_ldouble_other_r(from, to, r) +#endif /* Likewise, but without the R suffix. */ #define libm_alias_ldouble_other(from, to) \ diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index e7438c5c1d..ed598aedac 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2106,3 +2106,8 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 3f0190ae03..b21d136e9d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -461,8 +461,112 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf128 F +GLIBC_2.27 acoshf128 F +GLIBC_2.27 asinf128 F +GLIBC_2.27 asinhf128 F +GLIBC_2.27 atan2f128 F +GLIBC_2.27 atanf128 F +GLIBC_2.27 atanhf128 F +GLIBC_2.27 cabsf128 F +GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacoshf128 F +GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 cargf128 F +GLIBC_2.27 casinf128 F +GLIBC_2.27 casinhf128 F +GLIBC_2.27 catanf128 F +GLIBC_2.27 catanhf128 F +GLIBC_2.27 cbrtf128 F +GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ceilf128 F +GLIBC_2.27 cexpf128 F +GLIBC_2.27 cimagf128 F +GLIBC_2.27 clog10f128 F +GLIBC_2.27 clogf128 F +GLIBC_2.27 conjf128 F +GLIBC_2.27 copysignf128 F +GLIBC_2.27 cosf128 F +GLIBC_2.27 coshf128 F +GLIBC_2.27 cpowf128 F +GLIBC_2.27 cprojf128 F +GLIBC_2.27 crealf128 F +GLIBC_2.27 csinf128 F +GLIBC_2.27 csinhf128 F +GLIBC_2.27 csqrtf128 F +GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanhf128 F +GLIBC_2.27 erfcf128 F +GLIBC_2.27 erff128 F +GLIBC_2.27 exp10f128 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f128 F GLIBC_2.27 expf F +GLIBC_2.27 expf128 F +GLIBC_2.27 expm1f128 F +GLIBC_2.27 fabsf128 F +GLIBC_2.27 fdimf128 F +GLIBC_2.27 floorf128 F +GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fminf128 F +GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fmodf128 F +GLIBC_2.27 frexpf128 F +GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 hypotf128 F +GLIBC_2.27 ilogbf128 F +GLIBC_2.27 j0f128 F +GLIBC_2.27 j1f128 F +GLIBC_2.27 jnf128 F +GLIBC_2.27 ldexpf128 F +GLIBC_2.27 lgammaf128 F +GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 llogbf128 F +GLIBC_2.27 llrintf128 F +GLIBC_2.27 llroundf128 F +GLIBC_2.27 log10f128 F +GLIBC_2.27 log1pf128 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f128 F +GLIBC_2.27 logbf128 F GLIBC_2.27 logf F +GLIBC_2.27 logf128 F +GLIBC_2.27 lrintf128 F +GLIBC_2.27 lroundf128 F +GLIBC_2.27 modff128 F +GLIBC_2.27 nanf128 F +GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextupf128 F GLIBC_2.27 powf F +GLIBC_2.27 powf128 F +GLIBC_2.27 remainderf128 F +GLIBC_2.27 remquof128 F +GLIBC_2.27 rintf128 F +GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundf128 F +GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalbnf128 F +GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 sincosf128 F +GLIBC_2.27 sinf128 F +GLIBC_2.27 sinhf128 F +GLIBC_2.27 sqrtf128 F +GLIBC_2.27 tanf128 F +GLIBC_2.27 tanhf128 F +GLIBC_2.27 tgammaf128 F +GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 truncf128 F +GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 y0f128 F +GLIBC_2.27 y1f128 F +GLIBC_2.27 ynf128 F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 4836ea0374..4e57f36bcf 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2017,6 +2017,11 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l 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/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 78edc5e3d9..3ba02a1966 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -471,11 +471,115 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf128 F +GLIBC_2.27 acoshf128 F +GLIBC_2.27 asinf128 F +GLIBC_2.27 asinhf128 F +GLIBC_2.27 atan2f128 F +GLIBC_2.27 atanf128 F +GLIBC_2.27 atanhf128 F +GLIBC_2.27 cabsf128 F +GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacoshf128 F +GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 cargf128 F +GLIBC_2.27 casinf128 F +GLIBC_2.27 casinhf128 F +GLIBC_2.27 catanf128 F +GLIBC_2.27 catanhf128 F +GLIBC_2.27 cbrtf128 F +GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ceilf128 F +GLIBC_2.27 cexpf128 F +GLIBC_2.27 cimagf128 F +GLIBC_2.27 clog10f128 F +GLIBC_2.27 clogf128 F +GLIBC_2.27 conjf128 F +GLIBC_2.27 copysignf128 F +GLIBC_2.27 cosf128 F +GLIBC_2.27 coshf128 F +GLIBC_2.27 cpowf128 F +GLIBC_2.27 cprojf128 F +GLIBC_2.27 crealf128 F +GLIBC_2.27 csinf128 F +GLIBC_2.27 csinhf128 F +GLIBC_2.27 csqrtf128 F +GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanhf128 F +GLIBC_2.27 erfcf128 F +GLIBC_2.27 erff128 F +GLIBC_2.27 exp10f128 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f128 F GLIBC_2.27 expf F +GLIBC_2.27 expf128 F +GLIBC_2.27 expm1f128 F +GLIBC_2.27 fabsf128 F +GLIBC_2.27 fdimf128 F +GLIBC_2.27 floorf128 F +GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fminf128 F +GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fmodf128 F +GLIBC_2.27 frexpf128 F +GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 hypotf128 F +GLIBC_2.27 ilogbf128 F +GLIBC_2.27 j0f128 F +GLIBC_2.27 j1f128 F +GLIBC_2.27 jnf128 F +GLIBC_2.27 ldexpf128 F +GLIBC_2.27 lgammaf128 F +GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 llogbf128 F +GLIBC_2.27 llrintf128 F +GLIBC_2.27 llroundf128 F +GLIBC_2.27 log10f128 F +GLIBC_2.27 log1pf128 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f128 F +GLIBC_2.27 logbf128 F GLIBC_2.27 logf F +GLIBC_2.27 logf128 F +GLIBC_2.27 lrintf128 F +GLIBC_2.27 lroundf128 F +GLIBC_2.27 modff128 F +GLIBC_2.27 nanf128 F +GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextupf128 F GLIBC_2.27 powf F +GLIBC_2.27 powf128 F +GLIBC_2.27 remainderf128 F +GLIBC_2.27 remquof128 F +GLIBC_2.27 rintf128 F +GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundf128 F +GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalbnf128 F +GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 sincosf128 F +GLIBC_2.27 sinf128 F +GLIBC_2.27 sinhf128 F +GLIBC_2.27 sqrtf128 F +GLIBC_2.27 tanf128 F +GLIBC_2.27 tanhf128 F +GLIBC_2.27 tgammaf128 F +GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 truncf128 F +GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 y0f128 F +GLIBC_2.27 y1f128 F +GLIBC_2.27 ynf128 F GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __c1_cabsf F GLIBC_2.3.4 __c1_cacosf F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index f33ba0576b..92a46b6b30 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -463,9 +463,113 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf128 F +GLIBC_2.27 acoshf128 F +GLIBC_2.27 asinf128 F +GLIBC_2.27 asinhf128 F +GLIBC_2.27 atan2f128 F +GLIBC_2.27 atanf128 F +GLIBC_2.27 atanhf128 F +GLIBC_2.27 cabsf128 F +GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacoshf128 F +GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 cargf128 F +GLIBC_2.27 casinf128 F +GLIBC_2.27 casinhf128 F +GLIBC_2.27 catanf128 F +GLIBC_2.27 catanhf128 F +GLIBC_2.27 cbrtf128 F +GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ceilf128 F +GLIBC_2.27 cexpf128 F +GLIBC_2.27 cimagf128 F +GLIBC_2.27 clog10f128 F +GLIBC_2.27 clogf128 F +GLIBC_2.27 conjf128 F +GLIBC_2.27 copysignf128 F +GLIBC_2.27 cosf128 F +GLIBC_2.27 coshf128 F +GLIBC_2.27 cpowf128 F +GLIBC_2.27 cprojf128 F +GLIBC_2.27 crealf128 F +GLIBC_2.27 csinf128 F +GLIBC_2.27 csinhf128 F +GLIBC_2.27 csqrtf128 F +GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanhf128 F +GLIBC_2.27 erfcf128 F +GLIBC_2.27 erff128 F +GLIBC_2.27 exp10f128 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f128 F GLIBC_2.27 expf F +GLIBC_2.27 expf128 F +GLIBC_2.27 expm1f128 F +GLIBC_2.27 fabsf128 F +GLIBC_2.27 fdimf128 F +GLIBC_2.27 floorf128 F +GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fminf128 F +GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fmodf128 F +GLIBC_2.27 frexpf128 F +GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 hypotf128 F +GLIBC_2.27 ilogbf128 F +GLIBC_2.27 j0f128 F +GLIBC_2.27 j1f128 F +GLIBC_2.27 jnf128 F +GLIBC_2.27 ldexpf128 F +GLIBC_2.27 lgammaf128 F +GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 llogbf128 F +GLIBC_2.27 llrintf128 F +GLIBC_2.27 llroundf128 F +GLIBC_2.27 log10f128 F +GLIBC_2.27 log1pf128 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f128 F +GLIBC_2.27 logbf128 F GLIBC_2.27 logf F +GLIBC_2.27 logf128 F +GLIBC_2.27 lrintf128 F +GLIBC_2.27 lroundf128 F +GLIBC_2.27 modff128 F +GLIBC_2.27 nanf128 F +GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextupf128 F GLIBC_2.27 powf F +GLIBC_2.27 powf128 F +GLIBC_2.27 remainderf128 F +GLIBC_2.27 remquof128 F +GLIBC_2.27 rintf128 F +GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundf128 F +GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalbnf128 F +GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 sincosf128 F +GLIBC_2.27 sinf128 F +GLIBC_2.27 sinhf128 F +GLIBC_2.27 sqrtf128 F +GLIBC_2.27 tanf128 F +GLIBC_2.27 tanhf128 F +GLIBC_2.27 tgammaf128 F +GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 truncf128 F +GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 y0f128 F +GLIBC_2.27 y1f128 F +GLIBC_2.27 ynf128 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index e119842b47..ade654dbea 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1956,6 +1956,11 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 67f10f5641..56032c3f82 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1951,6 +1951,11 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l 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-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 271eccc853..dbd411ceb1 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1989,6 +1989,11 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l 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-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 2b758e80fd..f3c4f77264 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -461,11 +461,115 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf128 F +GLIBC_2.27 acoshf128 F +GLIBC_2.27 asinf128 F +GLIBC_2.27 asinhf128 F +GLIBC_2.27 atan2f128 F +GLIBC_2.27 atanf128 F +GLIBC_2.27 atanhf128 F +GLIBC_2.27 cabsf128 F +GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacoshf128 F +GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 cargf128 F +GLIBC_2.27 casinf128 F +GLIBC_2.27 casinhf128 F +GLIBC_2.27 catanf128 F +GLIBC_2.27 catanhf128 F +GLIBC_2.27 cbrtf128 F +GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ceilf128 F +GLIBC_2.27 cexpf128 F +GLIBC_2.27 cimagf128 F +GLIBC_2.27 clog10f128 F +GLIBC_2.27 clogf128 F +GLIBC_2.27 conjf128 F +GLIBC_2.27 copysignf128 F +GLIBC_2.27 cosf128 F +GLIBC_2.27 coshf128 F +GLIBC_2.27 cpowf128 F +GLIBC_2.27 cprojf128 F +GLIBC_2.27 crealf128 F +GLIBC_2.27 csinf128 F +GLIBC_2.27 csinhf128 F +GLIBC_2.27 csqrtf128 F +GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanhf128 F +GLIBC_2.27 erfcf128 F +GLIBC_2.27 erff128 F +GLIBC_2.27 exp10f128 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f128 F GLIBC_2.27 expf F +GLIBC_2.27 expf128 F +GLIBC_2.27 expm1f128 F +GLIBC_2.27 fabsf128 F +GLIBC_2.27 fdimf128 F +GLIBC_2.27 floorf128 F +GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fminf128 F +GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fmodf128 F +GLIBC_2.27 frexpf128 F +GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 hypotf128 F +GLIBC_2.27 ilogbf128 F +GLIBC_2.27 j0f128 F +GLIBC_2.27 j1f128 F +GLIBC_2.27 jnf128 F +GLIBC_2.27 ldexpf128 F +GLIBC_2.27 lgammaf128 F +GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 llogbf128 F +GLIBC_2.27 llrintf128 F +GLIBC_2.27 llroundf128 F +GLIBC_2.27 log10f128 F +GLIBC_2.27 log1pf128 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f128 F +GLIBC_2.27 logbf128 F GLIBC_2.27 logf F +GLIBC_2.27 logf128 F +GLIBC_2.27 lrintf128 F +GLIBC_2.27 lroundf128 F +GLIBC_2.27 modff128 F +GLIBC_2.27 nanf128 F +GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextupf128 F GLIBC_2.27 powf F +GLIBC_2.27 powf128 F +GLIBC_2.27 remainderf128 F +GLIBC_2.27 remquof128 F +GLIBC_2.27 rintf128 F +GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundf128 F +GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalbnf128 F +GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 sincosf128 F +GLIBC_2.27 sinf128 F +GLIBC_2.27 sinhf128 F +GLIBC_2.27 sqrtf128 F +GLIBC_2.27 tanf128 F +GLIBC_2.27 tanhf128 F +GLIBC_2.27 tgammaf128 F +GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 truncf128 F +GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 y0f128 F +GLIBC_2.27 y1f128 F +GLIBC_2.27 ynf128 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 8b96e16916..5617784ca0 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1890,6 +1890,11 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l 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/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 62c9bb57a8..eb113fd37c 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -459,11 +459,115 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf128 F +GLIBC_2.27 acoshf128 F +GLIBC_2.27 asinf128 F +GLIBC_2.27 asinhf128 F +GLIBC_2.27 atan2f128 F +GLIBC_2.27 atanf128 F +GLIBC_2.27 atanhf128 F +GLIBC_2.27 cabsf128 F +GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacoshf128 F +GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 cargf128 F +GLIBC_2.27 casinf128 F +GLIBC_2.27 casinhf128 F +GLIBC_2.27 catanf128 F +GLIBC_2.27 catanhf128 F +GLIBC_2.27 cbrtf128 F +GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ceilf128 F +GLIBC_2.27 cexpf128 F +GLIBC_2.27 cimagf128 F +GLIBC_2.27 clog10f128 F +GLIBC_2.27 clogf128 F +GLIBC_2.27 conjf128 F +GLIBC_2.27 copysignf128 F +GLIBC_2.27 cosf128 F +GLIBC_2.27 coshf128 F +GLIBC_2.27 cpowf128 F +GLIBC_2.27 cprojf128 F +GLIBC_2.27 crealf128 F +GLIBC_2.27 csinf128 F +GLIBC_2.27 csinhf128 F +GLIBC_2.27 csqrtf128 F +GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanhf128 F +GLIBC_2.27 erfcf128 F +GLIBC_2.27 erff128 F +GLIBC_2.27 exp10f128 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f128 F GLIBC_2.27 expf F +GLIBC_2.27 expf128 F +GLIBC_2.27 expm1f128 F +GLIBC_2.27 fabsf128 F +GLIBC_2.27 fdimf128 F +GLIBC_2.27 floorf128 F +GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fminf128 F +GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fmodf128 F +GLIBC_2.27 frexpf128 F +GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 hypotf128 F +GLIBC_2.27 ilogbf128 F +GLIBC_2.27 j0f128 F +GLIBC_2.27 j1f128 F +GLIBC_2.27 jnf128 F +GLIBC_2.27 ldexpf128 F +GLIBC_2.27 lgammaf128 F +GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 llogbf128 F +GLIBC_2.27 llrintf128 F +GLIBC_2.27 llroundf128 F +GLIBC_2.27 log10f128 F +GLIBC_2.27 log1pf128 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f128 F +GLIBC_2.27 logbf128 F GLIBC_2.27 logf F +GLIBC_2.27 logf128 F +GLIBC_2.27 lrintf128 F +GLIBC_2.27 lroundf128 F +GLIBC_2.27 modff128 F +GLIBC_2.27 nanf128 F +GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextupf128 F GLIBC_2.27 powf F +GLIBC_2.27 powf128 F +GLIBC_2.27 remainderf128 F +GLIBC_2.27 remquof128 F +GLIBC_2.27 rintf128 F +GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundf128 F +GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalbnf128 F +GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 sincosf128 F +GLIBC_2.27 sinf128 F +GLIBC_2.27 sinhf128 F +GLIBC_2.27 sqrtf128 F +GLIBC_2.27 tanf128 F +GLIBC_2.27 tanhf128 F +GLIBC_2.27 tgammaf128 F +GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 truncf128 F +GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 y0f128 F +GLIBC_2.27 y1f128 F +GLIBC_2.27 ynf128 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index a62463be3d..bb7e1042c7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1982,6 +1982,11 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l 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/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 92de6edab9..152a83a869 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -468,11 +468,115 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf128 F +GLIBC_2.27 acoshf128 F +GLIBC_2.27 asinf128 F +GLIBC_2.27 asinhf128 F +GLIBC_2.27 atan2f128 F +GLIBC_2.27 atanf128 F +GLIBC_2.27 atanhf128 F +GLIBC_2.27 cabsf128 F +GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacoshf128 F +GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 cargf128 F +GLIBC_2.27 casinf128 F +GLIBC_2.27 casinhf128 F +GLIBC_2.27 catanf128 F +GLIBC_2.27 catanhf128 F +GLIBC_2.27 cbrtf128 F +GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ceilf128 F +GLIBC_2.27 cexpf128 F +GLIBC_2.27 cimagf128 F +GLIBC_2.27 clog10f128 F +GLIBC_2.27 clogf128 F +GLIBC_2.27 conjf128 F +GLIBC_2.27 copysignf128 F +GLIBC_2.27 cosf128 F +GLIBC_2.27 coshf128 F +GLIBC_2.27 cpowf128 F +GLIBC_2.27 cprojf128 F +GLIBC_2.27 crealf128 F +GLIBC_2.27 csinf128 F +GLIBC_2.27 csinhf128 F +GLIBC_2.27 csqrtf128 F +GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanhf128 F +GLIBC_2.27 erfcf128 F +GLIBC_2.27 erff128 F +GLIBC_2.27 exp10f128 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f128 F GLIBC_2.27 expf F +GLIBC_2.27 expf128 F +GLIBC_2.27 expm1f128 F +GLIBC_2.27 fabsf128 F +GLIBC_2.27 fdimf128 F +GLIBC_2.27 floorf128 F +GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fminf128 F +GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fmodf128 F +GLIBC_2.27 frexpf128 F +GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 hypotf128 F +GLIBC_2.27 ilogbf128 F +GLIBC_2.27 j0f128 F +GLIBC_2.27 j1f128 F +GLIBC_2.27 jnf128 F +GLIBC_2.27 ldexpf128 F +GLIBC_2.27 lgammaf128 F +GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 llogbf128 F +GLIBC_2.27 llrintf128 F +GLIBC_2.27 llroundf128 F +GLIBC_2.27 log10f128 F +GLIBC_2.27 log1pf128 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f128 F +GLIBC_2.27 logbf128 F GLIBC_2.27 logf F +GLIBC_2.27 logf128 F +GLIBC_2.27 lrintf128 F +GLIBC_2.27 lroundf128 F +GLIBC_2.27 modff128 F +GLIBC_2.27 nanf128 F +GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextupf128 F GLIBC_2.27 powf F +GLIBC_2.27 powf128 F +GLIBC_2.27 remainderf128 F +GLIBC_2.27 remquof128 F +GLIBC_2.27 rintf128 F +GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundf128 F +GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalbnf128 F +GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 sincosf128 F +GLIBC_2.27 sinf128 F +GLIBC_2.27 sinhf128 F +GLIBC_2.27 sqrtf128 F +GLIBC_2.27 tanf128 F +GLIBC_2.27 tanhf128 F +GLIBC_2.27 tgammaf128 F +GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 truncf128 F +GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 y0f128 F +GLIBC_2.27 y1f128 F +GLIBC_2.27 ynf128 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index a50485efd8..4053b0a51c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1919,6 +1919,11 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 strfromf128 F +GLIBC_2.27 strtof128 F +GLIBC_2.27 strtof128_l F +GLIBC_2.27 wcstof128 F +GLIBC_2.27 wcstof128_l 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/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index b5412c9b48..ff6962d7e7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -462,9 +462,113 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf128 F +GLIBC_2.27 acoshf128 F +GLIBC_2.27 asinf128 F +GLIBC_2.27 asinhf128 F +GLIBC_2.27 atan2f128 F +GLIBC_2.27 atanf128 F +GLIBC_2.27 atanhf128 F +GLIBC_2.27 cabsf128 F +GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacoshf128 F +GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 cargf128 F +GLIBC_2.27 casinf128 F +GLIBC_2.27 casinhf128 F +GLIBC_2.27 catanf128 F +GLIBC_2.27 catanhf128 F +GLIBC_2.27 cbrtf128 F +GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ceilf128 F +GLIBC_2.27 cexpf128 F +GLIBC_2.27 cimagf128 F +GLIBC_2.27 clog10f128 F +GLIBC_2.27 clogf128 F +GLIBC_2.27 conjf128 F +GLIBC_2.27 copysignf128 F +GLIBC_2.27 cosf128 F +GLIBC_2.27 coshf128 F +GLIBC_2.27 cpowf128 F +GLIBC_2.27 cprojf128 F +GLIBC_2.27 crealf128 F +GLIBC_2.27 csinf128 F +GLIBC_2.27 csinhf128 F +GLIBC_2.27 csqrtf128 F +GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanhf128 F +GLIBC_2.27 erfcf128 F +GLIBC_2.27 erff128 F +GLIBC_2.27 exp10f128 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f128 F GLIBC_2.27 expf F +GLIBC_2.27 expf128 F +GLIBC_2.27 expm1f128 F +GLIBC_2.27 fabsf128 F +GLIBC_2.27 fdimf128 F +GLIBC_2.27 floorf128 F +GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fminf128 F +GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fmodf128 F +GLIBC_2.27 frexpf128 F +GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 hypotf128 F +GLIBC_2.27 ilogbf128 F +GLIBC_2.27 j0f128 F +GLIBC_2.27 j1f128 F +GLIBC_2.27 jnf128 F +GLIBC_2.27 ldexpf128 F +GLIBC_2.27 lgammaf128 F +GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 llogbf128 F +GLIBC_2.27 llrintf128 F +GLIBC_2.27 llroundf128 F +GLIBC_2.27 log10f128 F +GLIBC_2.27 log1pf128 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f128 F +GLIBC_2.27 logbf128 F GLIBC_2.27 logf F +GLIBC_2.27 logf128 F +GLIBC_2.27 lrintf128 F +GLIBC_2.27 lroundf128 F +GLIBC_2.27 modff128 F +GLIBC_2.27 nanf128 F +GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextupf128 F GLIBC_2.27 powf F +GLIBC_2.27 powf128 F +GLIBC_2.27 remainderf128 F +GLIBC_2.27 remquof128 F +GLIBC_2.27 rintf128 F +GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundf128 F +GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalbnf128 F +GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 sincosf128 F +GLIBC_2.27 sinf128 F +GLIBC_2.27 sinhf128 F +GLIBC_2.27 sqrtf128 F +GLIBC_2.27 tanf128 F +GLIBC_2.27 tanhf128 F +GLIBC_2.27 tgammaf128 F +GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 truncf128 F +GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 y0f128 F +GLIBC_2.27 y1f128 F +GLIBC_2.27 ynf128 F GLIBC_2.4 GLIBC_2.4 A -- cgit v1.2.3 From 59d2cbb1fe4b8601d5cbd359c3806973eab6c62d Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 23 Nov 2017 10:00:40 +0100 Subject: Linux: Add memfd_create system call wrapper The system call is somewhat obscure because it is closely related to file descriptor sealing. However, it is also the recommended way to create alias mappings, which is why it has more general use. No emulation is provided. Except for the name of the /proc/self/fd links, it would be possible to implement an approximation using O_TMPFILE and tmpfs, but this does not appear to be worth the added complexity. Reviewed-by: Adhemerval Zanella Reviewed-by: Christian Brauner --- ChangeLog | 14 +++ NEWS | 2 + manual/llio.texi | 63 +++++++++++ sysdeps/unix/sysv/linux/Makefile | 2 +- sysdeps/unix/sysv/linux/Versions | 3 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/bits/mman-linux.h | 16 +++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/syscalls.list | 1 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 1 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 1 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 1 + sysdeps/unix/sysv/linux/tst-memfd_create.c | 121 +++++++++++++++++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 36 files changed, 249 insertions(+), 1 deletion(-) create mode 100644 sysdeps/unix/sysv/linux/tst-memfd_create.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index a84f970761..04fac09f2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2017-11-23 Florian Weimer + + Linux: Add memfd_create system call wrapper + * sysdeps/unix/sysv/linux/Makefile [misc] (tests): Add + tst-memfd_create. + * sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_GNU] + (MFD_CLOEXEC, MFD_ALLOW_SEALING): Define. + [__USE_GNU] (memfd_create): Declare. + * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Add memfd_create. + * sysdeps/unix/sysv/linux/syscalls.list (memfd_create): Add. + * sysdeps/unix/sysv/linux/tst-memfd_create.c: New file. + * sysdeps/unix/sysv/linux/**.abilist: Update. + * manual/llio.texi (Memory-mapped I/O): Document memfd_create. + 2017-11-22 Joseph Myers * localedata/gen-locale.sh: Fix typo in variable name. diff --git a/NEWS b/NEWS index 30ff04ea62..ab14d1eb1b 100644 --- a/NEWS +++ b/NEWS @@ -35,6 +35,8 @@ Major new features: are the same interfaces added in version 2.26 for some platforms where this format is supported but is not the format of long double. +* glibc now implements the memfd_create function on Linux. + Deprecated and removed features, and other changes affecting compatibility: * On GNU/Linux, the obsolete Linux constant PTRACE_SEIZE_DEVEL is no longer diff --git a/manual/llio.texi b/manual/llio.texi index 41c3e068d1..8b2f599c79 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -1801,6 +1801,69 @@ the given @var{name} previously created by @code{shm_open}. On failure @code{errno} is set. @end deftypefn +@deftypefun int memfd_create (const char *@var{name}, unsigned int @var{flags}) +@standards{Linux, sys/mman.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{@acsfd{}}} +The @code{memfd_create} function returns a file descriptor which can be +used to create memory mappings using the @code{mmap} function. It is +similar to the @code{shm_open} function in the sense that these mappings +are not backed by actual files. However, the descriptor returned by +@code{memfd_create} does not correspond to a named object; the +@var{name} argument is used for debugging purposes only (e.g., will +appear in @file{/proc}), and separate invocations of @code{memfd_create} +with the same @var{name} will not return descriptors for the same region +of memory. The descriptor can also be used to create alias mappings +within the same process. + +The descriptor initially refers to a zero-length file. Before mappings +can be created which are backed by memory, the file size needs to be +increased with the @code{ftruncate} function. @xref{File Size}. + +The @var{flags} argument can be a combination of the following flags: + +@vtable @code +@item MFD_CLOEXEC +@standards{Linux, sys/mman.h} +The descriptor is created with the @code{O_CLOEXEC} flag. + +@item MFD_ALLOW_SEALING +@standards{Linux, sys/mman.h} +The descriptor supports the addition of seals using the @code{fcntl} +function. + +@item MFD_HUGETLB +@standards{Linux, sys/mman.h} +This requests that mappings created using the returned file descriptor +use a larger page size. See @code{MAP_HUGETLB} above for details. + +This flag is incompatible with @code{MFD_ALLOW_SEALING}. +@end vtable + +@code{memfd_create} returns a file descriptor on success, and @math{-1} +on failure. + +The following @code{errno} error conditions are defined for this +function: + +@table @code +@item EINVAL +An invalid combination is specified in @var{flags}, or @var{name} is +too long. + +@item EFAULT +The @var{name} argument does not point to a string. + +@item EMFILE +The operation would exceed the file descriptor limit for this process. + +@item ENFILE +The operation would exceed the system-wide file descriptor limit. + +@item ENOMEM +There is not enough memory for the operation. +@end table +@end deftypefun + @node Waiting for I/O @section Waiting for Input or Output @cindex waiting for input or output diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index c6675b3aa5..c484d2688a 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -44,7 +44,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \ - test-errno-linux + test-errno-linux tst-memfd_create # Generate the list of SYS_* macros for the system calls (__NR_* # macros). The file syscall-names.list contains all possible system diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions index d3dbcde8c9..6f2fe516d7 100644 --- a/sysdeps/unix/sysv/linux/Versions +++ b/sysdeps/unix/sysv/linux/Versions @@ -166,6 +166,9 @@ libc { GLIBC_2.15 { process_vm_readv; process_vm_writev; } + GLIBC_2.27 { + memfd_create; + } GLIBC_PRIVATE { # functions used in other libraries __syscall_rt_sigqueueinfo; diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index ed598aedac..140ca28abc 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2106,6 +2106,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 4e57f36bcf..f698e1b2f4 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2017,6 +2017,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 5b70e1bfc9..8a8af3e3e4 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -107,6 +107,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h index 78c07c890a..1ffa5490af 100644 --- a/sysdeps/unix/sysv/linux/bits/mman-linux.h +++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h @@ -111,3 +111,19 @@ # define MCL_ONFAULT 4 /* Lock all pages that are faulted in. */ #endif + +#ifdef __USE_GNU +/* Flags for memfd_create. */ +# define MFD_CLOEXEC 1U +# define MFD_ALLOW_SEALING 2U +# define MFD_HUGETLB 4U + +__BEGIN_DECLS + +/* Create a new memory file descriptor. NAME is a name for debugging. + FLAGS is a combination of the MFD_* constants. */ +int memfd_create (const char *__name, unsigned int __flags) __THROW; + +__END_DECLS + +#endif /* __USE_GNU */ diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 6a2500a8b3..5b81a6cd7d 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1871,6 +1871,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 9ab4e3642a..51ead9e867 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2036,6 +2036,7 @@ GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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 81bb623fe8..78b4ee8d40 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1900,6 +1900,7 @@ GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 5a33b57390..d9c97779e4 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -108,6 +108,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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 50a86e74fa..4acbf7eeed 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1985,6 +1985,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 250ef305c3..93f02f08ce 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2106,3 +2106,4 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 87a1dc4ad7..795e85de70 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1960,6 +1960,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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 f2b35f250e..dc714057b7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1958,6 +1958,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index ade654dbea..ce7bc9b175 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1956,6 +1956,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 56032c3f82..3fdd85eace 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1951,6 +1951,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index c599dd9212..3e0bcb2a5c 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2147,3 +2147,4 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 385409aa6e..375c69d9d1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1989,6 +1989,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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 e99cb454b5..a88172a906 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1994,6 +1994,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 173672ab5e..fa026a332c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2201,3 +2201,4 @@ GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 8a654436ab..838f395d78 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -108,6 +108,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index dbd411ceb1..41b79c496a 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1989,6 +1989,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 5617784ca0..68251a0e69 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1890,6 +1890,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 0f840e6e88..bc1aae275e 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1875,6 +1875,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index bb7e1042c7..93e6d092ac 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1982,6 +1982,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 4053b0a51c..b11d6764d4 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1919,6 +1919,7 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 8bfb080d80..40c4fbb9ea 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -109,3 +109,4 @@ setns EXTRA setns i:ii setns process_vm_readv EXTRA process_vm_readv i:ipipii process_vm_readv process_vm_writev EXTRA process_vm_writev i:ipipii process_vm_writev +memfd_create EXTRA memfd_create i:si memfd_create diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 38a96d3a02..e9eb4ff7bd 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2113,3 +2113,4 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 572b917d7d..8f08e909cd 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2113,3 +2113,4 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 38a96d3a02..e9eb4ff7bd 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2113,3 +2113,4 @@ GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/tst-memfd_create.c b/sysdeps/unix/sysv/linux/tst-memfd_create.c new file mode 100644 index 0000000000..fd173ff71d --- /dev/null +++ b/sysdeps/unix/sysv/linux/tst-memfd_create.c @@ -0,0 +1,121 @@ +/* Test for the memfd_create system call. + Copyright (C) 2017 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 +#include +#include +#include +#include +#include +#include +#include + +/* Return true if the descriptor has the FD_CLOEXEC flag set. */ +static bool +is_cloexec (int fd) +{ + int flags = fcntl (fd, F_GETFD); + TEST_VERIFY (flags >= 0); + return flags & FD_CLOEXEC; +} + +/* Return the seals set on FD. */ +static int +get_seals (int fd) +{ + int flags = fcntl (fd, F_GET_SEALS); + TEST_VERIFY (flags >= 0); + return flags; +} + +/* Return true if the F_SEAL_SEAL flag is set on the descriptor. */ +static bool +is_sealed (int fd) +{ + return get_seals (fd) & F_SEAL_SEAL; +} + +static int +do_test (void) +{ + /* Initialized by the first call to memfd_create to 0 (memfd_create + unsupported) or 1 (memfd_create is implemented in the kernel). + Subsequent iterations check that the success/failure state is + consistent. */ + int supported = -1; + + for (int do_cloexec = 0; do_cloexec < 2; ++do_cloexec) + for (int do_sealing = 0; do_sealing < 2; ++do_sealing) + { + int flags = 0; + if (do_cloexec) + flags |= MFD_CLOEXEC; + if (do_sealing) + flags |= MFD_ALLOW_SEALING; + if (test_verbose > 0) + printf ("info: memfd_create with flags=0x%x\n", flags); + int fd = memfd_create ("tst-memfd_create", flags); + if (fd < 0) + { + if (errno == ENOSYS) + { + if (supported < 0) + { + printf ("warning: memfd_create is unsupported\n"); + supported = 0; + continue; + } + TEST_VERIFY (supported == 0); + continue; + } + else + FAIL_EXIT1 ("memfd_create: %m"); + } + if (supported < 0) + supported = 1; + TEST_VERIFY (supported > 0); + + char *fd_path = xasprintf ("/proc/self/fd/%d", fd); + char *link = xreadlink (fd_path); + if (test_verbose > 0) + printf ("info: memfd link: %s\n", link); + TEST_VERIFY (strcmp (link, "memfd:tst-memfd_create (deleted)")); + TEST_VERIFY (is_cloexec (fd) == do_cloexec); + TEST_VERIFY (is_sealed (fd) == !do_sealing); + if (do_sealing) + { + TEST_VERIFY (fcntl (fd, F_ADD_SEALS, F_SEAL_WRITE) == 0); + TEST_VERIFY (!is_sealed (fd)); + TEST_VERIFY (get_seals (fd) & F_SEAL_WRITE); + TEST_VERIFY (fcntl (fd, F_ADD_SEALS, F_SEAL_SEAL) == 0); + TEST_VERIFY (is_sealed (fd)); + } + xclose (fd); + free (fd_path); + free (link); + } + + if (supported == 0) + return EXIT_UNSUPPORTED; + return 0; +} + +#include diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index b83d25c2e3..0a4f7797ac 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1877,6 +1877,7 @@ GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create 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/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index cba1d59057..23f6a91429 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2120,3 +2120,4 @@ GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F +GLIBC_2.27 memfd_create F -- cgit v1.2.3 From a23aa5b7272ec4a04578d82399ec2bf536281119 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 27 Nov 2017 14:16:47 +0000 Subject: Add _Float64x function aliases. This patch continues filling out TS 18661-3 support by adding *f64x function aliases on platforms with _Float64x support. (It so happens the set of such platforms is exactly the same as the set of platforms with _Float128 support, although on x86_64, x86 and ia32 the _Float64x format is Intel extended rather than binary128.) The API provided corresponds exactly to that provided for _Float128, mostly coming from TS 18661-3. As these functions always alias those for another type (long double, _Float128 or both), __* function names are not provided, as in other cases of alias types. Given the preparation done in previous patches, this one just enables the feature via Makeconfig and bits/floatn.h, adds symbol versions, and updates documentation and ABI baselines. The symbol versions are present unconditionally as GLIBC_2.27 in the relevant Versions files, as it's OK for those to specify versions for functions that may not be present in some configurations; no additional complexity is needed unless in future some configuration gains support for this type that didn't have such support in 2.27. The Makeconfig additions for ia64 and x86 aren't strictly needed, as those configurations also get float64x-alias-fcts definitions from sysdeps/ieee754/float128/Makeconfig, but still seem appropriate given that _Float64x is not _Float128 for those configurations. A libm-test-ulps update for x86 is included. This is because bits/mathinline.h does not have _Float64x support added and for two functions the use of out-of-line functions results in increased ulps (ifloat64x shares ulps with ildouble / ifloat128 as appropriate). Given that we'd like generally to eliminate bits/mathinline.h optimizations, preferring to have such optimizations in GCC instead, it seems reasonable not to add such support there for new types. GCC support for _FloatN / _FloatNx built-in functions is limited, but has been improved in GCC 8, and at some point I hope the full set of libm built-in functions in GCC, and other optimizations with per-floating-type aspects, will be enabled for all _FloatN / _FloatNx types. Tested for x86_64 and x86, and with build-many-glibcs.py, with both GCC 6 and GCC 7. * sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable. * sysdeps/ieee754/float128/Makeconfig (float64x-alias-fcts): Likewise. * sysdeps/ieee754/ldbl-128/Makeconfig (float64x-alias-fcts): Likewise. * sysdeps/x86/Makeconfig: New file. * bits/floatn-common.h (__HAVE_FLOAT64X): Remove macro. (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. * bits/floatn.h (__HAVE_FLOAT64X): New macro. (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. * sysdeps/ia64/bits/floatn.h (__HAVE_FLOAT64X): Likewise. (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. * sysdeps/ieee754/ldbl-128/bits/floatn.h (__HAVE_FLOAT64X): Likewise. (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. * sysdeps/mips/ieee754/bits/floatn.h (__HAVE_FLOAT64X): Likewise. (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. * sysdeps/powerpc/bits/floatn.h (__HAVE_FLOAT64X): Likewise. (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. * sysdeps/x86/bits/floatn.h (__HAVE_FLOAT64X): Likewise. (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. * manual/math.texi (Mathematics): Document support for _Float64x. * math/Versions (GLIBC_2.27): Add _Float64x functions. * stdlib/Versions (GLIBC_2.27): Likewise. * wcsmbs/Versions (GLIBC_2.27): Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.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/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. * sysdeps/i386/fpu/libm-test-ulps: Likewise. * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise. --- ChangeLog | 57 +++++++++++ NEWS | 6 ++ bits/floatn-common.h | 7 -- bits/floatn.h | 11 +++ manual/math.texi | 6 +- math/Versions | 104 +++++++++++++++++++++ stdlib/Versions | 5 + sysdeps/i386/fpu/libm-test-ulps | 8 +- sysdeps/i386/i686/fpu/multiarch/libm-test-ulps | 8 +- sysdeps/ia64/Makeconfig | 2 + sysdeps/ia64/bits/floatn.h | 11 +++ sysdeps/ieee754/float128/Makeconfig | 1 + sysdeps/ieee754/ldbl-128/Makeconfig | 1 + sysdeps/ieee754/ldbl-128/bits/floatn.h | 11 +++ sysdeps/mips/ieee754/bits/floatn.h | 11 +++ sysdeps/powerpc/bits/floatn.h | 11 +++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 5 + sysdeps/unix/sysv/linux/aarch64/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/alpha/libc.abilist | 5 + sysdeps/unix/sysv/linux/alpha/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/i386/libc.abilist | 5 + sysdeps/unix/sysv/linux/i386/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/ia64/libc.abilist | 5 + sysdeps/unix/sysv/linux/ia64/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 104 +++++++++++++++++++++ .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 5 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 5 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 5 + .../sysv/linux/powerpc/powerpc64/libm-le.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 5 + sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 104 +++++++++++++++++++++ sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 5 + sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 104 +++++++++++++++++++++ sysdeps/x86/Makeconfig | 1 + sysdeps/x86/bits/floatn.h | 11 +++ wcsmbs/Versions | 4 + 44 files changed, 1571 insertions(+), 18 deletions(-) create mode 100644 sysdeps/x86/Makeconfig (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 1131526f8b..389e39ea39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,60 @@ +2017-11-27 Joseph Myers + + * sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable. + * sysdeps/ieee754/float128/Makeconfig (float64x-alias-fcts): + Likewise. + * sysdeps/ieee754/ldbl-128/Makeconfig (float64x-alias-fcts): + Likewise. + * sysdeps/x86/Makeconfig: New file. + * bits/floatn-common.h (__HAVE_FLOAT64X): Remove macro. + (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. + * bits/floatn.h (__HAVE_FLOAT64X): New macro. + (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. + * sysdeps/ia64/bits/floatn.h (__HAVE_FLOAT64X): Likewise. + (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. + * sysdeps/ieee754/ldbl-128/bits/floatn.h (__HAVE_FLOAT64X): + Likewise. + (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. + * sysdeps/mips/ieee754/bits/floatn.h (__HAVE_FLOAT64X): Likewise. + (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. + * sysdeps/powerpc/bits/floatn.h (__HAVE_FLOAT64X): Likewise. + (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. + * sysdeps/x86/bits/floatn.h (__HAVE_FLOAT64X): Likewise. + (__HAVE_FLOAT64X_LONG_DOUBLE): Likewise. + * manual/math.texi (Mathematics): Document support for _Float64x. + * math/Versions (GLIBC_2.27): Add _Float64x functions. + * stdlib/Versions (GLIBC_2.27): Likewise. + * wcsmbs/Versions (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.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/powerpc64/libc-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. + * sysdeps/i386/fpu/libm-test-ulps: Likewise. + * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise. + 2017-11-27 Andreas Schwab * elf/Makefile (dl-routines): Add dl-sort-maps. diff --git a/NEWS b/NEWS index ab14d1eb1b..33c62abf2f 100644 --- a/NEWS +++ b/NEWS @@ -35,6 +35,12 @@ Major new features: are the same interfaces added in version 2.26 for some platforms where this format is supported but is not the format of long double. +* On platforms with support for _Float64x (aarch64, alpha, i386, ia64, + mips64, powerpc64le, s390, sparc and x86_64), the math library now + implements interfaces for that type, as defined by ISO/IEC TS + 18661-3:2015. These are corresponding interfaces to those supported for + _Float128. + * glibc now implements the memfd_create function on Linux. Deprecated and removed features, and other changes affecting compatibility: diff --git a/bits/floatn-common.h b/bits/floatn-common.h index 2182c9d56a..4d38a910fc 100644 --- a/bits/floatn-common.h +++ b/bits/floatn-common.h @@ -34,7 +34,6 @@ #define __HAVE_FLOAT32 0 #define __HAVE_FLOAT64 0 #define __HAVE_FLOAT32X 0 -#define __HAVE_FLOAT64X 0 #define __HAVE_FLOAT128X 0 /* Defined to 1 if the corresponding __HAVE_ macro is 1 and the @@ -56,12 +55,6 @@ #define __HAVE_DISTINCT_FLOAT64X 0 #define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X -/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format - of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has - the format of _Float128, which must be different from that of long - double. */ -#define __HAVE_FLOAT64X_LONG_DOUBLE 0 - /* Defined to 1 if any _FloatN or _FloatNx types that are not ABI-distinct are however distinct types at the C language level (so for the purposes of __builtin_types_compatible_p and _Generic). */ diff --git a/bits/floatn.h b/bits/floatn.h index dc0cf93cbf..89114b5a70 100644 --- a/bits/floatn.h +++ b/bits/floatn.h @@ -25,6 +25,17 @@ from the default float, double and long double types in this glibc. */ #define __HAVE_DISTINCT_FLOAT128 0 +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X 0 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE 0 + #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 diff --git a/manual/math.texi b/manual/math.texi index e6aa342076..08e5dae471 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -66,9 +66,9 @@ these functions are described along with the @code{double}, @w{ISO/IEC TS 18661-3}, unless explicitly stated otherwise. Currently, support for @code{_Float@var{N}} or @code{_Float@var{N}x} -types is only provided for @code{_Float128} on powerpc64le (PowerPC -64-bits little-endian), x86_64, x86, ia64, aarch64, alpha, mips64, -s390 and sparc. +types is only provided for @code{_Float128} and @code{_Float64x} on +powerpc64le (PowerPC 64-bits little-endian), x86_64, x86, ia64, +aarch64, alpha, mips64, s390 and sparc. @menu * Mathematical Constants:: Precise numeric values for often-used diff --git a/math/Versions b/math/Versions index c10e32662d..d4018f6964 100644 --- a/math/Versions +++ b/math/Versions @@ -340,5 +340,109 @@ libm { %endif GLIBC_2.27 { expf; exp2f; logf; log2f; powf; + acosf64x; + acoshf64x; + asinf64x; + asinhf64x; + atan2f64x; + atanf64x; + atanhf64x; + cabsf64x; + cacosf64x; + cacoshf64x; + canonicalizef64x; + cargf64x; + casinf64x; + casinhf64x; + catanf64x; + catanhf64x; + cbrtf64x; + ccosf64x; + ccoshf64x; + ceilf64x; + cexpf64x; + cimagf64x; + clog10f64x; + clogf64x; + conjf64x; + copysignf64x; + cosf64x; + coshf64x; + cpowf64x; + cprojf64x; + crealf64x; + csinf64x; + csinhf64x; + csqrtf64x; + ctanf64x; + ctanhf64x; + erfcf64x; + erff64x; + exp10f64x; + exp2f64x; + expf64x; + expm1f64x; + fabsf64x; + fdimf64x; + floorf64x; + fmaf64x; + fmaxf64x; + fmaxmagf64x; + fminf64x; + fminmagf64x; + fmodf64x; + frexpf64x; + fromfpf64x; + fromfpxf64x; + getpayloadf64x; + hypotf64x; + ilogbf64x; + j0f64x; + j1f64x; + jnf64x; + ldexpf64x; + lgammaf64x; + lgammaf64x_r; + llogbf64x; + llrintf64x; + llroundf64x; + log10f64x; + log1pf64x; + log2f64x; + logbf64x; + logf64x; + lrintf64x; + lroundf64x; + modff64x; + nanf64x; + nearbyintf64x; + nextafterf64x; + nextdownf64x; + nextupf64x; + powf64x; + remainderf64x; + remquof64x; + rintf64x; + roundevenf64x; + roundf64x; + scalblnf64x; + scalbnf64x; + setpayloadf64x; + setpayloadsigf64x; + sincosf64x; + sinf64x; + sinhf64x; + sqrtf64x; + tanf64x; + tanhf64x; + tgammaf64x; + totalorderf64x; + totalordermagf64x; + truncf64x; + ufromfpf64x; + ufromfpxf64x; + y0f64x; + y1f64x; + ynf64x; } } diff --git a/stdlib/Versions b/stdlib/Versions index bf2172f926..66f6b35be9 100644 --- a/stdlib/Versions +++ b/stdlib/Versions @@ -129,6 +129,11 @@ libc { strtof128_l; } %endif + GLIBC_2.27 { + strfromf64x; + strtof64x; + strtof64x_l; + } GLIBC_PRIVATE { # functions which have an additional interface since they are # are cancelable. diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index be6aadf1c6..c0ed6a9497 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -222,7 +222,7 @@ float128: 4 idouble: 1 ifloat: 1 ifloat128: 4 -ildouble: 3 +ildouble: 4 ldouble: 4 Function: "atanh_towardzero": @@ -2488,7 +2488,7 @@ float128: 3 idouble: 1 ifloat: 1 ifloat128: 3 -ildouble: 4 +ildouble: 5 ldouble: 5 Function: "sinh_towardzero": @@ -2498,7 +2498,7 @@ float128: 3 idouble: 1 ifloat: 1 ifloat128: 3 -ildouble: 3 +ildouble: 4 ldouble: 4 Function: "sinh_upward": @@ -2508,7 +2508,7 @@ float128: 4 idouble: 1 ifloat: 1 ifloat128: 4 -ildouble: 4 +ildouble: 5 ldouble: 5 Function: "tan": diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps index 26d90ec636..e67837c5df 100644 --- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps +++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps @@ -222,7 +222,7 @@ float128: 4 idouble: 1 ifloat: 1 ifloat128: 4 -ildouble: 3 +ildouble: 4 ldouble: 4 Function: "atanh_towardzero": @@ -2472,7 +2472,7 @@ float128: 3 idouble: 1 ifloat: 1 ifloat128: 3 -ildouble: 4 +ildouble: 5 ldouble: 5 Function: "sinh_towardzero": @@ -2482,7 +2482,7 @@ float128: 3 idouble: 1 ifloat: 1 ifloat128: 3 -ildouble: 3 +ildouble: 4 ldouble: 4 Function: "sinh_upward": @@ -2492,7 +2492,7 @@ float128: 4 idouble: 1 ifloat: 1 ifloat128: 4 -ildouble: 4 +ildouble: 5 ldouble: 5 Function: "tan": diff --git a/sysdeps/ia64/Makeconfig b/sysdeps/ia64/Makeconfig index d1d3f6c95c..2f1abe868c 100644 --- a/sysdeps/ia64/Makeconfig +++ b/sysdeps/ia64/Makeconfig @@ -1,2 +1,4 @@ # ia64 does not provide crtbeginT.o, so use crtbegin.o. +prectorT = $(+prector) + +float64x-alias-fcts = yes diff --git a/sysdeps/ia64/bits/floatn.h b/sysdeps/ia64/bits/floatn.h index d0aeb3f99e..938a5ddac5 100644 --- a/sysdeps/ia64/bits/floatn.h +++ b/sysdeps/ia64/bits/floatn.h @@ -40,6 +40,17 @@ # define __HAVE_DISTINCT_FLOAT128 0 #endif +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X 1 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE 1 + #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 diff --git a/sysdeps/ieee754/float128/Makeconfig b/sysdeps/ieee754/float128/Makeconfig index 6c385d2df2..a493ff1d41 100644 --- a/sysdeps/ieee754/float128/Makeconfig +++ b/sysdeps/ieee754/float128/Makeconfig @@ -1,3 +1,4 @@ # Include this earlier so it can be used earlier in Makefiles, # and sysdep/ makefiles. float128-fcts = yes +float64x-alias-fcts = yes diff --git a/sysdeps/ieee754/ldbl-128/Makeconfig b/sysdeps/ieee754/ldbl-128/Makeconfig index 1f8e2562f0..ca17c1b12a 100644 --- a/sysdeps/ieee754/ldbl-128/Makeconfig +++ b/sysdeps/ieee754/ldbl-128/Makeconfig @@ -1,3 +1,4 @@ # Include this earlier so it can be used earlier in Makefiles, # and sysdep/ makefiles. float128-alias-fcts = yes +float64x-alias-fcts = yes diff --git a/sysdeps/ieee754/ldbl-128/bits/floatn.h b/sysdeps/ieee754/ldbl-128/bits/floatn.h index 01009f0deb..7489bcf204 100644 --- a/sysdeps/ieee754/ldbl-128/bits/floatn.h +++ b/sysdeps/ieee754/ldbl-128/bits/floatn.h @@ -39,6 +39,17 @@ from the default float, double and long double types in this glibc. */ #define __HAVE_DISTINCT_FLOAT128 0 +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X __HAVE_FLOAT128 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 + #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 diff --git a/sysdeps/mips/ieee754/bits/floatn.h b/sysdeps/mips/ieee754/bits/floatn.h index 4131991ded..ab74ccfc70 100644 --- a/sysdeps/mips/ieee754/bits/floatn.h +++ b/sysdeps/mips/ieee754/bits/floatn.h @@ -39,6 +39,17 @@ from the default float, double and long double types in this glibc. */ #define __HAVE_DISTINCT_FLOAT128 0 +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X __HAVE_FLOAT128 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE __HAVE_FLOAT128 + #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 diff --git a/sysdeps/powerpc/bits/floatn.h b/sysdeps/powerpc/bits/floatn.h index 09a1c30f5e..e2595e70be 100644 --- a/sysdeps/powerpc/bits/floatn.h +++ b/sysdeps/powerpc/bits/floatn.h @@ -40,6 +40,17 @@ # define __HAVE_DISTINCT_FLOAT128 0 #endif +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X __HAVE_FLOAT128 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE 0 + #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 140ca28abc..af60b4f577 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2108,7 +2108,12 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index b21d136e9d..4174e64e6e 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -462,111 +462,215 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index f698e1b2f4..98c6a17ae1 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2019,10 +2019,15 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 3ba02a1966..75bd55cbb9 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -472,114 +472,218 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf64x F GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __c1_cabsf F GLIBC_2.3.4 __c1_cacosf F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 51ead9e867..1526778ec2 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2037,6 +2037,11 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 1a7e6bf449..274ca86606 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -612,9 +612,113 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff64x F +GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 78b4ee8d40..132200f2bd 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1901,6 +1901,11 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index 7e15735eae..28a38c6006 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -541,9 +541,113 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff64x F +GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 92a46b6b30..9acc4cb41c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -464,112 +464,216 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index ce7bc9b175..6ec940ee99 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1958,10 +1958,15 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 3fdd85eace..71062b0eed 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1953,10 +1953,15 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index fa026a332c..a00f9042f8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2202,3 +2202,8 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index 723be46c20..1d86c798b9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -606,8 +606,112 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff64x F +GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 41b79c496a..b7dbfaa23e 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1991,10 +1991,15 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index f3c4f77264..05f32b9f48 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -462,114 +462,218 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 68251a0e69..1175cd7d13 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1892,10 +1892,15 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index eb113fd37c..1912fe6df5 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -460,114 +460,218 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 93e6d092ac..899d5ff604 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1984,10 +1984,15 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 152a83a869..5b08525e9b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -469,114 +469,218 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index b11d6764d4..fbe0e51f62 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1921,10 +1921,15 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index ff6962d7e7..7065b81c42 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -463,112 +463,216 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 0a4f7797ac..9c4b53b416 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1878,6 +1878,11 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l 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/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index 201c2ab1b1..8a35d3c494 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -601,9 +601,113 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff64x F +GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 23f6a91429..7a179a5ff6 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2121,3 +2121,8 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof64x F +GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof64x F +GLIBC_2.27 wcstof64x_l F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 10e389a96a..f18420484c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -600,8 +600,112 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf64x F +GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff64x F +GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf64x F diff --git a/sysdeps/x86/Makeconfig b/sysdeps/x86/Makeconfig new file mode 100644 index 0000000000..d701f8294d --- /dev/null +++ b/sysdeps/x86/Makeconfig @@ -0,0 +1 @@ +float64x-alias-fcts = yes diff --git a/sysdeps/x86/bits/floatn.h b/sysdeps/x86/bits/floatn.h index 5ca6bba672..9870bbc6e2 100644 --- a/sysdeps/x86/bits/floatn.h +++ b/sysdeps/x86/bits/floatn.h @@ -42,6 +42,17 @@ # define __HAVE_DISTINCT_FLOAT128 0 #endif +/* Defined to 1 if the current compiler invocation provides a + floating-point type with the right format for _Float64x, and this + glibc includes corresponding *f64x interfaces for it. */ +#define __HAVE_FLOAT64X 1 + +/* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format + of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has + the format of _Float128, which must be different from that of long + double. */ +#define __HAVE_FLOAT64X_LONG_DOUBLE 1 + #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 diff --git a/wcsmbs/Versions b/wcsmbs/Versions index df6e7cd1af..e0f7a77b1e 100644 --- a/wcsmbs/Versions +++ b/wcsmbs/Versions @@ -41,4 +41,8 @@ libc { wcstof128_l; } %endif + GLIBC_2.27 { + wcstof64x; + wcstof64x_l; + } } -- cgit v1.2.3 From 4bab02240e9076b49702b30bb8a1d23a0afe58cb Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 27 Nov 2017 17:14:29 +0100 Subject: Implement the mlock2 function Fallback using mlock is provided if the flags argument is zero. Reviewed-by: Adhemerval Zanella --- ChangeLog | 13 +++++ NEWS | 2 +- manual/memory.texi | 32 ++++++++++- sysdeps/unix/sysv/linux/Makefile | 4 +- sysdeps/unix/sysv/linux/Versions | 1 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/bits/mman-shared.h | 9 +++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/kernel-features.h | 4 ++ sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/mlock2.c | 40 +++++++++++++ sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 1 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 1 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 1 + sysdeps/unix/sysv/linux/tst-mlock2.c | 66 ++++++++++++++++++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 37 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/mlock2.c create mode 100644 sysdeps/unix/sysv/linux/tst-mlock2.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 389e39ea39..b7779c6b59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2017-11-27 Florian Weimer + + * sysdeps/unix/sysv/linux/mlock2.c: New file. + * sysdeps/unix/sysv/linux/tst-mlock2.c: Likewise. + * sysdeps/unix/sysv/linux/Makefile (routines): Add mlock2. + (tests): Add tst-mlock2. + * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Export mlock2. + * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_MLOCK2) + [__LINUX_KERNEL_VERSION >= 4.4]: Define. + * sysdeps/unix/sysv/linux/libc**.abilist: Update. + * manual/memory.texi (Page Lock Functions): Move @end deftypefun + for mlock. Document mlock2. + 2017-11-27 Joseph Myers * sysdeps/ia64/Makeconfig (float64x-alias-fcts): New variable. diff --git a/NEWS b/NEWS index 33c62abf2f..f3fdf9aec5 100644 --- a/NEWS +++ b/NEWS @@ -41,7 +41,7 @@ Major new features: 18661-3:2015. These are corresponding interfaces to those supported for _Float128. -* glibc now implements the memfd_create function on Linux. +* glibc now implements the memfd_create and mlock2 functions on Linux. Deprecated and removed features, and other changes affecting compatibility: diff --git a/manual/memory.texi b/manual/memory.texi index 3f5dd90260..1b431bf5da 100644 --- a/manual/memory.texi +++ b/manual/memory.texi @@ -3337,6 +3337,36 @@ The calling process is not superuser. The kernel does not provide @code{mlock} capability. @end table +@end deftypefun + +@deftypefun int mlock2 (const void *@var{addr}, size_t @var{len}, unsigned int @var{flags}) +@standards{Linux, sys/mman.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + +This function is similar to @code{mlock}. If @var{flags} is zero, a +call to @code{mlock2} behaves exactly as the equivalent call to @code{mlock}. + +The @var{flags} argument must be a combination of zero or more of the +following flags: + +@vtable @code +@item MLOCK_ONFAULT +@standards{Linux, sys/mman.h} +Only those pages in the specified address range which are already in +memory are locked immediately. Additional pages in the range are +automatically locked in case of a page fault and allocation of memory. +@end vtable + +Like @code{mlock}, @code{mlock2} returns zero on success and @code{-1} +on failure, setting @code{errno} accordingly. Additional @code{errno} +values defined for @code{mlock2} are: + +@table @code +@item EINVAL +The specified (non-zero) @var{flags} argument is not supported by this +system. +@end table +@end deftypefun You can lock @emph{all} a process' memory with @code{mlockall}. You unlock memory with @code{munlock} or @code{munlockall}. @@ -3346,8 +3376,6 @@ To avoid all page faults in a C program, you have to use from the C code, e.g. the stack and automatic variables, and you wouldn't know what address to tell @code{mlock}. -@end deftypefun - @deftypefun int munlock (const void *@var{addr}, size_t @var{len}) @standards{POSIX.1b, sys/mman.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 58ce07b526..478f7e3d4d 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -18,7 +18,7 @@ sysdep_routines += clone umount umount2 readahead \ setfsuid setfsgid epoll_pwait signalfd \ eventfd eventfd_read eventfd_write prlimit \ personality epoll_wait tee vmsplice splice \ - open_by_handle_at + open_by_handle_at mlock2 CFLAGS-gethostid.c = -fexceptions CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables @@ -44,7 +44,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \ - test-errno-linux tst-memfd_create + test-errno-linux tst-memfd_create tst-mlock2 # Generate the list of SYS_* macros for the system calls (__NR_* # macros). The file syscall-names.list contains all possible system diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions index 6f2fe516d7..e799b62285 100644 --- a/sysdeps/unix/sysv/linux/Versions +++ b/sysdeps/unix/sysv/linux/Versions @@ -168,6 +168,7 @@ libc { } GLIBC_2.27 { memfd_create; + mlock2; } GLIBC_PRIVATE { # functions used in other libraries diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index af60b4f577..3448d62cee 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2107,6 +2107,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 98c6a17ae1..d064f5445e 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2018,6 +2018,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 8a8af3e3e4..a5ce7964d0 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -108,6 +108,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h index 5bbcbbc14a..bee99c2384 100644 --- a/sysdeps/unix/sysv/linux/bits/mman-shared.h +++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h @@ -28,12 +28,21 @@ # define MFD_HUGETLB 4U # endif +/* Flags for mlock2. */ +# ifndef MLOCK_ONFAULT +# define MLOCK_ONFAULT 1U +# endif + __BEGIN_DECLS /* Create a new memory file descriptor. NAME is a name for debugging. FLAGS is a combination of the MFD_* constants. */ int memfd_create (const char *__name, unsigned int __flags) __THROW; +/* Lock pages from ADDR (inclusive) to ADDR + LENGTH (exclusive) into + memory. FLAGS is a combination of the MLOCK_* flags above. */ +int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW; + __END_DECLS #endif /* __USE_GNU */ diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 5b81a6cd7d..69ddf15361 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1872,6 +1872,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 1526778ec2..a140edd4a3 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2037,6 +2037,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 132200f2bd..178c0a45ec 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1901,6 +1901,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 2e1fe6597a..59b613377f 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -107,3 +107,7 @@ #if __LINUX_KERNEL_VERSION >= 0x031300 # define __ASSUME_EXECVEAT 1 #endif + +#if __LINUX_KERNEL_VERSION >= 0x040400 +# define __ASSUME_MLOCK2 1 +#endif diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index d9c97779e4..01d10d907c 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -109,6 +109,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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 4acbf7eeed..3ad08c20bf 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1986,6 +1986,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 93f02f08ce..6bd7be1929 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2107,3 +2107,4 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 795e85de70..9b1e890eda 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1961,6 +1961,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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 dc714057b7..3eb5b66f8b 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1959,6 +1959,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 6ec940ee99..543a725114 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1957,6 +1957,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 71062b0eed..a9198a3936 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1952,6 +1952,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/mlock2.c b/sysdeps/unix/sysv/linux/mlock2.c new file mode 100644 index 0000000000..1686ab9b85 --- /dev/null +++ b/sysdeps/unix/sysv/linux/mlock2.c @@ -0,0 +1,40 @@ +/* Wrapper for the mlock2 system call with fallback to mlock. + Copyright (C) 2017 Free Software Foundation, Inc. + + 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 + +int +mlock2 (const void *addr, size_t length, unsigned int flags) +{ +#ifdef __ASSUME_MLOCK2 + return INLINE_SYSCALL_CALL (mlock2, addr, length, flags); +#else + if (flags == 0) + return INLINE_SYSCALL_CALL (mlock, addr, length); +# ifdef __NR_mlock2 + int ret = INLINE_SYSCALL_CALL (mlock2, addr, length, flags); + if (ret == 0 || errno != ENOSYS) + return ret; +# endif /* __NR_mlock2 */ + /* Treat the missing system call as an invalid (non-zero) flag + argument. */ + __set_errno (EINVAL); + return -1; +#endif /* __ASSUME_MLOCK2 */ +} diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 3e0bcb2a5c..afacf1ff2d 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2148,3 +2148,4 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 375c69d9d1..48af097b6a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1990,6 +1990,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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 a88172a906..e30535dac9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1995,6 +1995,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index a00f9042f8..f522700890 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2202,6 +2202,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 838f395d78..d3092afd25 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -109,6 +109,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index b7dbfaa23e..752176108e 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1990,6 +1990,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 1175cd7d13..b6d4c73635 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1891,6 +1891,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index bc1aae275e..1ee21fe8e8 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1876,6 +1876,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 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/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 899d5ff604..e652191c60 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1983,6 +1983,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index fbe0e51f62..37cf8713a5 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1920,6 +1920,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index e9eb4ff7bd..57427eb3ee 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2114,3 +2114,4 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 8f08e909cd..321f65c600 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2114,3 +2114,4 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index e9eb4ff7bd..57427eb3ee 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2114,3 +2114,4 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F diff --git a/sysdeps/unix/sysv/linux/tst-mlock2.c b/sysdeps/unix/sysv/linux/tst-mlock2.c new file mode 100644 index 0000000000..53c435a12a --- /dev/null +++ b/sysdeps/unix/sysv/linux/tst-mlock2.c @@ -0,0 +1,66 @@ +/* Test the mlock2 function. + Copyright (C) 2017 Free Software Foundation, Inc. + + 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 +#include + +/* Allocate a page using mmap. */ +static void * +get_page (void) +{ + return xmmap (NULL, 1, PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1); +} + +static int +do_test (void) +{ + /* Current kernels have a small reserve of locked memory, so this + test does not need any privileges to run. */ + + void *page = get_page (); + if (mlock (page, 1) != 0) + FAIL_EXIT1 ("mlock: %m\n"); + xmunmap (page, 1); + + page = get_page (); + if (mlock2 (page, 1, 0) != 0) + /* Should be implemented using mlock if necessary. */ + FAIL_EXIT1 ("mlock2 (0): %m\n"); + xmunmap (page, 1); + + page = get_page (); + int ret = mlock2 (page, 1, MLOCK_ONFAULT); + if (ret != 0) + { + TEST_VERIFY (ret == -1); + if (errno != EINVAL) + /* EINVAL means the system does not support the mlock2 system + call. */ + FAIL_EXIT1 ("mlock2 (0): %m\n"); + else + puts ("warning: mlock2 system call not supported"); + } + xmunmap (page, 1); + + return 0; +} + +#include diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 9c4b53b416..f26c8b99d5 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1878,6 +1878,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 7a179a5ff6..2a6057154b 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2121,6 +2121,7 @@ GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F +GLIBC_2.27 mlock2 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F -- cgit v1.2.3 From 446d22e91d3113be57a4b0d1151cf337458c3bec Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Tue, 5 Dec 2017 15:20:30 +0100 Subject: Linux: Implement interfaces for memory protection keys This adds system call wrappers for pkey_alloc, pkey_free, pkey_mprotect, and x86-64 implementations of pkey_get and pkey_set, which abstract over the PKRU CPU register and hide the actual number of memory protection keys supported by the CPU. pkey_mprotect with a -1 key is implemented using mprotect, so it will work even if the kernel does not support the pkey_mprotect system call. The system call wrapers use unsigned int instead of unsigned long for parameters, so that no special treatment for x32 is needed. The flags argument is currently unused, and the access rights bit mask is limited to two bits by the current PKRU register layout anyway. Reviewed-by: Adhemerval Zanella --- ChangeLog | 34 ++ NEWS | 4 + manual/memory.texi | 232 ++++++++++++ support/Makefile | 6 +- support/xraise.c | 27 ++ support/xsigaction.c | 27 ++ support/xsignal.c | 29 ++ support/xsignal.h | 8 + support/xsysconf.c | 36 ++ support/xunistd.h | 1 + sysdeps/unix/sysv/linux/Makefile | 6 +- sysdeps/unix/sysv/linux/Versions | 1 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 5 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 5 + sysdeps/unix/sysv/linux/arm/libc.abilist | 5 + sysdeps/unix/sysv/linux/bits/mman-shared.h | 28 ++ sysdeps/unix/sysv/linux/bits/siginfo-consts.h | 6 +- sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 + sysdeps/unix/sysv/linux/i386/libc.abilist | 5 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 5 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 5 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 5 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 5 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 5 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 5 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 5 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 5 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 + sysdeps/unix/sysv/linux/pkey_get.c | 26 ++ sysdeps/unix/sysv/linux/pkey_mprotect.c | 37 ++ sysdeps/unix/sysv/linux/pkey_set.c | 26 ++ .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 5 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 5 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 5 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 5 + sysdeps/unix/sysv/linux/sh/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 5 + sysdeps/unix/sysv/linux/syscalls.list | 2 + .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 5 + .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 5 + sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 5 + sysdeps/unix/sysv/linux/tst-pkey.c | 399 +++++++++++++++++++++ sysdeps/unix/sysv/linux/x86/arch-pkey.h | 40 +++ sysdeps/unix/sysv/linux/x86/pkey_get.c | 33 ++ sysdeps/unix/sysv/linux/x86/pkey_set.c | 35 ++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 5 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 5 + 50 files changed, 1179 insertions(+), 4 deletions(-) create mode 100644 support/xraise.c create mode 100644 support/xsigaction.c create mode 100644 support/xsignal.c create mode 100644 support/xsysconf.c create mode 100644 sysdeps/unix/sysv/linux/pkey_get.c create mode 100644 sysdeps/unix/sysv/linux/pkey_mprotect.c create mode 100644 sysdeps/unix/sysv/linux/pkey_set.c create mode 100644 sysdeps/unix/sysv/linux/tst-pkey.c create mode 100644 sysdeps/unix/sysv/linux/x86/arch-pkey.h create mode 100644 sysdeps/unix/sysv/linux/x86/pkey_get.c create mode 100644 sysdeps/unix/sysv/linux/x86/pkey_set.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 50ae82ba1d..333012ba81 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,37 @@ +2017-12-05 Florian Weimer + + Linux: Implement interfaces for memory protection keys + * support/Makefile (libsupport-routines): Add xraise, xsigaction, + xsignal, xsysconf. + * support/xsignal.h (xraise, xsignal, xsigaction): Declare. + * support/xunistd.h (xsysconf): Declare. + * support/xraise.c: New file. + * support/xsigaction.c: Likewise. + * support/xsignal.c: Likewise. + * support/xsysconf.c: Likewise. + * sysdeps/unix/sysv/linux/Makefile [misc] (routines): Add + pkey_set, pkey_get, pkey_mprotect. + [misc] (tests): Add tst-pkey. + (tst-pkey): Link with -lpthread. + * sysdeps/unix/sysv/linux/Versions (GLIBC_2.27): Add pkey_alloc, + pkey_free, pkey_set, pkey_get, pkey_mprotect. + * sysdeps/unix/sysv/linux/bits/mman-linux.h (PKEY_DISABLE_ACCESS) + (PKEY_DISABLE_WRITE): Define. + (pkey_alloc, pkey_free, pkey_set, pkey_get, pkey_mprotect): + Declare. + * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (SEGV_BNDERR) + (SEGV_PKUERR): Add. + * sysdeps/unix/sysv/linux/pkey_get.c: New file. + * sysdeps/unix/sysv/linux/pkey_set.c: Likewise. + * sysdeps/unix/sysv/linux/pkey_mprotect.c: Likewise. + * sysdeps/unix/sysv/linux/syscalls.list (pkey_alloc, pkey_free): + Add. + * sysdeps/unix/sysv/linux/tst-pkey.c: New file. + * sysdeps/unix/sysv/linux/x86/arch-pkey.h: Likewise. + * sysdeps/unix/sysv/linux/x86/pkey_get.c: Likewise. + * sysdeps/unix/sysv/linux/x86/pkey_set.c: Likewise. + * sysdeps/unix/sysv/linux/**.abilist: Update. + 2017-12-05 Florian Weimer * support/tst-test_compare.c (subprocess): Use long long instead diff --git a/NEWS b/NEWS index 10f695aab1..6b1a2f92f7 100644 --- a/NEWS +++ b/NEWS @@ -43,6 +43,10 @@ Major new features: * glibc now implements the memfd_create and mlock2 functions on Linux. +* Support for memory protection keys was added. The header now + declares the functions pkey_alloc, pkey_free, pkey_mprotect, pkey_set, + pkey_get. + Deprecated and removed features, and other changes affecting compatibility: * On GNU/Linux, the obsolete Linux constant PTRACE_SEIZE_DEVEL is no longer diff --git a/manual/memory.texi b/manual/memory.texi index 1b431bf5da..b95f6aa1b9 100644 --- a/manual/memory.texi +++ b/manual/memory.texi @@ -3171,6 +3171,238 @@ process memory, no matter how it was allocated. However, portable use of the function requires that it is only used with memory regions returned by @code{mmap} or @code{mmap64}. +@subsection Memory Protection Keys + +@cindex memory protection key +@cindex protection key +@cindex MPK +On some systems, further restrictions can be added to specific pages +using @dfn{memory protection keys}. These restrictions work as follows: + +@itemize @bullet +@item +All memory pages are associated with a protection key. The default +protection key does not cause any additional protections to be applied +during memory accesses. New keys can be allocated with the +@code{pkey_alloc} function, and applied to pages using +@code{pkey_mprotect}. + +@item +Each thread has a set of separate access right restriction for each +protection key. These access rights can be manipulated using the +@code{pkey_set} and @code{pkey_get} functions. + +@item +During a memory access, the system obtains the protection key for the +accessed page and uses that to determine the applicable access rights, +as configured for the current thread. If the access is restricted, a +segmentation fault is the result ((@pxref{Program Error Signals}). +These checks happen in addition to the @code{PROT_}* protection flags +set by @code{mprotect} or @code{pkey_mprotect}. +@end itemize + +New threads and subprocesses inherit the access rights of the current +thread. If a protection key is allocated subsequently, existing threads +(except the current) will use an unspecified system default for the +access rights associated with newly allocated keys. + +Upon entering a signal handler, the system resets the access rights of +the current thread so that pages with the default key can be accessed, +but the access rights for other protection keys are unspecified. + +Applications are expected to allocate a key once using +@code{pkey_alloc}, and apply the key to memory regions which need +special protection with @code{pkey_mprotect}: + +@smallexample + int key = pkey_alloc (0, PKEY_DISABLE_ACCESS); + if (key < 0) + /* Perform error checking, including fallback for lack of support. */ + ...; + + /* Apply the key to a special memory region used to store critical + data. */ + if (pkey_mprotect (region, region_length, + PROT_READ | PROT_WRITE, key) < 0) + ...; /* Perform error checking (generally fatal). */ +@end smallexample + +If the key allocation fails due to lack of support for memory protection +keys, the @code{pkey_mprotect} call can usually be skipped. In this +case, the region will not be protected by default. It is also possible +to call @code{pkey_mprotect} with a key value of @math{-1}, in which +case it will behave in the same way as @code{mprotect}. + +After key allocation assignment to memory pages, @code{pkey_set} can be +used to temporarily acquire access to the memory region and relinquish +it again: + +@smallexample + if (key >= 0 && pkey_set (key, 0) < 0) + ...; /* Perform error checking (generally fatal). */ + /* At this point, the current thread has read-write access to the + memory region. */ + ... + /* Revoke access again. */ + if (key >= 0 && pkey_set (key, PKEY_DISABLE_ACCESS) < 0) + ...; /* Perform error checking (generally fatal). */ +@end smallexample + +In this example, a negative key value indicates that no key had been +allocated, which means that the system lacks support for memory +protection keys and it is not necessary to change the the access rights +of the current thread (because it always has access). + +Compared to using @code{mprotect} to change the page protection flags, +this approach has two advantages: It is thread-safe in the sense that +the access rights are only changed for the current thread, so another +thread which changes its own access rights concurrently to gain access +to the mapping will not suddenly see its access rights revoked. And +@code{pkey_set} typically does not involve a call into the kernel and a +context switch, so it is more efficient. + +@deftypefun int pkey_alloc (unsigned int @var{flags}, unsigned int @var{restrictions}) +@standards{Linux, sys/mman.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@acucorrupt{}}} +Allocate a new protection key. The @var{flags} argument is reserved and +must be zero. The @var{restrictions} argument specifies access rights +which are applied to the current thread (as if with @code{pkey_set} +below). Access rights of other threads are not changed. + +The function returns the new protection key, a non-negative number, or +@math{-1} on error. + +The following @code{errno} error conditions are defined for this +function: + +@table @code +@item ENOSYS +The system does not implement memory protection keys. + +@item EINVAL +The @var{flags} argument is not zero. + +The @var{restrictions} argument is invalid. + +The system does not implement memory protection keys or runs in a mode +in which memory protection keys are disabled. + +@item ENOSPC +All available protection keys already have been allocated. +@end table +@end deftypefun + +@deftypefun int pkey_free (int @var{key}) +@standards{Linux, sys/mman.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +Deallocate the protection key, so that it can be reused by +@code{pkey_alloc}. + +Calling this function does not change the access rights of the freed +protection key. The calling thread and other threads may retain access +to it, even if it is subsequently allocated again. For this reason, it +is not recommended to call the @code{pkey_free} function. + +@table @code +@item ENOSYS +The system does not implement memory protection keys. + +@item EINVAL +The @var{key} argument is not a valid protection key. +@end table +@end deftypefun + +@deftypefun int pkey_mprotect (void *@var{address}, size_t @var{length}, int @var{protection}, int @var{key}) +@standards{Linux, sys/mman.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +Similar to @code{mprotect}, but also set the memory protection key for +the memory region to @code{key}. + +Some systems use memory protection keys to emulate certain combinations +of @var{protection} flags. Under such circumstances, specifying an +explicit protection key may behave as if additional flags have been +specified in @var{protection}, even though this does not happen with the +default protection key. For example, some systems can support +@code{PROT_EXEC}-only mappings only with a default protection key, and +memory with a key which was allocated using @code{pkey_alloc} will still +be readable if @code{PROT_EXEC} is specified without @code{PROT_READ}. + +If @var{key} is @math{-1}, the default protection key is applied to the +mapping, just as if @code{mprotect} had been called. + +The @code{pkey_mprotect} function returns @math{0} on success and +@math{-1} on failure. The same @code{errno} error conditions as for +@code{mprotect} are defined for this function, with the following +addition: + +@table @code +@item EINVAL +The @var{key} argument is not @math{-1} or a valid memory protection +key allocated using @code{pkey_alloc}. + +@item ENOSYS +The system does not implement memory protection keys, and @var{key} is +not @math{-1}. +@end table +@end deftypefun + +@deftypefun int pkey_set (int @var{key}, unsigned int @var{rights}) +@standards{Linux, sys/mman.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +Change the access rights of the current thread for memory pages with the +protection key @var{key} to @var{rights}. If @var{rights} is zero, no +additional access restrictions on top of the page protection flags are +applied. Otherwise, @var{rights} is a combination of the following +flags: + +@vtable @code +@item PKEY_DISABLE_WRITE +@standards{Linux, sys/mman.h} +Subsequent attempts to write to memory with the specified protection +key will fault. + +@item PKEY_DISABLE_ACCESS +@standards{Linux, sys/mman.h} +Subsequent attempts to write to or read from memory with the specified +protection key will fault. +@end vtable + +Operations not specified as flags are not restricted. In particular, +this means that the memory region will remain executable if it was +mapped with the @code{PROT_EXEC} protection flag and +@code{PKEY_DISABLE_ACCESS} has been specified. + +Calling the @code{pkey_set} function with a protection key which was not +allocated by @code{pkey_alloc} results in undefined behavior. This +means that calling this function on systems which do not support memory +protection keys is undefined. + +The @code{pkey_set} function returns @math{0} on success and @math{-1} +on failure. + +The following @code{errno} error conditions are defined for this +function: + +@table @code +@item EINVAL +The system does not support the access rights restrictions expressed in +the @var{rights} argument. +@end table +@end deftypefun + +@deftypefun int pkey_get (int @var{key}) +@standards{Linux, sys/mman.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +Return the access rights of the current thread for memory pages with +protection key @var{key}. The return value is zero or a combination of +the @code{PKEY_DISABLE_}* flags; see the @code{pkey_set} function. + +Calling the @code{pkey_get} function with a protection key which was not +allocated by @code{pkey_alloc} results in undefined behavior. This +means that calling this function on systems which do not support memory +protection keys is undefined. +@end deftypefun + @node Locking Pages @section Locking Pages @cindex locking pages diff --git a/support/Makefile b/support/Makefile index bb81825fc2..bfde79333e 100644 --- a/support/Makefile +++ b/support/Makefile @@ -87,8 +87,8 @@ libsupport-routines = \ xpthread_attr_destroy \ xpthread_attr_init \ xpthread_attr_setdetachstate \ - xpthread_attr_setstacksize \ xpthread_attr_setguardsize \ + xpthread_attr_setstacksize \ xpthread_barrier_destroy \ xpthread_barrier_init \ xpthread_barrier_wait \ @@ -119,14 +119,18 @@ libsupport-routines = \ xpthread_sigmask \ xpthread_spin_lock \ xpthread_spin_unlock \ + xraise \ xreadlink \ xrealloc \ xrecvfrom \ xsendto \ xsetsockopt \ + xsigaction \ + xsignal \ xsocket \ xstrdup \ xstrndup \ + xsysconf \ xunlink \ xwaitpid \ xwrite \ diff --git a/support/xraise.c b/support/xraise.c new file mode 100644 index 0000000000..9126c6c3ea --- /dev/null +++ b/support/xraise.c @@ -0,0 +1,27 @@ +/* Error-checking wrapper for raise. + Copyright (C) 2017 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 + +void +xraise (int sig) +{ + if (raise (sig) != 0) + FAIL_EXIT1 ("raise (%d): %m" , sig); +} diff --git a/support/xsigaction.c b/support/xsigaction.c new file mode 100644 index 0000000000..b74c69afae --- /dev/null +++ b/support/xsigaction.c @@ -0,0 +1,27 @@ +/* Error-checking wrapper for sigaction. + Copyright (C) 2017 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 + +void +xsigaction (int sig, const struct sigaction *newact, struct sigaction *oldact) +{ + if (sigaction (sig, newact, oldact)) + FAIL_EXIT1 ("sigaction (%d): %m" , sig); +} diff --git a/support/xsignal.c b/support/xsignal.c new file mode 100644 index 0000000000..22a1dd74a7 --- /dev/null +++ b/support/xsignal.c @@ -0,0 +1,29 @@ +/* Error-checking wrapper for signal. + Copyright (C) 2017 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 + +sighandler_t +xsignal (int sig, sighandler_t handler) +{ + sighandler_t result = signal (sig, handler); + if (result == SIG_ERR) + FAIL_EXIT1 ("signal (%d, %p): %m", sig, handler); + return result; +} diff --git a/support/xsignal.h b/support/xsignal.h index 3dc0d9d5ce..3087ed0082 100644 --- a/support/xsignal.h +++ b/support/xsignal.h @@ -24,6 +24,14 @@ __BEGIN_DECLS +/* The following functions call the corresponding libc functions and + terminate the process on error. */ + +void xraise (int sig); +sighandler_t xsignal (int sig, sighandler_t handler); +void xsigaction (int sig, const struct sigaction *newact, + struct sigaction *oldact); + /* The following functions call the corresponding libpthread functions and terminate the process on error. */ diff --git a/support/xsysconf.c b/support/xsysconf.c new file mode 100644 index 0000000000..15ab1e26c4 --- /dev/null +++ b/support/xsysconf.c @@ -0,0 +1,36 @@ +/* Error-checking wrapper for sysconf. + Copyright (C) 2017 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 + +long +xsysconf (int name) +{ + /* Detect errors by a changed errno value, in case -1 is a valid + value. Make sure that the caller does not see the zero value for + errno. */ + int old_errno = errno; + errno = 0; + long result = sysconf (name); + if (errno != 0) + FAIL_EXIT1 ("sysconf (%d): %m", name); + errno = old_errno; + return result; +} diff --git a/support/xunistd.h b/support/xunistd.h index 05c2626a7b..00376f7aae 100644 --- a/support/xunistd.h +++ b/support/xunistd.h @@ -39,6 +39,7 @@ void xstat (const char *path, struct stat64 *); void xmkdir (const char *path, mode_t); void xchroot (const char *path); void xunlink (const char *path); +long xsysconf (int name); /* Read the link at PATH. The caller should free the returned string with free. */ diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 478f7e3d4d..8a17828d9d 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -18,7 +18,7 @@ sysdep_routines += clone umount umount2 readahead \ setfsuid setfsgid epoll_pwait signalfd \ eventfd eventfd_read eventfd_write prlimit \ personality epoll_wait tee vmsplice splice \ - open_by_handle_at mlock2 + open_by_handle_at mlock2 pkey_mprotect pkey_set pkey_get CFLAGS-gethostid.c = -fexceptions CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables @@ -44,7 +44,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \ - test-errno-linux tst-memfd_create tst-mlock2 + test-errno-linux tst-memfd_create tst-mlock2 tst-pkey # Generate the list of SYS_* macros for the system calls (__NR_* # macros). The file syscall-names.list contains all possible system @@ -92,6 +92,8 @@ $(objpfx)tst-syscall-list.out: \ # Separate object file for access to the constant from the UAPI header. $(objpfx)tst-sysconf-iov_max: $(objpfx)tst-sysconf-iov_max-uapi.o +$(objpfx)tst-pkey: $(shared-thread-library) + endif # $(subdir) == misc ifeq ($(subdir),time) diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions index e799b62285..336c13b57d 100644 --- a/sysdeps/unix/sysv/linux/Versions +++ b/sysdeps/unix/sysv/linux/Versions @@ -169,6 +169,7 @@ libc { GLIBC_2.27 { memfd_create; mlock2; + pkey_alloc; pkey_free; pkey_set; pkey_get; pkey_mprotect; } GLIBC_PRIVATE { # functions used in other libraries diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 3448d62cee..bae2ebc087 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2108,6 +2108,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index d064f5445e..16c3c905cb 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2019,6 +2019,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index a5ce7964d0..27ccdabc0c 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -109,6 +109,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h index bee99c2384..9e532adb23 100644 --- a/sysdeps/unix/sysv/linux/bits/mman-shared.h +++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h @@ -33,6 +33,12 @@ # define MLOCK_ONFAULT 1U # endif +/* Access rights for pkey_alloc. */ +# ifndef PKEY_DISABLE_ACCESS +# define PKEY_DISABLE_ACCESS 0x1 +# define PKEY_DISABLE_WRITE 0x2 +# endif + __BEGIN_DECLS /* Create a new memory file descriptor. NAME is a name for debugging. @@ -43,6 +49,28 @@ int memfd_create (const char *__name, unsigned int __flags) __THROW; memory. FLAGS is a combination of the MLOCK_* flags above. */ int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW; +/* Allocate a new protection key, with the PKEY_DISABLE_* bits + specified in ACCESS_RIGHTS. The protection key mask for the + current thread is updated to match the access privilege for the new + key. */ +int pkey_alloc (unsigned int __flags, unsigned int __access_rights) __THROW; + +/* Update the access rights for the current thread for KEY, which must + have been allocated using pkey_alloc. */ +int pkey_set (int __key, unsigned int __access_rights) __THROW; + +/* Return the access rights for the current thread for KEY, which must + have been allocated using pkey_alloc. */ +int pkey_get (int _key) __THROW; + +/* Free an allocated protection key, which must have been allocated + using pkey_alloc. */ +int pkey_free (int __key) __THROW; + +/* Apply memory protection flags for KEY to the specified address + range. */ +int pkey_mprotect (void *__addr, size_t __len, int __prot, int __pkey) __THROW; + __END_DECLS #endif /* __USE_GNU */ diff --git a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h index 525840cea1..e86b933040 100644 --- a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h +++ b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h @@ -111,8 +111,12 @@ enum { SEGV_MAPERR = 1, /* Address not mapped to object. */ # define SEGV_MAPERR SEGV_MAPERR - SEGV_ACCERR /* Invalid permissions for mapped object. */ + SEGV_ACCERR, /* Invalid permissions for mapped object. */ # define SEGV_ACCERR SEGV_ACCERR + SEGV_BNDERR, /* Bounds checking failure. */ +# define SEGV_BNDERR SEGV_BNDERR + SEGV_PKUERR /* Protection key checking failure. */ +# define SEGV_PKUERR SEGV_PKUERR }; /* `si_code' values for SIGBUS signal. */ diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 69ddf15361..d7e656b13b 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1873,6 +1873,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index a140edd4a3..8e10641162 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2038,6 +2038,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 178c0a45ec..81ec4d6761 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1902,6 +1902,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 01d10d907c..9655afe395 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -110,6 +110,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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 3ad08c20bf..2d9cd557ad 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1987,6 +1987,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 6bd7be1929..256117b3a0 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2108,3 +2108,8 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 9b1e890eda..42e4770341 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1962,6 +1962,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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 3eb5b66f8b..a28a21f842 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1960,6 +1960,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 543a725114..b725205f4f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1958,6 +1958,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index a9198a3936..373801d4f3 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1953,6 +1953,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index afacf1ff2d..7ff042045f 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2149,3 +2149,8 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F diff --git a/sysdeps/unix/sysv/linux/pkey_get.c b/sysdeps/unix/sysv/linux/pkey_get.c new file mode 100644 index 0000000000..fc3204c82f --- /dev/null +++ b/sysdeps/unix/sysv/linux/pkey_get.c @@ -0,0 +1,26 @@ +/* Obtaining the thread memory protection key, generic stub. + Copyright (C) 2017 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 + +int +pkey_get (int key) +{ + __set_errno (ENOSYS); + return -1; +} diff --git a/sysdeps/unix/sysv/linux/pkey_mprotect.c b/sysdeps/unix/sysv/linux/pkey_mprotect.c new file mode 100644 index 0000000000..a78fe293b2 --- /dev/null +++ b/sysdeps/unix/sysv/linux/pkey_mprotect.c @@ -0,0 +1,37 @@ +/* mprotect with a memory protection key. + Copyright (C) 2017 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 + +int +pkey_mprotect (void *addr, size_t len, int prot, int pkey) +{ + if (pkey == -1) + /* If the key is -1, the system call is precisely equivalent to + mprotect. */ + return __mprotect (addr, len, prot); +#ifdef __NR_pkey_mprotect + return INLINE_SYSCALL_CALL (pkey_mprotect, addr, len, prot, pkey); +#else + __set_errno (ENOSYS); + return -1; +#endif +} diff --git a/sysdeps/unix/sysv/linux/pkey_set.c b/sysdeps/unix/sysv/linux/pkey_set.c new file mode 100644 index 0000000000..f686c4373c --- /dev/null +++ b/sysdeps/unix/sysv/linux/pkey_set.c @@ -0,0 +1,26 @@ +/* Changing the thread memory protection key, generic stub. + Copyright (C) 2017 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 + +int +pkey_set (int key, unsigned int access_rights) +{ + __set_errno (ENOSYS); + return -1; +} diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 48af097b6a..a074a05005 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1991,6 +1991,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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 e30535dac9..5271f6dab3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1996,6 +1996,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index f522700890..96cc6cdb1d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2203,6 +2203,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index d3092afd25..3665895b76 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -110,6 +110,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 752176108e..1aa0994c0a 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1991,6 +1991,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index b6d4c73635..538f7cca8c 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1892,6 +1892,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 1ee21fe8e8..17d5c0c7eb 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1877,6 +1877,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set 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/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index e652191c60..e635f380b7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1984,6 +1984,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 37cf8713a5..8cea2c0a8d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1921,6 +1921,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 40c4fbb9ea..e3dfd0c8db 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -110,3 +110,5 @@ setns EXTRA setns i:ii setns process_vm_readv EXTRA process_vm_readv i:ipipii process_vm_readv process_vm_writev EXTRA process_vm_writev i:ipipii process_vm_writev memfd_create EXTRA memfd_create i:si memfd_create +pkey_alloc EXTRA pkey_alloc i:ii pkey_alloc +pkey_free EXTRA pkey_free i:i pkey_free diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 57427eb3ee..d7b49335ab 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2115,3 +2115,8 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index 321f65c600..e96a45818c 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2115,3 +2115,8 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 57427eb3ee..d7b49335ab 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2115,3 +2115,8 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F diff --git a/sysdeps/unix/sysv/linux/tst-pkey.c b/sysdeps/unix/sysv/linux/tst-pkey.c new file mode 100644 index 0000000000..e7205dba1f --- /dev/null +++ b/sysdeps/unix/sysv/linux/tst-pkey.c @@ -0,0 +1,399 @@ +/* Tests for memory protection keys. + Copyright (C) 2017 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Used to force threads to wait until the main thread has set up the + keys as intended. */ +static pthread_barrier_t barrier; + +/* The keys used for testing. These have been allocated with access + rights set based on their array index. */ +enum { key_count = 4 }; +static int keys[key_count]; +static volatile int *pages[key_count]; + +/* Used to report results from the signal handler. */ +static volatile void *sigsegv_addr; +static volatile int sigsegv_code; +static volatile int sigsegv_pkey; +static sigjmp_buf sigsegv_jmp; + +/* Used to handle expected read or write faults. */ +static void +sigsegv_handler (int signum, siginfo_t *info, void *context) +{ + sigsegv_addr = info->si_addr; + sigsegv_code = info->si_code; + sigsegv_pkey = info->si_pkey; + siglongjmp (sigsegv_jmp, 2); +} + +static const struct sigaction sigsegv_sigaction = + { + .sa_flags = SA_RESETHAND | SA_SIGINFO, + .sa_sigaction = &sigsegv_handler, + }; + +/* Check if PAGE is readable (if !WRITE) or writable (if WRITE). */ +static bool +check_page_access (int page, bool write) +{ + /* This is needed to work around bug 22396: On x86-64, siglongjmp + does not restore the protection key access rights for the current + thread. We restore only the access rights for the keys under + test. (This is not a general solution to this problem, but it + allows testing to proceed after a fault.) */ + unsigned saved_rights[key_count]; + for (int i = 0; i < key_count; ++i) + saved_rights[i] = pkey_get (keys[i]); + + volatile int *addr = pages[page]; + if (test_verbose > 0) + { + printf ("info: checking access at %p (page %d) for %s\n", + addr, page, write ? "writing" : "reading"); + } + int result = sigsetjmp (sigsegv_jmp, 1); + if (result == 0) + { + xsigaction (SIGSEGV, &sigsegv_sigaction, NULL); + if (write) + *addr = 3; + else + (void) *addr; + xsignal (SIGSEGV, SIG_DFL); + if (test_verbose > 0) + puts (" --> access allowed"); + return true; + } + else + { + xsignal (SIGSEGV, SIG_DFL); + if (test_verbose > 0) + puts (" --> access denied"); + TEST_COMPARE (result, 2); + TEST_COMPARE ((uintptr_t) sigsegv_addr, (uintptr_t) addr); + TEST_COMPARE (sigsegv_code, SEGV_PKUERR); + TEST_COMPARE (sigsegv_pkey, keys[page]); + for (int i = 0; i < key_count; ++i) + TEST_COMPARE (pkey_set (keys[i], saved_rights[i]), 0); + return false; + } +} + +static volatile sig_atomic_t sigusr1_handler_ran; + +/* Used to check that access is revoked in signal handlers. */ +static void +sigusr1_handler (int signum) +{ + TEST_COMPARE (signum, SIGUSR1); + for (int i = 0; i < key_count; ++i) + TEST_COMPARE (pkey_get (keys[i]), PKEY_DISABLE_ACCESS); + sigusr1_handler_ran = 1; +} + +/* Used to report results from other threads. */ +struct thread_result +{ + int access_rights[key_count]; + pthread_t next_thread; +}; + +/* Return the thread's access rights for the keys under test. */ +static void * +get_thread_func (void *closure) +{ + struct thread_result *result = xmalloc (sizeof (*result)); + for (int i = 0; i < key_count; ++i) + result->access_rights[i] = pkey_get (keys[i]); + memset (&result->next_thread, 0, sizeof (result->next_thread)); + return result; +} + +/* Wait for initialization and then check that the current thread does + not have access through the keys under test. */ +static void * +delayed_thread_func (void *closure) +{ + bool check_access = *(bool *) closure; + pthread_barrier_wait (&barrier); + struct thread_result *result = get_thread_func (NULL); + + if (check_access) + { + /* Also check directly. This code should not run with other + threads in parallel because of the SIGSEGV handler which is + installed by check_page_access. */ + for (int i = 0; i < key_count; ++i) + { + TEST_VERIFY (!check_page_access (i, false)); + TEST_VERIFY (!check_page_access (i, true)); + } + } + + result->next_thread = xpthread_create (NULL, get_thread_func, NULL); + return result; +} + +static int +do_test (void) +{ + long pagesize = xsysconf (_SC_PAGESIZE); + + /* pkey_mprotect with key -1 should work even when there is no + protection key support. */ + { + int *page = xmmap (NULL, pagesize, PROT_NONE, + MAP_ANONYMOUS | MAP_PRIVATE, -1); + TEST_COMPARE (pkey_mprotect (page, pagesize, PROT_READ | PROT_WRITE, -1), + 0); + volatile int *vpage = page; + *vpage = 5; + TEST_COMPARE (*vpage, 5); + xmunmap (page, pagesize); + } + + xpthread_barrier_init (&barrier, NULL, 2); + bool delayed_thread_check_access = true; + pthread_t delayed_thread = xpthread_create + (NULL, &delayed_thread_func, &delayed_thread_check_access); + + keys[0] = pkey_alloc (0, 0); + if (keys[0] < 0) + { + if (errno == ENOSYS) + FAIL_UNSUPPORTED + ("kernel does not support memory protection keys"); + if (errno == EINVAL) + FAIL_UNSUPPORTED + ("CPU does not support memory protection keys: %m"); + FAIL_EXIT1 ("pkey_alloc: %m"); + } + TEST_COMPARE (pkey_get (keys[0]), 0); + for (int i = 1; i < key_count; ++i) + { + keys[i] = pkey_alloc (0, i); + if (keys[i] < 0) + FAIL_EXIT1 ("pkey_alloc (0, %d): %m", i); + /* pkey_alloc is supposed to change the current thread's access + rights for the new key. */ + TEST_COMPARE (pkey_get (keys[i]), i); + } + /* Check that all the keys have the expected access rights for the + current thread. */ + for (int i = 0; i < key_count; ++i) + TEST_COMPARE (pkey_get (keys[i]), i); + + /* Allocate a test page for each key. */ + for (int i = 0; i < key_count; ++i) + { + pages[i] = xmmap (NULL, pagesize, PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1); + TEST_COMPARE (pkey_mprotect ((void *) pages[i], pagesize, + PROT_READ | PROT_WRITE, keys[i]), 0); + } + + /* Check that the initial thread does not have access to the new + keys. */ + { + pthread_barrier_wait (&barrier); + struct thread_result *result = xpthread_join (delayed_thread); + for (int i = 0; i < key_count; ++i) + TEST_COMPARE (result->access_rights[i], + PKEY_DISABLE_ACCESS); + struct thread_result *result2 = xpthread_join (result->next_thread); + for (int i = 0; i < key_count; ++i) + TEST_COMPARE (result->access_rights[i], + PKEY_DISABLE_ACCESS); + free (result); + free (result2); + } + + /* Check that the current thread access rights are inherited by new + threads. */ + { + pthread_t get_thread = xpthread_create (NULL, get_thread_func, NULL); + struct thread_result *result = xpthread_join (get_thread); + for (int i = 0; i < key_count; ++i) + TEST_COMPARE (result->access_rights[i], i); + free (result); + } + + for (int i = 0; i < key_count; ++i) + TEST_COMPARE (pkey_get (keys[i]), i); + + /* Check that in a signal handler, there is no access. */ + xsignal (SIGUSR1, &sigusr1_handler); + xraise (SIGUSR1); + xsignal (SIGUSR1, SIG_DFL); + TEST_COMPARE (sigusr1_handler_ran, 1); + + /* The first key results in a writable page. */ + TEST_VERIFY (check_page_access (0, false)); + TEST_VERIFY (check_page_access (0, true)); + + /* The other keys do not. */ + for (int i = 1; i < key_count; ++i) + { + if (test_verbose) + printf ("info: checking access for key %d, bits 0x%x\n", + i, pkey_get (keys[i])); + for (int j = 0; j < key_count; ++j) + TEST_COMPARE (pkey_get (keys[j]), j); + if (i & PKEY_DISABLE_ACCESS) + { + TEST_VERIFY (!check_page_access (i, false)); + TEST_VERIFY (!check_page_access (i, true)); + } + else + { + TEST_VERIFY (i & PKEY_DISABLE_WRITE); + TEST_VERIFY (check_page_access (i, false)); + TEST_VERIFY (!check_page_access (i, true)); + } + } + + /* But if we set the current thread's access rights, we gain + access. */ + for (int do_write = 0; do_write < 2; ++do_write) + for (int allowed_key = 0; allowed_key < key_count; ++allowed_key) + { + for (int i = 0; i < key_count; ++i) + if (i == allowed_key) + { + if (do_write) + TEST_COMPARE (pkey_set (keys[i], 0), 0); + else + TEST_COMPARE (pkey_set (keys[i], PKEY_DISABLE_WRITE), 0); + } + else + TEST_COMPARE (pkey_set (keys[i], PKEY_DISABLE_ACCESS), 0); + + if (test_verbose) + printf ("info: key %d is allowed access for %s\n", + allowed_key, do_write ? "writing" : "reading"); + for (int i = 0; i < key_count; ++i) + if (i == allowed_key) + { + TEST_VERIFY (check_page_access (i, false)); + TEST_VERIFY (check_page_access (i, true) == do_write); + } + else + { + TEST_VERIFY (!check_page_access (i, false)); + TEST_VERIFY (!check_page_access (i, true)); + } + } + + /* Restore access to all keys, and launch a thread which should + inherit that access. */ + for (int i = 0; i < key_count; ++i) + { + TEST_COMPARE (pkey_set (keys[i], 0), 0); + TEST_VERIFY (check_page_access (i, false)); + TEST_VERIFY (check_page_access (i, true)); + } + delayed_thread_check_access = false; + delayed_thread = xpthread_create + (NULL, delayed_thread_func, &delayed_thread_check_access); + + TEST_COMPARE (pkey_free (keys[0]), 0); + /* Second pkey_free will fail because the key has already been + freed. */ + TEST_COMPARE (pkey_free (keys[0]),-1); + TEST_COMPARE (errno, EINVAL); + for (int i = 1; i < key_count; ++i) + TEST_COMPARE (pkey_free (keys[i]), 0); + + /* Check what happens to running threads which have access to + previously allocated protection keys. The implemented behavior + is somewhat dubious: Ideally, pkey_free should revoke access to + that key and pkey_alloc of the same (numeric) key should not + implicitly confer access to already-running threads, but this is + not what happens in practice. */ + { + /* The limit is in place to avoid running indefinitely in case + there many keys available. */ + int *keys_array = xcalloc (100000, sizeof (*keys_array)); + int keys_allocated = 0; + while (keys_allocated < 100000) + { + int new_key = pkey_alloc (0, PKEY_DISABLE_WRITE); + if (new_key < 0) + { + /* No key reuse observed before running out of keys. */ + TEST_COMPARE (errno, ENOSPC); + break; + } + for (int i = 0; i < key_count; ++i) + if (new_key == keys[i]) + { + /* We allocated the key with disabled write access. + This should affect the protection state of the + existing page. */ + TEST_VERIFY (check_page_access (i, false)); + TEST_VERIFY (!check_page_access (i, true)); + + xpthread_barrier_wait (&barrier); + struct thread_result *result = xpthread_join (delayed_thread); + /* The thread which was launched before should still have + access to the key. */ + TEST_COMPARE (result->access_rights[i], 0); + struct thread_result *result2 + = xpthread_join (result->next_thread); + /* Same for a thread which is launched afterwards from + the old thread. */ + TEST_COMPARE (result2->access_rights[i], 0); + free (result); + free (result2); + keys_array[keys_allocated++] = new_key; + goto after_key_search; + } + /* Save key for later deallocation. */ + keys_array[keys_allocated++] = new_key; + } + after_key_search: + /* Deallocate the keys allocated for testing purposes. */ + for (int j = 0; j < keys_allocated; ++j) + TEST_COMPARE (pkey_free (keys_array[j]), 0); + free (keys_array); + } + + for (int i = 0; i < key_count; ++i) + xmunmap ((void *) pages[i], pagesize); + + xpthread_barrier_destroy (&barrier); + return 0; +} + +#include diff --git a/sysdeps/unix/sysv/linux/x86/arch-pkey.h b/sysdeps/unix/sysv/linux/x86/arch-pkey.h new file mode 100644 index 0000000000..8e9bfdae96 --- /dev/null +++ b/sysdeps/unix/sysv/linux/x86/arch-pkey.h @@ -0,0 +1,40 @@ +/* Helper functions for manipulating memory protection keys. + Copyright (C) 2017 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 + . */ + +#ifndef _ARCH_PKEY_H +#define _ARCH_PKEY_H + +/* Return the value of the PKRU register. */ +static inline unsigned int +pkey_read (void) +{ + unsigned int result; + __asm__ volatile (".byte 0x0f, 0x01, 0xee" + : "=a" (result) : "c" (0) : "rdx"); + return result; +} + +/* Overwrite the PKRU register with VALUE. */ +static inline void +pkey_write (unsigned int value) +{ + __asm__ volatile (".byte 0x0f, 0x01, 0xef" + : : "a" (value), "c" (0), "d" (0)); +} + +#endif /* _ARCH_PKEY_H */ diff --git a/sysdeps/unix/sysv/linux/x86/pkey_get.c b/sysdeps/unix/sysv/linux/x86/pkey_get.c new file mode 100644 index 0000000000..3a9bfbe676 --- /dev/null +++ b/sysdeps/unix/sysv/linux/x86/pkey_get.c @@ -0,0 +1,33 @@ +/* Reading the per-thread memory protection key, x86_64 version. + Copyright (C) 2017 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 + +int +pkey_get (int key) +{ + if (key < 0 || key > 15) + { + __set_errno (EINVAL); + return -1; + } + unsigned int pkru = pkey_read (); + return (pkru >> (2 * key)) & 3; + return 0; +} diff --git a/sysdeps/unix/sysv/linux/x86/pkey_set.c b/sysdeps/unix/sysv/linux/x86/pkey_set.c new file mode 100644 index 0000000000..91dffd22c3 --- /dev/null +++ b/sysdeps/unix/sysv/linux/x86/pkey_set.c @@ -0,0 +1,35 @@ +/* Changing the per-thread memory protection key, x86_64 version. + Copyright (C) 2017 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 + +int +pkey_set (int key, unsigned int rights) +{ + if (key < 0 || key > 15 || rights > 3) + { + __set_errno (EINVAL); + return -1; + } + unsigned int mask = 3 << (2 * key); + unsigned int pkru = pkey_read (); + pkru = (pkru & ~mask) | (rights << (2 * key)); + pkey_write (pkru); + return 0; +} diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index f26c8b99d5..7317d17e7b 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1879,6 +1879,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 2a6057154b..0a9334f822 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2122,6 +2122,11 @@ GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F GLIBC_2.27 mlock2 F +GLIBC_2.27 pkey_alloc F +GLIBC_2.27 pkey_free F +GLIBC_2.27 pkey_get F +GLIBC_2.27 pkey_mprotect F +GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F -- cgit v1.2.3 From 0d93b7fd7cc043e908a132aacd46ff46e0c308a5 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 6 Dec 2017 00:58:03 +0000 Subject: Add _Float64, _Float32x function aliases. This patch continues filling out TS 18661-3 support by adding *f64 and *f32x function aliases, supporting _Float64 and _Float32x, as aliases for double functions. These types are supported for all glibc configurations. The API corresponds exactly to that for _Float128 and _Float64x. _Float32 aliases to float functions remain to be added in subsequent patches to complete this process (then there are a few miscellaneous functions in TS 18661-3 to implement that aren't simply versions of existing functions for new types). The patch enables the feature in bits/floatn-common.h, adds symbol versions and documentation with updates to ABI baselines, and arranges for the libm functions for the new types to be tested. As with the _Float64x changes there are some x86 ulps updates because of header inlines not used for the new types (and one other change to the non-multiarch libm-test-ulps, which I suppose comes from using a different compiler version / configuration from when it was last regenerated). Tested for x86_64 and x86, and with build-many-glibcs.py, with both GCC 6 and GCC 7. * bits/floatn-common.h (__HAVE_FLOAT64): Define to 1. (__HAVE_FLOAT32X): Likewise. * manual/math.texi (Mathematics): Document support for _Float64 and _Float32x. * math/Makefile (test-types): Add float64 and float32x. * math/Versions (GLIBC_2.27): Add _Float64 and _Float32x functions. * stdlib/Versions (GLIBC_2.27): Likewise. * wcsmbs/Versions (GLIBC_2.27): Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.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/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.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/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. * sysdeps/i386/fpu/libm-test-ulps: Likewise. * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise. --- ChangeLog | 81 ++++++++ NEWS | 4 + bits/floatn-common.h | 4 +- manual/math.texi | 7 +- math/Makefile | 4 +- math/Versions | 106 +++++++++++ stdlib/Versions | 5 + sysdeps/i386/fpu/libm-test-ulps | 21 ++- sysdeps/i386/i686/fpu/multiarch/libm-test-ulps | 13 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 10 + sysdeps/unix/sysv/linux/aarch64/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/alpha/libc.abilist | 10 + sysdeps/unix/sysv/linux/alpha/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/arm/libc.abilist | 10 + sysdeps/unix/sysv/linux/arm/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 10 + sysdeps/unix/sysv/linux/hppa/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/i386/libc.abilist | 10 + sysdeps/unix/sysv/linux/i386/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/ia64/libc.abilist | 10 + sysdeps/unix/sysv/linux/ia64/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 10 + sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 10 + sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/microblaze/libc.abilist | 10 + sysdeps/unix/sysv/linux/microblaze/libm.abilist | 208 +++++++++++++++++++++ .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 10 + sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 208 +++++++++++++++++++++ .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 10 + sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 208 +++++++++++++++++++++ .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 10 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 10 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 10 + sysdeps/unix/sysv/linux/nios2/libm.abilist | 208 +++++++++++++++++++++ .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 10 + .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 208 +++++++++++++++++++++ .../linux/powerpc/powerpc32/nofpu/libc.abilist | 10 + .../linux/powerpc/powerpc32/nofpu/libm.abilist | 208 +++++++++++++++++++++ .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 10 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 10 + .../sysv/linux/powerpc/powerpc64/libm-le.abilist | 208 +++++++++++++++++++++ .../unix/sysv/linux/powerpc/powerpc64/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 10 + sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 10 + sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/sh/libc.abilist | 10 + sysdeps/unix/sysv/linux/sh/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 10 + sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 10 + sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 208 +++++++++++++++++++++ .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 10 + .../sysv/linux/tile/tilegx/tilegx32/libm.abilist | 208 +++++++++++++++++++++ .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 10 + .../sysv/linux/tile/tilegx/tilegx64/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 10 + sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 10 + sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 208 +++++++++++++++++++++ sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 10 + sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 208 +++++++++++++++++++++ wcsmbs/Versions | 4 + 64 files changed, 5914 insertions(+), 23 deletions(-) (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 9fee1a17c3..e153ee3dfc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,84 @@ +2017-12-06 Joseph Myers + + * bits/floatn-common.h (__HAVE_FLOAT64): Define to 1. + (__HAVE_FLOAT32X): Likewise. + * manual/math.texi (Mathematics): Document support for _Float64 + and _Float32x. + * math/Makefile (test-types): Add float64 and float32x. + * math/Versions (GLIBC_2.27): Add _Float64 and _Float32x + functions. + * stdlib/Versions (GLIBC_2.27): Likewise. + * wcsmbs/Versions (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.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/nios2/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.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/powerpc/powerpc64/libm-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. + * sysdeps/i386/fpu/libm-test-ulps: Likewise. + * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise. + 2017-12-05 Joseph Myers * bits/floatn-common.h: Include . diff --git a/NEWS b/NEWS index 6b1a2f92f7..cbecce5456 100644 --- a/NEWS +++ b/NEWS @@ -41,6 +41,10 @@ Major new features: 18661-3:2015. These are corresponding interfaces to those supported for _Float128. +* The math library now implements interfaces for the _Float64 and _Float32x + types, as defined by ISO/IEC TS 18661-3:2015. These are corresponding + interfaces to those supported for _Float128. + * glibc now implements the memfd_create and mlock2 functions on Linux. * Support for memory protection keys was added. The header now diff --git a/bits/floatn-common.h b/bits/floatn-common.h index aa0a757fe7..a724421f77 100644 --- a/bits/floatn-common.h +++ b/bits/floatn-common.h @@ -33,8 +33,8 @@ glibc includes corresponding *fN or *fNx interfaces for it. */ #define __HAVE_FLOAT16 0 #define __HAVE_FLOAT32 0 -#define __HAVE_FLOAT64 0 -#define __HAVE_FLOAT32X 0 +#define __HAVE_FLOAT64 1 +#define __HAVE_FLOAT32X 1 #define __HAVE_FLOAT128X 0 /* Defined to 1 if the corresponding __HAVE_ macro is 1 and the diff --git a/manual/math.texi b/manual/math.texi index 08e5dae471..705582ea9e 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -53,7 +53,7 @@ usually wise to pick the narrowest type that can accommodate your data. Not all machines have a distinct @code{long double} type; it may be the same as @code{double}. -On some machines, @theglibc{} also provides @code{_Float@var{N}} and +@Theglibc{} also provides @code{_Float@var{N}} and @code{_Float@var{N}x} types. These types are defined in @w{ISO/IEC TS 18661-3}, which extends @w{ISO C} and defines floating-point types that are not machine-dependent. When such a type, such as @code{_Float128}, @@ -65,8 +65,9 @@ these functions are described along with the @code{double}, @code{float}, and @code{long double} variants and they come from @w{ISO/IEC TS 18661-3}, unless explicitly stated otherwise. -Currently, support for @code{_Float@var{N}} or @code{_Float@var{N}x} -types is only provided for @code{_Float128} and @code{_Float64x} on +Support for @code{_Float@var{N}} or @code{_Float@var{N}x} types is +provided for @code{_Float64} and @code{_Float32x} on all platforms. +It is also provided for @code{_Float128} and @code{_Float64x} on powerpc64le (PowerPC 64-bits little-endian), x86_64, x86, ia64, aarch64, alpha, mips64, s390 and sparc. diff --git a/math/Makefile b/math/Makefile index 668c283867..a6c0d8b8a7 100644 --- a/math/Makefile +++ b/math/Makefile @@ -132,8 +132,8 @@ type-float64x-yes := float64x types = $(types-basic) $(type-float128-$(float128-fcts)) test-types = $(test-types-basic) $(type-float128-$(float128-fcts)) \ - $(type-float128-$(float128-alias-fcts)) \ - $(type-float64x-$(float64x-alias-fcts)) + float64 $(type-float128-$(float128-alias-fcts)) \ + float32x $(type-float64x-$(float64x-alias-fcts)) # For each of the basic types (float, double, long double), replace the # occurrences of 'F' in arg 1 with the appropriate suffix for the type. diff --git a/math/Versions b/math/Versions index d4018f6964..eaa3b25b0d 100644 --- a/math/Versions +++ b/math/Versions @@ -340,6 +340,7 @@ libm { %endif GLIBC_2.27 { expf; exp2f; logf; log2f; powf; + # _Float64x functions, only present for some configurations. acosf64x; acoshf64x; asinf64x; @@ -444,5 +445,110 @@ libm { y0f64x; y1f64x; ynf64x; + # _Float64 and _Float32x functions, for all configurations. + acosf64; acosf32x; + acoshf64; acoshf32x; + asinf64; asinf32x; + asinhf64; asinhf32x; + atan2f64; atan2f32x; + atanf64; atanf32x; + atanhf64; atanhf32x; + cabsf64; cabsf32x; + cacosf64; cacosf32x; + cacoshf64; cacoshf32x; + canonicalizef64; canonicalizef32x; + cargf64; cargf32x; + casinf64; casinf32x; + casinhf64; casinhf32x; + catanf64; catanf32x; + catanhf64; catanhf32x; + cbrtf64; cbrtf32x; + ccosf64; ccosf32x; + ccoshf64; ccoshf32x; + ceilf64; ceilf32x; + cexpf64; cexpf32x; + cimagf64; cimagf32x; + clog10f64; clog10f32x; + clogf64; clogf32x; + conjf64; conjf32x; + copysignf64; copysignf32x; + cosf64; cosf32x; + coshf64; coshf32x; + cpowf64; cpowf32x; + cprojf64; cprojf32x; + crealf64; crealf32x; + csinf64; csinf32x; + csinhf64; csinhf32x; + csqrtf64; csqrtf32x; + ctanf64; ctanf32x; + ctanhf64; ctanhf32x; + erfcf64; erfcf32x; + erff64; erff32x; + exp10f64; exp10f32x; + exp2f64; exp2f32x; + expf64; expf32x; + expm1f64; expm1f32x; + fabsf64; fabsf32x; + fdimf64; fdimf32x; + floorf64; floorf32x; + fmaf64; fmaf32x; + fmaxf64; fmaxf32x; + fmaxmagf64; fmaxmagf32x; + fminf64; fminf32x; + fminmagf64; fminmagf32x; + fmodf64; fmodf32x; + frexpf64; frexpf32x; + fromfpf64; fromfpf32x; + fromfpxf64; fromfpxf32x; + getpayloadf64; getpayloadf32x; + hypotf64; hypotf32x; + ilogbf64; ilogbf32x; + j0f64; j0f32x; + j1f64; j1f32x; + jnf64; jnf32x; + ldexpf64; ldexpf32x; + lgammaf64; lgammaf32x; + lgammaf64_r; lgammaf32x_r; + llogbf64; llogbf32x; + llrintf64; llrintf32x; + llroundf64; llroundf32x; + log10f64; log10f32x; + log1pf64; log1pf32x; + log2f64; log2f32x; + logbf64; logbf32x; + logf64; logf32x; + lrintf64; lrintf32x; + lroundf64; lroundf32x; + modff64; modff32x; + nanf64; nanf32x; + nearbyintf64; nearbyintf32x; + nextafterf64; nextafterf32x; + nextdownf64; nextdownf32x; + nextupf64; nextupf32x; + powf64; powf32x; + remainderf64; remainderf32x; + remquof64; remquof32x; + rintf64; rintf32x; + roundevenf64; roundevenf32x; + roundf64; roundf32x; + scalblnf64; scalblnf32x; + scalbnf64; scalbnf32x; + setpayloadf64; setpayloadf32x; + setpayloadsigf64; setpayloadsigf32x; + sincosf64; sincosf32x; + sinf64; sinf32x; + sinhf64; sinhf32x; + sqrtf64; sqrtf32x; + tanf64; tanf32x; + tanhf64; tanhf32x; + tgammaf64; tgammaf32x; + totalorderf64; totalorderf32x; + totalordermagf64; totalordermagf32x; + truncf64; truncf32x; + ufromfpf64; ufromfpf32x; + ufromfpxf64; ufromfpxf32x; + y0f64; y0f32x; + y1f64; y1f32x; + ynf64; ynf32x; } } diff --git a/stdlib/Versions b/stdlib/Versions index 66f6b35be9..9352098dd2 100644 --- a/stdlib/Versions +++ b/stdlib/Versions @@ -130,9 +130,14 @@ libc { } %endif GLIBC_2.27 { + # _Float64x functions, only present for some configurations. strfromf64x; strtof64x; strtof64x_l; + # _Float64 and _Float32x functions, for all configurations. + strfromf64; strfromf32x; + strtof64; strtof32x; + strtof64_l; strtof32x_l; } GLIBC_PRIVATE { # functions which have an additional interface since they are diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index c0ed6a9497..1dc47acbfe 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -1278,7 +1278,7 @@ Function: "cosh_downward": double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 @@ -1288,7 +1288,7 @@ Function: "cosh_towardzero": double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 @@ -1298,7 +1298,7 @@ Function: "cosh_upward": double: 4 float: 2 float128: 3 -idouble: 1 +idouble: 4 ifloat: 1 ifloat128: 1 ildouble: 2 @@ -1992,9 +1992,9 @@ ldouble: 4 Function: "gamma": double: 3 -float: 2 +float: 3 idouble: 3 -ifloat: 2 +ifloat: 3 ildouble: 4 ldouble: 4 @@ -2176,10 +2176,10 @@ ldouble: 5 Function: "lgamma": double: 3 -float: 2 +float: 3 float128: 5 idouble: 3 -ifloat: 2 +ifloat: 3 ifloat128: 5 ildouble: 4 ldouble: 4 @@ -2477,6 +2477,7 @@ ldouble: 3 Function: "sinh": double: 1 float128: 2 +idouble: 1 ifloat128: 2 ildouble: 2 ldouble: 2 @@ -2485,7 +2486,7 @@ Function: "sinh_downward": double: 2 float: 1 float128: 3 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 3 ildouble: 5 @@ -2495,7 +2496,7 @@ Function: "sinh_towardzero": double: 2 float: 1 float128: 3 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 3 ildouble: 4 @@ -2505,7 +2506,7 @@ Function: "sinh_upward": double: 4 float: 2 float128: 4 -idouble: 1 +idouble: 4 ifloat: 1 ifloat128: 4 ildouble: 5 diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps index e67837c5df..7e13fc7948 100644 --- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps +++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps @@ -1270,7 +1270,7 @@ Function: "cosh_downward": double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 @@ -1280,7 +1280,7 @@ Function: "cosh_towardzero": double: 2 float: 1 float128: 2 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 1 ildouble: 2 @@ -1290,7 +1290,7 @@ Function: "cosh_upward": double: 4 float: 2 float128: 3 -idouble: 1 +idouble: 4 ifloat: 1 ifloat128: 1 ildouble: 2 @@ -2461,6 +2461,7 @@ ldouble: 3 Function: "sinh": double: 1 float128: 2 +idouble: 1 ifloat128: 2 ildouble: 2 ldouble: 2 @@ -2469,7 +2470,7 @@ Function: "sinh_downward": double: 2 float: 1 float128: 3 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 3 ildouble: 5 @@ -2479,7 +2480,7 @@ Function: "sinh_towardzero": double: 2 float: 1 float128: 3 -idouble: 1 +idouble: 2 ifloat: 1 ifloat128: 3 ildouble: 4 @@ -2489,7 +2490,7 @@ Function: "sinh_upward": double: 4 float: 2 float128: 4 -idouble: 1 +idouble: 4 ifloat: 1 ifloat128: 4 ildouble: 5 diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index bae2ebc087..ec18372401 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2114,12 +2114,22 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 4174e64e6e..d4e7084174 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -462,215 +462,423 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 16c3c905cb..6bf87b69ac 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2025,13 +2025,23 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 75bd55cbb9..ed0dac6312 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -472,217 +472,425 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __c1_cabsf F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 27ccdabc0c..4243e83ea9 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -114,6 +114,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index b3fd4a27b2..df350c8993 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -118,11 +118,219 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index d7e656b13b..6780c22e9a 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1878,6 +1878,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index ffa61bf1b1..5e334affbe 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -430,10 +430,218 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 8e10641162..332baed1f8 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2043,9 +2043,19 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 274ca86606..609f5bc7d5 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -612,113 +612,321 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 81ec4d6761..80e56308b8 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1907,9 +1907,19 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index 28a38c6006..ad3d86f454 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -541,113 +541,321 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 9655afe395..f60204eee1 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -115,6 +115,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index b3fd4a27b2..df350c8993 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -118,11 +118,219 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 2d9cd557ad..ff926c1301 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1992,6 +1992,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index aae61169f9..62203c0492 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -472,9 +472,217 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 256117b3a0..46b1d7e2fc 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2113,3 +2113,13 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index 0d3b4b1e90..94cc0d639a 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -429,8 +429,216 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 42e4770341..70d90bcb3a 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1967,6 +1967,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index d32d58d4e4..30eb76d9ca 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -431,11 +431,219 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F _gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index a28a21f842..10f9d46639 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1965,6 +1965,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 9acc4cb41c..cf81755229 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -464,216 +464,424 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index b725205f4f..a21c0206cc 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1964,13 +1964,23 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 373801d4f3..8a3b317755 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1959,13 +1959,23 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 7ff042045f..3425e2d1cf 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2154,3 +2154,13 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 0fe34e98fa..5347a2180a 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -429,8 +429,216 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index a074a05005..47c38c46df 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1996,6 +1996,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index ed013deefd..96c8f1b74c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -474,11 +474,219 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 5271f6dab3..533fd822f7 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2001,6 +2001,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 6f2873dc80..52cc686f63 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -473,11 +473,219 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 96cc6cdb1d..690c592cb3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2208,8 +2208,18 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 3665895b76..16f72e1e86 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -115,6 +115,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index 1d86c798b9..17bc407b7c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -606,112 +606,320 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index f3aeac2e1e..fac7b49122 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -149,11 +149,219 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _LIB_VERSION D 0x4 GLIBC_2.3 __clog10 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 1aa0994c0a..fd5e07962b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1997,13 +1997,23 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 05f32b9f48..b1f34a3d07 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -462,217 +462,425 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 538f7cca8c..da4839996f 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1898,13 +1898,23 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 1912fe6df5..9d6f6003d7 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -460,217 +460,425 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 17d5c0c7eb..085cd49a9b 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1882,6 +1882,16 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l 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/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index a57fbc0eac..cea342ac79 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -430,10 +430,218 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index e635f380b7..fa824c5458 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1990,13 +1990,23 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 5b08525e9b..ca6d1b5770 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -469,217 +469,425 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 8cea2c0a8d..0f93a561a6 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1927,13 +1927,23 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 7065b81c42..acaff564fc 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -463,216 +463,424 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index d7b49335ab..3e709da5ea 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2120,3 +2120,13 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist index b711e87026..23f52a9ca3 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist @@ -430,8 +430,216 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index e96a45818c..a5278b3b34 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2120,3 +2120,13 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist index b711e87026..23f52a9ca3 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist @@ -430,8 +430,216 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index d7b49335ab..3e709da5ea 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2120,3 +2120,13 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist index b711e87026..23f52a9ca3 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist @@ -430,8 +430,216 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 7317d17e7b..d3d15faee1 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1884,9 +1884,19 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index 8a35d3c494..abcae75c2e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -601,113 +601,321 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 0a9334f822..5e21afc9fd 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2127,8 +2127,18 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32x F +GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32x F +GLIBC_2.27 strtof32x_l F +GLIBC_2.27 strtof64 F +GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32x F +GLIBC_2.27 wcstof32x_l F +GLIBC_2.27 wcstof64 F +GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index f18420484c..0decae1de8 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -600,112 +600,320 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32x F +GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32x F +GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32x F +GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32x F +GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32x F +GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32x F +GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32x F +GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32x F +GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32x F +GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32x F +GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32x F +GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32x F +GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32x F +GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32x F +GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32x F +GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32x F +GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32x F +GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32x F +GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32x F +GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32x F +GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32x F +GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32x F +GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32x F +GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32x F +GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32x F +GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32x F +GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32x F +GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32x F +GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32x F +GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32x F +GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32x F +GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32x F +GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32x F +GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32x F +GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32x F +GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32x F +GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32x F +GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32x F +GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32x F +GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32x F +GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32x F +GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32x F +GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32x F +GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32x F +GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32x F +GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32x F +GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32x F +GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32x F +GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32x F +GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32x F +GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32x F +GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32x F +GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32x F +GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32x F +GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32x F +GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32x F +GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32x F +GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32x F +GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32x F +GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32x F +GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32x F +GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32x F +GLIBC_2.27 lgammaf32x_r F +GLIBC_2.27 lgammaf64 F +GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32x F +GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32x F +GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32x F +GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32x F +GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32x F +GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32x F +GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32x F +GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32x F +GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32x F +GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32x F +GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32x F +GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32x F +GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32x F +GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32x F +GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32x F +GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32x F +GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32x F +GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32x F +GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32x F +GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32x F +GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32x F +GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32x F +GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32x F +GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32x F +GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32x F +GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32x F +GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32x F +GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32x F +GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32x F +GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32x F +GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32x F +GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32x F +GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32x F +GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32x F +GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32x F +GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32x F +GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32x F +GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32x F +GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32x F +GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32x F +GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32x F +GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/wcsmbs/Versions b/wcsmbs/Versions index e0f7a77b1e..a3f10eeece 100644 --- a/wcsmbs/Versions +++ b/wcsmbs/Versions @@ -42,7 +42,11 @@ libc { } %endif GLIBC_2.27 { + # _Float64x functions, only present for some configurations. wcstof64x; wcstof64x_l; + # _Float64 and _Float32x functions, for all configurations. + wcstof64; wcstof32x; + wcstof64_l; wcstof32x_l; } } -- cgit v1.2.3 From 1f9055ce04a66a787c400c05f12e88c96f07e686 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Thu, 7 Dec 2017 00:48:31 +0000 Subject: Add _Float32 function aliases. This patch concludes filling out TS 18661-3 support for different types by adding *f32 function aliases of float functions to support _Float32. As with _Float64 and _Float32x, this is supported for all glibc configurations. As with the previous such patches there are some x86 ulps updates because of inline functions present for float but not for _Float32. The patch also has the usual bits/floatn-common.h update, symbol versions, ABI baselines updates, test enablement and documentation. Tested for x86_64 and x86, and with build-many-glibcs.py, with both GCC 6 and GCC 7. * bits/floatn-common.h (__HAVE_FLOAT32): Define to 1. * manual/math.texi (Mathematics): Document support for _Float32. * math/Makefile (test-types): Add float32. * math/Versions (GLIBC_2.27): Add _Float32 functions. * stdlib/Versions (GLIBC_2.27): Likewise. * wcsmbs/Versions (GLIBC_2.27): Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.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/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.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/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. * sysdeps/i386/fpu/libm-test-ulps: Likewise. * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise. --- ChangeLog | 79 ++++++++ NEWS | 6 +- bits/floatn-common.h | 2 +- manual/math.texi | 3 +- math/Makefile | 2 +- math/Versions | 210 ++++++++++----------- stdlib/Versions | 8 +- sysdeps/i386/fpu/libm-test-ulps | 7 +- sysdeps/i386/i686/fpu/multiarch/libm-test-ulps | 7 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 5 + sysdeps/unix/sysv/linux/aarch64/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/alpha/libc.abilist | 5 + sysdeps/unix/sysv/linux/alpha/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/arm/libc.abilist | 5 + sysdeps/unix/sysv/linux/arm/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 + sysdeps/unix/sysv/linux/hppa/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/i386/libc.abilist | 5 + sysdeps/unix/sysv/linux/i386/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/ia64/libc.abilist | 5 + sysdeps/unix/sysv/linux/ia64/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 5 + sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 5 + sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/microblaze/libc.abilist | 5 + sysdeps/unix/sysv/linux/microblaze/libm.abilist | 104 ++++++++++ .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 5 + sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 104 ++++++++++ .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 5 + sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 104 ++++++++++ .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 5 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 5 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 5 + sysdeps/unix/sysv/linux/nios2/libm.abilist | 104 ++++++++++ .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 5 + .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 104 ++++++++++ .../linux/powerpc/powerpc32/nofpu/libc.abilist | 5 + .../linux/powerpc/powerpc32/nofpu/libm.abilist | 104 ++++++++++ .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 5 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 5 + .../sysv/linux/powerpc/powerpc64/libm-le.abilist | 104 ++++++++++ .../unix/sysv/linux/powerpc/powerpc64/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 5 + sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/sh/libc.abilist | 5 + sysdeps/unix/sysv/linux/sh/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 5 + sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 104 ++++++++++ .../sysv/linux/tile/tilegx/tilegx32/libc.abilist | 5 + .../sysv/linux/tile/tilegx/tilegx32/libm.abilist | 104 ++++++++++ .../sysv/linux/tile/tilegx/tilegx64/libc.abilist | 5 + .../sysv/linux/tile/tilegx/tilegx64/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist | 5 + sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 5 + sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 104 ++++++++++ sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 5 + sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 104 ++++++++++ wcsmbs/Versions | 6 +- 64 files changed, 3052 insertions(+), 122 deletions(-) (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index d4c70e4820..61f7d650a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,82 @@ +2017-12-07 Joseph Myers + + * bits/floatn-common.h (__HAVE_FLOAT32): Define to 1. + * manual/math.texi (Mathematics): Document support for _Float32. + * math/Makefile (test-types): Add float32. + * math/Versions (GLIBC_2.27): Add _Float32 functions. + * stdlib/Versions (GLIBC_2.27): Likewise. + * wcsmbs/Versions (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.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/nios2/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.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/powerpc/powerpc64/libm-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. + * sysdeps/i386/fpu/libm-test-ulps: Likewise. + * sysdeps/i386/i686/fpu/multiarch/libm-test-ulps: Likewise. + 2017-12-06 Joseph Myers * stdlib/strtof.c: Include diff --git a/NEWS b/NEWS index faa60abe30..3065153746 100644 --- a/NEWS +++ b/NEWS @@ -41,9 +41,9 @@ Major new features: 18661-3:2015. These are corresponding interfaces to those supported for _Float128. -* The math library now implements interfaces for the _Float64 and _Float32x - types, as defined by ISO/IEC TS 18661-3:2015. These are corresponding - interfaces to those supported for _Float128. +* The math library now implements interfaces for the _Float32, _Float64 and + _Float32x types, as defined by ISO/IEC TS 18661-3:2015. These are + corresponding interfaces to those supported for _Float128. * glibc now implements the memfd_create and mlock2 functions on Linux. diff --git a/bits/floatn-common.h b/bits/floatn-common.h index a724421f77..6a06573cff 100644 --- a/bits/floatn-common.h +++ b/bits/floatn-common.h @@ -32,7 +32,7 @@ floating-point type with the right format for this type, and this glibc includes corresponding *fN or *fNx interfaces for it. */ #define __HAVE_FLOAT16 0 -#define __HAVE_FLOAT32 0 +#define __HAVE_FLOAT32 1 #define __HAVE_FLOAT64 1 #define __HAVE_FLOAT32X 1 #define __HAVE_FLOAT128X 0 diff --git a/manual/math.texi b/manual/math.texi index 705582ea9e..a9f2a98138 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -66,7 +66,8 @@ these functions are described along with the @code{double}, @w{ISO/IEC TS 18661-3}, unless explicitly stated otherwise. Support for @code{_Float@var{N}} or @code{_Float@var{N}x} types is -provided for @code{_Float64} and @code{_Float32x} on all platforms. +provided for @code{_Float32}, @code{_Float64} and @code{_Float32x} on +all platforms. It is also provided for @code{_Float128} and @code{_Float64x} on powerpc64le (PowerPC 64-bits little-endian), x86_64, x86, ia64, aarch64, alpha, mips64, s390 and sparc. diff --git a/math/Makefile b/math/Makefile index a6c0d8b8a7..ae84abdb25 100644 --- a/math/Makefile +++ b/math/Makefile @@ -132,7 +132,7 @@ type-float64x-yes := float64x types = $(types-basic) $(type-float128-$(float128-fcts)) test-types = $(test-types-basic) $(type-float128-$(float128-fcts)) \ - float64 $(type-float128-$(float128-alias-fcts)) \ + float32 float64 $(type-float128-$(float128-alias-fcts)) \ float32x $(type-float64x-$(float64x-alias-fcts)) # For each of the basic types (float, double, long double), replace the diff --git a/math/Versions b/math/Versions index eaa3b25b0d..01ed388ae5 100644 --- a/math/Versions +++ b/math/Versions @@ -445,110 +445,110 @@ libm { y0f64x; y1f64x; ynf64x; - # _Float64 and _Float32x functions, for all configurations. - acosf64; acosf32x; - acoshf64; acoshf32x; - asinf64; asinf32x; - asinhf64; asinhf32x; - atan2f64; atan2f32x; - atanf64; atanf32x; - atanhf64; atanhf32x; - cabsf64; cabsf32x; - cacosf64; cacosf32x; - cacoshf64; cacoshf32x; - canonicalizef64; canonicalizef32x; - cargf64; cargf32x; - casinf64; casinf32x; - casinhf64; casinhf32x; - catanf64; catanf32x; - catanhf64; catanhf32x; - cbrtf64; cbrtf32x; - ccosf64; ccosf32x; - ccoshf64; ccoshf32x; - ceilf64; ceilf32x; - cexpf64; cexpf32x; - cimagf64; cimagf32x; - clog10f64; clog10f32x; - clogf64; clogf32x; - conjf64; conjf32x; - copysignf64; copysignf32x; - cosf64; cosf32x; - coshf64; coshf32x; - cpowf64; cpowf32x; - cprojf64; cprojf32x; - crealf64; crealf32x; - csinf64; csinf32x; - csinhf64; csinhf32x; - csqrtf64; csqrtf32x; - ctanf64; ctanf32x; - ctanhf64; ctanhf32x; - erfcf64; erfcf32x; - erff64; erff32x; - exp10f64; exp10f32x; - exp2f64; exp2f32x; - expf64; expf32x; - expm1f64; expm1f32x; - fabsf64; fabsf32x; - fdimf64; fdimf32x; - floorf64; floorf32x; - fmaf64; fmaf32x; - fmaxf64; fmaxf32x; - fmaxmagf64; fmaxmagf32x; - fminf64; fminf32x; - fminmagf64; fminmagf32x; - fmodf64; fmodf32x; - frexpf64; frexpf32x; - fromfpf64; fromfpf32x; - fromfpxf64; fromfpxf32x; - getpayloadf64; getpayloadf32x; - hypotf64; hypotf32x; - ilogbf64; ilogbf32x; - j0f64; j0f32x; - j1f64; j1f32x; - jnf64; jnf32x; - ldexpf64; ldexpf32x; - lgammaf64; lgammaf32x; - lgammaf64_r; lgammaf32x_r; - llogbf64; llogbf32x; - llrintf64; llrintf32x; - llroundf64; llroundf32x; - log10f64; log10f32x; - log1pf64; log1pf32x; - log2f64; log2f32x; - logbf64; logbf32x; - logf64; logf32x; - lrintf64; lrintf32x; - lroundf64; lroundf32x; - modff64; modff32x; - nanf64; nanf32x; - nearbyintf64; nearbyintf32x; - nextafterf64; nextafterf32x; - nextdownf64; nextdownf32x; - nextupf64; nextupf32x; - powf64; powf32x; - remainderf64; remainderf32x; - remquof64; remquof32x; - rintf64; rintf32x; - roundevenf64; roundevenf32x; - roundf64; roundf32x; - scalblnf64; scalblnf32x; - scalbnf64; scalbnf32x; - setpayloadf64; setpayloadf32x; - setpayloadsigf64; setpayloadsigf32x; - sincosf64; sincosf32x; - sinf64; sinf32x; - sinhf64; sinhf32x; - sqrtf64; sqrtf32x; - tanf64; tanf32x; - tanhf64; tanhf32x; - tgammaf64; tgammaf32x; - totalorderf64; totalorderf32x; - totalordermagf64; totalordermagf32x; - truncf64; truncf32x; - ufromfpf64; ufromfpf32x; - ufromfpxf64; ufromfpxf32x; - y0f64; y0f32x; - y1f64; y1f32x; - ynf64; ynf32x; + # _Float32, _Float64 and _Float32x functions, for all configurations. + acosf32; acosf64; acosf32x; + acoshf32; acoshf64; acoshf32x; + asinf32; asinf64; asinf32x; + asinhf32; asinhf64; asinhf32x; + atan2f32; atan2f64; atan2f32x; + atanf32; atanf64; atanf32x; + atanhf32; atanhf64; atanhf32x; + cabsf32; cabsf64; cabsf32x; + cacosf32; cacosf64; cacosf32x; + cacoshf32; cacoshf64; cacoshf32x; + canonicalizef32; canonicalizef64; canonicalizef32x; + cargf32; cargf64; cargf32x; + casinf32; casinf64; casinf32x; + casinhf32; casinhf64; casinhf32x; + catanf32; catanf64; catanf32x; + catanhf32; catanhf64; catanhf32x; + cbrtf32; cbrtf64; cbrtf32x; + ccosf32; ccosf64; ccosf32x; + ccoshf32; ccoshf64; ccoshf32x; + ceilf32; ceilf64; ceilf32x; + cexpf32; cexpf64; cexpf32x; + cimagf32; cimagf64; cimagf32x; + clog10f32; clog10f64; clog10f32x; + clogf32; clogf64; clogf32x; + conjf32; conjf64; conjf32x; + copysignf32; copysignf64; copysignf32x; + cosf32; cosf64; cosf32x; + coshf32; coshf64; coshf32x; + cpowf32; cpowf64; cpowf32x; + cprojf32; cprojf64; cprojf32x; + crealf32; crealf64; crealf32x; + csinf32; csinf64; csinf32x; + csinhf32; csinhf64; csinhf32x; + csqrtf32; csqrtf64; csqrtf32x; + ctanf32; ctanf64; ctanf32x; + ctanhf32; ctanhf64; ctanhf32x; + erfcf32; erfcf64; erfcf32x; + erff32; erff64; erff32x; + exp10f32; exp10f64; exp10f32x; + exp2f32; exp2f64; exp2f32x; + expf32; expf64; expf32x; + expm1f32; expm1f64; expm1f32x; + fabsf32; fabsf64; fabsf32x; + fdimf32; fdimf64; fdimf32x; + floorf32; floorf64; floorf32x; + fmaf32; fmaf64; fmaf32x; + fmaxf32; fmaxf64; fmaxf32x; + fmaxmagf32; fmaxmagf64; fmaxmagf32x; + fminf32; fminf64; fminf32x; + fminmagf32; fminmagf64; fminmagf32x; + fmodf32; fmodf64; fmodf32x; + frexpf32; frexpf64; frexpf32x; + fromfpf32; fromfpf64; fromfpf32x; + fromfpxf32; fromfpxf64; fromfpxf32x; + getpayloadf32; getpayloadf64; getpayloadf32x; + hypotf32; hypotf64; hypotf32x; + ilogbf32; ilogbf64; ilogbf32x; + j0f32; j0f64; j0f32x; + j1f32; j1f64; j1f32x; + jnf32; jnf64; jnf32x; + ldexpf32; ldexpf64; ldexpf32x; + lgammaf32; lgammaf64; lgammaf32x; + lgammaf32_r; lgammaf64_r; lgammaf32x_r; + llogbf32; llogbf64; llogbf32x; + llrintf32; llrintf64; llrintf32x; + llroundf32; llroundf64; llroundf32x; + log10f32; log10f64; log10f32x; + log1pf32; log1pf64; log1pf32x; + log2f32; log2f64; log2f32x; + logbf32; logbf64; logbf32x; + logf32; logf64; logf32x; + lrintf32; lrintf64; lrintf32x; + lroundf32; lroundf64; lroundf32x; + modff32; modff64; modff32x; + nanf32; nanf64; nanf32x; + nearbyintf32; nearbyintf64; nearbyintf32x; + nextafterf32; nextafterf64; nextafterf32x; + nextdownf32; nextdownf64; nextdownf32x; + nextupf32; nextupf64; nextupf32x; + powf32; powf64; powf32x; + remainderf32; remainderf64; remainderf32x; + remquof32; remquof64; remquof32x; + rintf32; rintf64; rintf32x; + roundevenf32; roundevenf64; roundevenf32x; + roundf32; roundf64; roundf32x; + scalblnf32; scalblnf64; scalblnf32x; + scalbnf32; scalbnf64; scalbnf32x; + setpayloadf32; setpayloadf64; setpayloadf32x; + setpayloadsigf32; setpayloadsigf64; setpayloadsigf32x; + sincosf32; sincosf64; sincosf32x; + sinf32; sinf64; sinf32x; + sinhf32; sinhf64; sinhf32x; + sqrtf32; sqrtf64; sqrtf32x; + tanf32; tanf64; tanf32x; + tanhf32; tanhf64; tanhf32x; + tgammaf32; tgammaf64; tgammaf32x; + totalorderf32; totalorderf64; totalorderf32x; + totalordermagf32; totalordermagf64; totalordermagf32x; + truncf32; truncf64; truncf32x; + ufromfpf32; ufromfpf64; ufromfpf32x; + ufromfpxf32; ufromfpxf64; ufromfpxf32x; + y0f32; y0f64; y0f32x; + y1f32; y1f64; y1f32x; + ynf32; ynf64; ynf32x; } } diff --git a/stdlib/Versions b/stdlib/Versions index 9352098dd2..a2dfa322ed 100644 --- a/stdlib/Versions +++ b/stdlib/Versions @@ -134,10 +134,10 @@ libc { strfromf64x; strtof64x; strtof64x_l; - # _Float64 and _Float32x functions, for all configurations. - strfromf64; strfromf32x; - strtof64; strtof32x; - strtof64_l; strtof32x_l; + # _Float32, _Float64 and _Float32x functions, for all configurations. + strfromf32; strfromf64; strfromf32x; + strtof32; strtof64; strtof32x; + strtof32_l; strtof64_l; strtof32x_l; } GLIBC_PRIVATE { # functions which have an additional interface since they are diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 1dc47acbfe..93e12af4e5 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -108,6 +108,7 @@ double: 1 float: 1 float128: 4 idouble: 1 +ifloat: 1 ifloat128: 4 ildouble: 5 ldouble: 5 @@ -117,6 +118,7 @@ double: 1 float: 1 float128: 2 idouble: 1 +ifloat: 1 ifloat128: 2 ildouble: 4 ldouble: 4 @@ -1270,6 +1272,7 @@ double: 1 float: 1 float128: 1 idouble: 1 +ifloat: 1 ifloat128: 1 ildouble: 2 ldouble: 2 @@ -1299,7 +1302,7 @@ double: 4 float: 2 float128: 3 idouble: 4 -ifloat: 1 +ifloat: 2 ifloat128: 1 ildouble: 2 ldouble: 3 @@ -2507,7 +2510,7 @@ double: 4 float: 2 float128: 4 idouble: 4 -ifloat: 1 +ifloat: 2 ifloat128: 4 ildouble: 5 ldouble: 5 diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps index 7e13fc7948..8a862ef2eb 100644 --- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps +++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps @@ -108,6 +108,7 @@ double: 1 float: 1 float128: 4 idouble: 1 +ifloat: 1 ifloat128: 4 ildouble: 5 ldouble: 5 @@ -117,6 +118,7 @@ double: 1 float: 1 float128: 2 idouble: 1 +ifloat: 1 ifloat128: 2 ildouble: 4 ldouble: 4 @@ -1262,6 +1264,7 @@ double: 1 float: 1 float128: 1 idouble: 1 +ifloat: 1 ifloat128: 1 ildouble: 2 ldouble: 2 @@ -1291,7 +1294,7 @@ double: 4 float: 2 float128: 3 idouble: 4 -ifloat: 1 +ifloat: 2 ifloat128: 1 ildouble: 2 ldouble: 3 @@ -2491,7 +2494,7 @@ double: 4 float: 2 float128: 4 idouble: 4 -ifloat: 1 +ifloat: 2 ifloat128: 4 ildouble: 5 ldouble: 5 diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index ec18372401..ec0ead15dd 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2114,11 +2114,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -2127,6 +2130,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index d4e7084174..7caff9b034 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -462,253 +462,316 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F @@ -716,169 +779,210 @@ GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 6bf87b69ac..5355769974 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2025,11 +2025,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -2038,6 +2041,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index ed0dac6312..19305d9e23 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -472,253 +472,316 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F @@ -726,169 +789,210 @@ GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 4243e83ea9..9bafe71b51 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -114,12 +114,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index df350c8993..613df712c4 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -118,217 +118,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 6780c22e9a..90aa8d034f 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1878,12 +1878,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 5e334affbe..8496fa617a 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -430,217 +430,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 332baed1f8..4d44c30c64 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2043,15 +2043,20 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 609f5bc7d5..9ef6fc6777 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -612,320 +612,424 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 80e56308b8..112fc57634 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1907,15 +1907,20 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index ad3d86f454..9de432536c 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -541,320 +541,424 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index f60204eee1..2e8b6a4586 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -115,12 +115,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index df350c8993..613df712c4 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -118,217 +118,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index ff926c1301..3c33400f67 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1992,12 +1992,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index 62203c0492..b72723a5a7 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -472,217 +472,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 46b1d7e2fc..e1b1a579d2 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2113,12 +2113,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index 94cc0d639a..8c04695a0b 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -429,216 +429,320 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 70d90bcb3a..c1550323f3 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1967,12 +1967,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 30eb76d9ca..b15ddf8831 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -431,217 +431,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 10f9d46639..3b3a172e4f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1965,12 +1965,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index cf81755229..3ab51cb61d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -464,253 +464,316 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F @@ -718,169 +781,210 @@ GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index a21c0206cc..101ca7a241 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1964,11 +1964,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -1977,6 +1980,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 8a3b317755..2d129f7170 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1959,11 +1959,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -1972,6 +1975,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 3425e2d1cf..8bc350aff8 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2154,12 +2154,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 5347a2180a..2c47b2b82e 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -429,216 +429,320 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 47c38c46df..127c426e1c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1996,12 +1996,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index 96c8f1b74c..d3baaf7e66 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -474,217 +474,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 533fd822f7..a9411318e2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2001,12 +2001,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 52cc686f63..7c6467c71e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -473,217 +473,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 690c592cb3..d7bf5db601 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2208,15 +2208,20 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 16f72e1e86..a3415a72ac 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -115,12 +115,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index 17bc407b7c..9b6fffb5e4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -606,320 +606,424 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index fac7b49122..9443bd90c3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -149,217 +149,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.3 GLIBC_2.3 A diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index fd5e07962b..414338f9a2 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1997,11 +1997,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -2010,6 +2013,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index b1f34a3d07..af68d0cf1b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -462,253 +462,316 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F @@ -716,169 +779,210 @@ GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index da4839996f..f0f7a69b64 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1898,11 +1898,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -1911,6 +1914,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 9d6f6003d7..430c5ae084 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -460,253 +460,316 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F @@ -714,169 +777,210 @@ GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 085cd49a9b..9f95aba898 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1882,12 +1882,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index cea342ac79..7e48be9c66 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -430,217 +430,321 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index fa824c5458..83fbdf2d7e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1990,11 +1990,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -2003,6 +2006,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index ca6d1b5770..9d25c07c50 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -469,253 +469,316 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F @@ -723,169 +786,210 @@ GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 0f93a561a6..ee84ad10bc 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1927,11 +1927,14 @@ GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F GLIBC_2.27 strfromf128 F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F GLIBC_2.27 strtof128 F GLIBC_2.27 strtof128_l F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F @@ -1940,6 +1943,8 @@ GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F GLIBC_2.27 wcstof128 F GLIBC_2.27 wcstof128_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index acaff564fc..1311767193 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -463,253 +463,316 @@ GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F GLIBC_2.27 acoshf128 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F GLIBC_2.27 asinf128 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F GLIBC_2.27 asinhf128 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F GLIBC_2.27 atan2f128 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F GLIBC_2.27 atanf128 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F GLIBC_2.27 atanhf128 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F GLIBC_2.27 cabsf128 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F GLIBC_2.27 cacosf128 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F GLIBC_2.27 cacoshf128 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F GLIBC_2.27 canonicalizef128 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F GLIBC_2.27 cargf128 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F GLIBC_2.27 casinf128 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F GLIBC_2.27 casinhf128 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F GLIBC_2.27 catanf128 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F GLIBC_2.27 catanhf128 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F GLIBC_2.27 cbrtf128 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F GLIBC_2.27 ccosf128 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F GLIBC_2.27 ccoshf128 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F GLIBC_2.27 ceilf128 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F GLIBC_2.27 cexpf128 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F GLIBC_2.27 cimagf128 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F GLIBC_2.27 clog10f128 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F GLIBC_2.27 clogf128 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F GLIBC_2.27 conjf128 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F GLIBC_2.27 copysignf128 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F GLIBC_2.27 cosf128 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F GLIBC_2.27 coshf128 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F GLIBC_2.27 cpowf128 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F GLIBC_2.27 cprojf128 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F GLIBC_2.27 crealf128 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F GLIBC_2.27 csinf128 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F GLIBC_2.27 csinhf128 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F GLIBC_2.27 csqrtf128 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F GLIBC_2.27 ctanf128 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F GLIBC_2.27 ctanhf128 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F GLIBC_2.27 erfcf128 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F GLIBC_2.27 erff128 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F GLIBC_2.27 exp10f128 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F GLIBC_2.27 exp2f128 F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F GLIBC_2.27 expf128 F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F GLIBC_2.27 expm1f128 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F GLIBC_2.27 fabsf128 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F GLIBC_2.27 fdimf128 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F GLIBC_2.27 floorf128 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F GLIBC_2.27 fmaf128 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F GLIBC_2.27 fmaxf128 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F GLIBC_2.27 fmaxmagf128 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F GLIBC_2.27 fminf128 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F GLIBC_2.27 fminmagf128 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F GLIBC_2.27 fmodf128 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F GLIBC_2.27 frexpf128 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F GLIBC_2.27 fromfpf128 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F GLIBC_2.27 fromfpxf128 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F GLIBC_2.27 getpayloadf128 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F GLIBC_2.27 hypotf128 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F GLIBC_2.27 ilogbf128 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F GLIBC_2.27 j0f128 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F GLIBC_2.27 j1f128 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F GLIBC_2.27 jnf128 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F GLIBC_2.27 ldexpf128 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F GLIBC_2.27 lgammaf128 F GLIBC_2.27 lgammaf128_r F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F @@ -717,169 +780,210 @@ GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F GLIBC_2.27 llogbf128 F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F GLIBC_2.27 llrintf128 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F GLIBC_2.27 llroundf128 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F GLIBC_2.27 log10f128 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F GLIBC_2.27 log1pf128 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F GLIBC_2.27 log2f128 F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F GLIBC_2.27 logbf128 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F GLIBC_2.27 logf128 F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F GLIBC_2.27 lrintf128 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F GLIBC_2.27 lroundf128 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F GLIBC_2.27 modff128 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F GLIBC_2.27 nanf128 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F GLIBC_2.27 nearbyintf128 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F GLIBC_2.27 nextafterf128 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F GLIBC_2.27 nextdownf128 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F GLIBC_2.27 nextupf128 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F GLIBC_2.27 powf128 F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F GLIBC_2.27 remainderf128 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F GLIBC_2.27 remquof128 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F GLIBC_2.27 rintf128 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F GLIBC_2.27 roundevenf128 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F GLIBC_2.27 roundf128 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F GLIBC_2.27 scalblnf128 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F GLIBC_2.27 scalbnf128 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F GLIBC_2.27 setpayloadf128 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F GLIBC_2.27 setpayloadsigf128 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F GLIBC_2.27 sincosf128 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F GLIBC_2.27 sinf128 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F GLIBC_2.27 sinhf128 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F GLIBC_2.27 sqrtf128 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F GLIBC_2.27 tanf128 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F GLIBC_2.27 tanhf128 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F GLIBC_2.27 tgammaf128 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F GLIBC_2.27 totalorderf128 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F GLIBC_2.27 totalordermagf128 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F GLIBC_2.27 truncf128 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F GLIBC_2.27 ufromfpf128 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F GLIBC_2.27 ufromfpxf128 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F GLIBC_2.27 y0f128 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F GLIBC_2.27 y1f128 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F GLIBC_2.27 ynf128 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist index 3e709da5ea..dcbfbc05ac 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist @@ -2120,12 +2120,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist index 23f52a9ca3..6b375f5152 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist @@ -430,216 +430,320 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist index a5278b3b34..53dc99c45a 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist @@ -2120,12 +2120,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist index 23f52a9ca3..6b375f5152 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist @@ -430,216 +430,320 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist index 3e709da5ea..dcbfbc05ac 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist @@ -2120,12 +2120,17 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist index 23f52a9ca3..6b375f5152 100644 --- a/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist @@ -430,216 +430,320 @@ GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index d3d15faee1..ae4dcaa47e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1884,15 +1884,20 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index abcae75c2e..fc1c6019c7 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -601,320 +601,424 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 5e21afc9fd..0dbda14796 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2127,15 +2127,20 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F GLIBC_2.27 strfromf64 F GLIBC_2.27 strfromf64x F +GLIBC_2.27 strtof32 F +GLIBC_2.27 strtof32_l F GLIBC_2.27 strtof32x F GLIBC_2.27 strtof32x_l F GLIBC_2.27 strtof64 F GLIBC_2.27 strtof64_l F GLIBC_2.27 strtof64x F GLIBC_2.27 strtof64x_l F +GLIBC_2.27 wcstof32 F +GLIBC_2.27 wcstof32_l F GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 0decae1de8..75ef25f07b 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -600,320 +600,424 @@ GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F GLIBC_2.27 acosf64x F +GLIBC_2.27 acoshf32 F GLIBC_2.27 acoshf32x F GLIBC_2.27 acoshf64 F GLIBC_2.27 acoshf64x F +GLIBC_2.27 asinf32 F GLIBC_2.27 asinf32x F GLIBC_2.27 asinf64 F GLIBC_2.27 asinf64x F +GLIBC_2.27 asinhf32 F GLIBC_2.27 asinhf32x F GLIBC_2.27 asinhf64 F GLIBC_2.27 asinhf64x F +GLIBC_2.27 atan2f32 F GLIBC_2.27 atan2f32x F GLIBC_2.27 atan2f64 F GLIBC_2.27 atan2f64x F +GLIBC_2.27 atanf32 F GLIBC_2.27 atanf32x F GLIBC_2.27 atanf64 F GLIBC_2.27 atanf64x F +GLIBC_2.27 atanhf32 F GLIBC_2.27 atanhf32x F GLIBC_2.27 atanhf64 F GLIBC_2.27 atanhf64x F +GLIBC_2.27 cabsf32 F GLIBC_2.27 cabsf32x F GLIBC_2.27 cabsf64 F GLIBC_2.27 cabsf64x F +GLIBC_2.27 cacosf32 F GLIBC_2.27 cacosf32x F GLIBC_2.27 cacosf64 F GLIBC_2.27 cacosf64x F +GLIBC_2.27 cacoshf32 F GLIBC_2.27 cacoshf32x F GLIBC_2.27 cacoshf64 F GLIBC_2.27 cacoshf64x F +GLIBC_2.27 canonicalizef32 F GLIBC_2.27 canonicalizef32x F GLIBC_2.27 canonicalizef64 F GLIBC_2.27 canonicalizef64x F +GLIBC_2.27 cargf32 F GLIBC_2.27 cargf32x F GLIBC_2.27 cargf64 F GLIBC_2.27 cargf64x F +GLIBC_2.27 casinf32 F GLIBC_2.27 casinf32x F GLIBC_2.27 casinf64 F GLIBC_2.27 casinf64x F +GLIBC_2.27 casinhf32 F GLIBC_2.27 casinhf32x F GLIBC_2.27 casinhf64 F GLIBC_2.27 casinhf64x F +GLIBC_2.27 catanf32 F GLIBC_2.27 catanf32x F GLIBC_2.27 catanf64 F GLIBC_2.27 catanf64x F +GLIBC_2.27 catanhf32 F GLIBC_2.27 catanhf32x F GLIBC_2.27 catanhf64 F GLIBC_2.27 catanhf64x F +GLIBC_2.27 cbrtf32 F GLIBC_2.27 cbrtf32x F GLIBC_2.27 cbrtf64 F GLIBC_2.27 cbrtf64x F +GLIBC_2.27 ccosf32 F GLIBC_2.27 ccosf32x F GLIBC_2.27 ccosf64 F GLIBC_2.27 ccosf64x F +GLIBC_2.27 ccoshf32 F GLIBC_2.27 ccoshf32x F GLIBC_2.27 ccoshf64 F GLIBC_2.27 ccoshf64x F +GLIBC_2.27 ceilf32 F GLIBC_2.27 ceilf32x F GLIBC_2.27 ceilf64 F GLIBC_2.27 ceilf64x F +GLIBC_2.27 cexpf32 F GLIBC_2.27 cexpf32x F GLIBC_2.27 cexpf64 F GLIBC_2.27 cexpf64x F +GLIBC_2.27 cimagf32 F GLIBC_2.27 cimagf32x F GLIBC_2.27 cimagf64 F GLIBC_2.27 cimagf64x F +GLIBC_2.27 clog10f32 F GLIBC_2.27 clog10f32x F GLIBC_2.27 clog10f64 F GLIBC_2.27 clog10f64x F +GLIBC_2.27 clogf32 F GLIBC_2.27 clogf32x F GLIBC_2.27 clogf64 F GLIBC_2.27 clogf64x F +GLIBC_2.27 conjf32 F GLIBC_2.27 conjf32x F GLIBC_2.27 conjf64 F GLIBC_2.27 conjf64x F +GLIBC_2.27 copysignf32 F GLIBC_2.27 copysignf32x F GLIBC_2.27 copysignf64 F GLIBC_2.27 copysignf64x F +GLIBC_2.27 cosf32 F GLIBC_2.27 cosf32x F GLIBC_2.27 cosf64 F GLIBC_2.27 cosf64x F +GLIBC_2.27 coshf32 F GLIBC_2.27 coshf32x F GLIBC_2.27 coshf64 F GLIBC_2.27 coshf64x F +GLIBC_2.27 cpowf32 F GLIBC_2.27 cpowf32x F GLIBC_2.27 cpowf64 F GLIBC_2.27 cpowf64x F +GLIBC_2.27 cprojf32 F GLIBC_2.27 cprojf32x F GLIBC_2.27 cprojf64 F GLIBC_2.27 cprojf64x F +GLIBC_2.27 crealf32 F GLIBC_2.27 crealf32x F GLIBC_2.27 crealf64 F GLIBC_2.27 crealf64x F +GLIBC_2.27 csinf32 F GLIBC_2.27 csinf32x F GLIBC_2.27 csinf64 F GLIBC_2.27 csinf64x F +GLIBC_2.27 csinhf32 F GLIBC_2.27 csinhf32x F GLIBC_2.27 csinhf64 F GLIBC_2.27 csinhf64x F +GLIBC_2.27 csqrtf32 F GLIBC_2.27 csqrtf32x F GLIBC_2.27 csqrtf64 F GLIBC_2.27 csqrtf64x F +GLIBC_2.27 ctanf32 F GLIBC_2.27 ctanf32x F GLIBC_2.27 ctanf64 F GLIBC_2.27 ctanf64x F +GLIBC_2.27 ctanhf32 F GLIBC_2.27 ctanhf32x F GLIBC_2.27 ctanhf64 F GLIBC_2.27 ctanhf64x F +GLIBC_2.27 erfcf32 F GLIBC_2.27 erfcf32x F GLIBC_2.27 erfcf64 F GLIBC_2.27 erfcf64x F +GLIBC_2.27 erff32 F GLIBC_2.27 erff32x F GLIBC_2.27 erff64 F GLIBC_2.27 erff64x F +GLIBC_2.27 exp10f32 F GLIBC_2.27 exp10f32x F GLIBC_2.27 exp10f64 F GLIBC_2.27 exp10f64x F GLIBC_2.27 exp2f F +GLIBC_2.27 exp2f32 F GLIBC_2.27 exp2f32x F GLIBC_2.27 exp2f64 F GLIBC_2.27 exp2f64x F GLIBC_2.27 expf F +GLIBC_2.27 expf32 F GLIBC_2.27 expf32x F GLIBC_2.27 expf64 F GLIBC_2.27 expf64x F +GLIBC_2.27 expm1f32 F GLIBC_2.27 expm1f32x F GLIBC_2.27 expm1f64 F GLIBC_2.27 expm1f64x F +GLIBC_2.27 fabsf32 F GLIBC_2.27 fabsf32x F GLIBC_2.27 fabsf64 F GLIBC_2.27 fabsf64x F +GLIBC_2.27 fdimf32 F GLIBC_2.27 fdimf32x F GLIBC_2.27 fdimf64 F GLIBC_2.27 fdimf64x F +GLIBC_2.27 floorf32 F GLIBC_2.27 floorf32x F GLIBC_2.27 floorf64 F GLIBC_2.27 floorf64x F +GLIBC_2.27 fmaf32 F GLIBC_2.27 fmaf32x F GLIBC_2.27 fmaf64 F GLIBC_2.27 fmaf64x F +GLIBC_2.27 fmaxf32 F GLIBC_2.27 fmaxf32x F GLIBC_2.27 fmaxf64 F GLIBC_2.27 fmaxf64x F +GLIBC_2.27 fmaxmagf32 F GLIBC_2.27 fmaxmagf32x F GLIBC_2.27 fmaxmagf64 F GLIBC_2.27 fmaxmagf64x F +GLIBC_2.27 fminf32 F GLIBC_2.27 fminf32x F GLIBC_2.27 fminf64 F GLIBC_2.27 fminf64x F +GLIBC_2.27 fminmagf32 F GLIBC_2.27 fminmagf32x F GLIBC_2.27 fminmagf64 F GLIBC_2.27 fminmagf64x F +GLIBC_2.27 fmodf32 F GLIBC_2.27 fmodf32x F GLIBC_2.27 fmodf64 F GLIBC_2.27 fmodf64x F +GLIBC_2.27 frexpf32 F GLIBC_2.27 frexpf32x F GLIBC_2.27 frexpf64 F GLIBC_2.27 frexpf64x F +GLIBC_2.27 fromfpf32 F GLIBC_2.27 fromfpf32x F GLIBC_2.27 fromfpf64 F GLIBC_2.27 fromfpf64x F +GLIBC_2.27 fromfpxf32 F GLIBC_2.27 fromfpxf32x F GLIBC_2.27 fromfpxf64 F GLIBC_2.27 fromfpxf64x F +GLIBC_2.27 getpayloadf32 F GLIBC_2.27 getpayloadf32x F GLIBC_2.27 getpayloadf64 F GLIBC_2.27 getpayloadf64x F +GLIBC_2.27 hypotf32 F GLIBC_2.27 hypotf32x F GLIBC_2.27 hypotf64 F GLIBC_2.27 hypotf64x F +GLIBC_2.27 ilogbf32 F GLIBC_2.27 ilogbf32x F GLIBC_2.27 ilogbf64 F GLIBC_2.27 ilogbf64x F +GLIBC_2.27 j0f32 F GLIBC_2.27 j0f32x F GLIBC_2.27 j0f64 F GLIBC_2.27 j0f64x F +GLIBC_2.27 j1f32 F GLIBC_2.27 j1f32x F GLIBC_2.27 j1f64 F GLIBC_2.27 j1f64x F +GLIBC_2.27 jnf32 F GLIBC_2.27 jnf32x F GLIBC_2.27 jnf64 F GLIBC_2.27 jnf64x F +GLIBC_2.27 ldexpf32 F GLIBC_2.27 ldexpf32x F GLIBC_2.27 ldexpf64 F GLIBC_2.27 ldexpf64x F +GLIBC_2.27 lgammaf32 F +GLIBC_2.27 lgammaf32_r F GLIBC_2.27 lgammaf32x F GLIBC_2.27 lgammaf32x_r F GLIBC_2.27 lgammaf64 F GLIBC_2.27 lgammaf64_r F GLIBC_2.27 lgammaf64x F GLIBC_2.27 lgammaf64x_r F +GLIBC_2.27 llogbf32 F GLIBC_2.27 llogbf32x F GLIBC_2.27 llogbf64 F GLIBC_2.27 llogbf64x F +GLIBC_2.27 llrintf32 F GLIBC_2.27 llrintf32x F GLIBC_2.27 llrintf64 F GLIBC_2.27 llrintf64x F +GLIBC_2.27 llroundf32 F GLIBC_2.27 llroundf32x F GLIBC_2.27 llroundf64 F GLIBC_2.27 llroundf64x F +GLIBC_2.27 log10f32 F GLIBC_2.27 log10f32x F GLIBC_2.27 log10f64 F GLIBC_2.27 log10f64x F +GLIBC_2.27 log1pf32 F GLIBC_2.27 log1pf32x F GLIBC_2.27 log1pf64 F GLIBC_2.27 log1pf64x F GLIBC_2.27 log2f F +GLIBC_2.27 log2f32 F GLIBC_2.27 log2f32x F GLIBC_2.27 log2f64 F GLIBC_2.27 log2f64x F +GLIBC_2.27 logbf32 F GLIBC_2.27 logbf32x F GLIBC_2.27 logbf64 F GLIBC_2.27 logbf64x F GLIBC_2.27 logf F +GLIBC_2.27 logf32 F GLIBC_2.27 logf32x F GLIBC_2.27 logf64 F GLIBC_2.27 logf64x F +GLIBC_2.27 lrintf32 F GLIBC_2.27 lrintf32x F GLIBC_2.27 lrintf64 F GLIBC_2.27 lrintf64x F +GLIBC_2.27 lroundf32 F GLIBC_2.27 lroundf32x F GLIBC_2.27 lroundf64 F GLIBC_2.27 lroundf64x F +GLIBC_2.27 modff32 F GLIBC_2.27 modff32x F GLIBC_2.27 modff64 F GLIBC_2.27 modff64x F +GLIBC_2.27 nanf32 F GLIBC_2.27 nanf32x F GLIBC_2.27 nanf64 F GLIBC_2.27 nanf64x F +GLIBC_2.27 nearbyintf32 F GLIBC_2.27 nearbyintf32x F GLIBC_2.27 nearbyintf64 F GLIBC_2.27 nearbyintf64x F +GLIBC_2.27 nextafterf32 F GLIBC_2.27 nextafterf32x F GLIBC_2.27 nextafterf64 F GLIBC_2.27 nextafterf64x F +GLIBC_2.27 nextdownf32 F GLIBC_2.27 nextdownf32x F GLIBC_2.27 nextdownf64 F GLIBC_2.27 nextdownf64x F +GLIBC_2.27 nextupf32 F GLIBC_2.27 nextupf32x F GLIBC_2.27 nextupf64 F GLIBC_2.27 nextupf64x F GLIBC_2.27 powf F +GLIBC_2.27 powf32 F GLIBC_2.27 powf32x F GLIBC_2.27 powf64 F GLIBC_2.27 powf64x F +GLIBC_2.27 remainderf32 F GLIBC_2.27 remainderf32x F GLIBC_2.27 remainderf64 F GLIBC_2.27 remainderf64x F +GLIBC_2.27 remquof32 F GLIBC_2.27 remquof32x F GLIBC_2.27 remquof64 F GLIBC_2.27 remquof64x F +GLIBC_2.27 rintf32 F GLIBC_2.27 rintf32x F GLIBC_2.27 rintf64 F GLIBC_2.27 rintf64x F +GLIBC_2.27 roundevenf32 F GLIBC_2.27 roundevenf32x F GLIBC_2.27 roundevenf64 F GLIBC_2.27 roundevenf64x F +GLIBC_2.27 roundf32 F GLIBC_2.27 roundf32x F GLIBC_2.27 roundf64 F GLIBC_2.27 roundf64x F +GLIBC_2.27 scalblnf32 F GLIBC_2.27 scalblnf32x F GLIBC_2.27 scalblnf64 F GLIBC_2.27 scalblnf64x F +GLIBC_2.27 scalbnf32 F GLIBC_2.27 scalbnf32x F GLIBC_2.27 scalbnf64 F GLIBC_2.27 scalbnf64x F +GLIBC_2.27 setpayloadf32 F GLIBC_2.27 setpayloadf32x F GLIBC_2.27 setpayloadf64 F GLIBC_2.27 setpayloadf64x F +GLIBC_2.27 setpayloadsigf32 F GLIBC_2.27 setpayloadsigf32x F GLIBC_2.27 setpayloadsigf64 F GLIBC_2.27 setpayloadsigf64x F +GLIBC_2.27 sincosf32 F GLIBC_2.27 sincosf32x F GLIBC_2.27 sincosf64 F GLIBC_2.27 sincosf64x F +GLIBC_2.27 sinf32 F GLIBC_2.27 sinf32x F GLIBC_2.27 sinf64 F GLIBC_2.27 sinf64x F +GLIBC_2.27 sinhf32 F GLIBC_2.27 sinhf32x F GLIBC_2.27 sinhf64 F GLIBC_2.27 sinhf64x F +GLIBC_2.27 sqrtf32 F GLIBC_2.27 sqrtf32x F GLIBC_2.27 sqrtf64 F GLIBC_2.27 sqrtf64x F +GLIBC_2.27 tanf32 F GLIBC_2.27 tanf32x F GLIBC_2.27 tanf64 F GLIBC_2.27 tanf64x F +GLIBC_2.27 tanhf32 F GLIBC_2.27 tanhf32x F GLIBC_2.27 tanhf64 F GLIBC_2.27 tanhf64x F +GLIBC_2.27 tgammaf32 F GLIBC_2.27 tgammaf32x F GLIBC_2.27 tgammaf64 F GLIBC_2.27 tgammaf64x F +GLIBC_2.27 totalorderf32 F GLIBC_2.27 totalorderf32x F GLIBC_2.27 totalorderf64 F GLIBC_2.27 totalorderf64x F +GLIBC_2.27 totalordermagf32 F GLIBC_2.27 totalordermagf32x F GLIBC_2.27 totalordermagf64 F GLIBC_2.27 totalordermagf64x F +GLIBC_2.27 truncf32 F GLIBC_2.27 truncf32x F GLIBC_2.27 truncf64 F GLIBC_2.27 truncf64x F +GLIBC_2.27 ufromfpf32 F GLIBC_2.27 ufromfpf32x F GLIBC_2.27 ufromfpf64 F GLIBC_2.27 ufromfpf64x F +GLIBC_2.27 ufromfpxf32 F GLIBC_2.27 ufromfpxf32x F GLIBC_2.27 ufromfpxf64 F GLIBC_2.27 ufromfpxf64x F +GLIBC_2.27 y0f32 F GLIBC_2.27 y0f32x F GLIBC_2.27 y0f64 F GLIBC_2.27 y0f64x F +GLIBC_2.27 y1f32 F GLIBC_2.27 y1f32x F GLIBC_2.27 y1f64 F GLIBC_2.27 y1f64x F +GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F diff --git a/wcsmbs/Versions b/wcsmbs/Versions index a3f10eeece..0b31c1b940 100644 --- a/wcsmbs/Versions +++ b/wcsmbs/Versions @@ -45,8 +45,8 @@ libc { # _Float64x functions, only present for some configurations. wcstof64x; wcstof64x_l; - # _Float64 and _Float32x functions, for all configurations. - wcstof64; wcstof32x; - wcstof64_l; wcstof32x_l; + # _Float32, _Float64 and _Float32x functions, for all configurations. + wcstof32; wcstof64; wcstof32x; + wcstof32_l; wcstof64_l; wcstof32x_l; } } -- cgit v1.2.3 From bad7a0c81f501fbbcc79af9eaa4b8254441c4a1f Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 22 Dec 2017 10:55:40 +0100 Subject: copy_file_range: New function to copy file data The semantics are based on the Linux system call, but a very close emulation in user space is provided. --- ChangeLog | 21 + NEWS | 2 + io/Makefile | 10 +- io/Versions | 3 + io/copy_file_range-compat.c | 160 ++++ io/copy_file_range.c | 22 + io/tst-copy_file_range-compat.c | 30 + io/tst-copy_file_range.c | 833 +++++++++++++++++++++ manual/llio.texi | 88 +++ posix/unistd.h | 7 +- support/Makefile | 3 + support/support-xfstat.c | 28 + support/xftruncate.c | 27 + support/xlseek.c | 29 + support/xunistd.h | 3 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/copy_file_range.c | 46 ++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/kernel-features.h | 4 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist | 1 + sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 44 files changed, 1340 insertions(+), 3 deletions(-) create mode 100644 io/copy_file_range-compat.c create mode 100644 io/copy_file_range.c create mode 100644 io/tst-copy_file_range-compat.c create mode 100644 io/tst-copy_file_range.c create mode 100644 support/support-xfstat.c create mode 100644 support/xftruncate.c create mode 100644 support/xlseek.c create mode 100644 sysdeps/unix/sysv/linux/copy_file_range.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 55295b1368..14950fe373 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2017-12-22 Florian Weimer + + * io/Makefile (routines): Add copy_file_range. + (tests): Add tst-copy_file_range. + (tests-static, tests-internal): Add tst-copy_file_range-compat. + * io/Versions (GLIBC_2.27): Export copy_file_range. + * io/copy_file_range-compat.c: New file. + * io/copy_file_range.c: Likewise. + * io/tst-copy_file_range-compat.c: Likewise. + * io/tst-copy_file_range.c: Likewise. + * manual/llio.texi (Copying File Data): New section. + * posix/unistd.h [__USE_GNU] (copy_file_range): Declare. + * support/Makefile (libsupport-routines): Add support-xfstat, + xftruncate, xlseek. + * support/support-xfstat.c: New file. + * support/xftruncate.c: Likewise. + * support/xlseek.c: Likewise. + * support/xunistd.h (xfstat, xftruncate, xlseek): Declare. + * sysdeps/unix/sysv/linux/**.abilist: Update. + * sysdeps/unix/sysv/linux/copy_file_range.c: New file. + 2017-12-21 Szabolcs Nagy * scripts/build-many-glibcs.py (Context.add_all_configs): Add diff --git a/NEWS b/NEWS index d60b31575d..2a1a4bfd85 100644 --- a/NEWS +++ b/NEWS @@ -61,6 +61,8 @@ Major new features: declares the functions pkey_alloc, pkey_free, pkey_mprotect, pkey_set, pkey_get. +* The copy_file_range function was added. + * Optimized memcpy, mempcpy, memmove, and memset for sparc M7. * The ldconfig utility now processes `include' directives using the C/POSIX diff --git a/io/Makefile b/io/Makefile index c72519541f..85eb927d4c 100644 --- a/io/Makefile +++ b/io/Makefile @@ -52,7 +52,7 @@ routines := \ ftw ftw64 fts fts64 poll ppoll \ posix_fadvise posix_fadvise64 \ posix_fallocate posix_fallocate64 \ - sendfile sendfile64 \ + sendfile sendfile64 copy_file_range \ utimensat futimens # These routines will be omitted from the libc shared object. @@ -70,7 +70,13 @@ tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ tst-symlinkat tst-linkat tst-readlinkat tst-mkdirat \ tst-mknodat tst-mkfifoat tst-ttyname_r bug-ftw5 \ tst-posix_fallocate tst-posix_fallocate64 \ - tst-fts tst-fts-lfs tst-open-tmpfile + tst-fts tst-fts-lfs tst-open-tmpfile \ + tst-copy_file_range \ + +# This test includes the compat implementation of copy_file_range, +# which uses internal, unexported libc functions. +tests-static += tst-copy_file_range-compat +tests-internal += tst-copy_file_range-compat ifeq ($(run-built-tests),yes) tests-special += $(objpfx)ftwtest.out diff --git a/io/Versions b/io/Versions index 64316cd025..98898cb9d5 100644 --- a/io/Versions +++ b/io/Versions @@ -125,4 +125,7 @@ libc { GLIBC_2.23 { fts64_children; fts64_close; fts64_open; fts64_read; fts64_set; } + GLIBC_2.27 { + copy_file_range; + } } diff --git a/io/copy_file_range-compat.c b/io/copy_file_range-compat.c new file mode 100644 index 0000000000..5c1b7b3258 --- /dev/null +++ b/io/copy_file_range-compat.c @@ -0,0 +1,160 @@ +/* Emulation of copy_file_range. + Copyright (C) 2017 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 + . */ + +/* The following macros should be defined before including this + file: + + COPY_FILE_RANGE_DECL Declaration specifiers for the function below. + COPY_FILE_RANGE Name of the function to define. */ + +#include +#include +#include +#include +#include +#include +#include + +COPY_FILE_RANGE_DECL +ssize_t +COPY_FILE_RANGE (int infd, __off64_t *pinoff, + int outfd, __off64_t *poutoff, + size_t length, unsigned int flags) +{ + if (flags != 0) + { + __set_errno (EINVAL); + return -1; + } + + { + struct stat64 instat; + struct stat64 outstat; + if (fstat64 (infd, &instat) != 0 || fstat64 (outfd, &outstat) != 0) + return -1; + if (S_ISDIR (instat.st_mode) || S_ISDIR (outstat.st_mode)) + { + __set_errno (EISDIR); + return -1; + } + if (!S_ISREG (instat.st_mode) || !S_ISREG (outstat.st_mode)) + { + /* We need a regular input file so that the we can seek + backwards in case of a write failure. */ + __set_errno (EINVAL); + return -1; + } + if (instat.st_dev != outstat.st_dev) + { + /* Cross-device copies are not supported. */ + __set_errno (EXDEV); + return -1; + } + } + + /* The output descriptor must not have O_APPEND set. */ + { + int flags = __fcntl (outfd, F_GETFL); + if (flags & O_APPEND) + { + __set_errno (EBADF); + return -1; + } + } + + /* Avoid an overflow in the result. */ + if (length > SSIZE_MAX) + length = SSIZE_MAX; + + /* Main copying loop. The buffer size is arbitrary and is a + trade-off between stack size consumption, cache usage, and + amortization of system call overhead. */ + size_t copied = 0; + char buf[8192]; + while (length > 0) + { + size_t to_read = length; + if (to_read > sizeof (buf)) + to_read = sizeof (buf); + + /* Fill the buffer. */ + ssize_t read_count; + if (pinoff == NULL) + read_count = read (infd, buf, to_read); + else + read_count = __libc_pread64 (infd, buf, to_read, *pinoff); + if (read_count == 0) + /* End of file reached prematurely. */ + return copied; + if (read_count < 0) + { + if (copied > 0) + /* Report the number of bytes copied so far. */ + return copied; + return -1; + } + if (pinoff != NULL) + *pinoff += read_count; + + /* Write the buffer part which was read to the destination. */ + char *end = buf + read_count; + for (char *p = buf; p < end; ) + { + ssize_t write_count; + if (poutoff == NULL) + write_count = write (outfd, p, end - p); + else + write_count = __libc_pwrite64 (outfd, p, end - p, *poutoff); + if (write_count < 0) + { + /* Adjust the input read position to match what we have + written, so that the caller can pick up after the + error. */ + size_t written = p - buf; + /* NB: This needs to be signed so that we can form the + negative value below. */ + ssize_t overread = read_count - written; + if (pinoff == NULL) + { + if (overread > 0) + { + /* We are on an error recovery path, so we + cannot deal with failure here. */ + int save_errno = errno; + (void) __libc_lseek64 (infd, -overread, SEEK_CUR); + __set_errno (save_errno); + } + } + else /* pinoff != NULL */ + *pinoff -= overread; + + if (copied + written > 0) + /* Report the number of bytes copied so far. */ + return copied + written; + return -1; + } + p += write_count; + if (poutoff != NULL) + *poutoff += write_count; + } /* Write loop. */ + + copied += read_count; + length -= read_count; + } + return copied; +} diff --git a/io/copy_file_range.c b/io/copy_file_range.c new file mode 100644 index 0000000000..61ee6871b4 --- /dev/null +++ b/io/copy_file_range.c @@ -0,0 +1,22 @@ +/* Generic implementation of copy_file_range. + Copyright (C) 2017 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 + . */ + +#define COPY_FILE_RANGE_DECL +#define COPY_FILE_RANGE copy_file_range + +#include diff --git a/io/tst-copy_file_range-compat.c b/io/tst-copy_file_range-compat.c new file mode 100644 index 0000000000..eb737946d9 --- /dev/null +++ b/io/tst-copy_file_range-compat.c @@ -0,0 +1,30 @@ +/* Test the fallback implementation of copy_file_range. + Copyright (C) 2017 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 + . */ + +/* Get the declaration of the official copy_of_range function. */ +#include + +/* Compile a local version of copy_file_range. */ +#define COPY_FILE_RANGE_DECL static +#define COPY_FILE_RANGE copy_file_range_compat +#include + +/* Re-use the test, but run it against copy_file_range_compat defined + above. */ +#define copy_file_range copy_file_range_compat +#include "tst-copy_file_range.c" diff --git a/io/tst-copy_file_range.c b/io/tst-copy_file_range.c new file mode 100644 index 0000000000..d8f4e8ac04 --- /dev/null +++ b/io/tst-copy_file_range.c @@ -0,0 +1,833 @@ +/* Tests for copy_file_range. + Copyright (C) 2017 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Boolean flags which indicate whether to use pointers with explicit + output flags. */ +static int do_inoff; +static int do_outoff; + +/* Name and descriptors of the input files. Files are truncated and + reopened (with O_RDWR) between tests. */ +static char *infile; +static int infd; +static char *outfile; +static int outfd; + +/* Like the above, but on a different file system. xdevfile can be + NULL if no suitable file system has been found. */ +static char *xdevfile; + +/* Input and output offsets. Set according to do_inoff and do_outoff + before the test. The offsets themselves are always set to + zero. */ +static off64_t inoff; +static off64_t *pinoff; +static off64_t outoff; +static off64_t *poutoff; + +/* These are a collection of copy sizes used in tests. The selection + takes into account that the fallback implementation uses an + internal buffer of 8192 bytes. */ +enum { maximum_size = 99999 }; +static const int typical_sizes[] = + { 0, 1, 2, 3, 1024, 2048, 4096, 8191, 8192, 8193, 16383, 16384, 16385, + maximum_size }; + +/* The random contents of this array can be used as a pattern to check + for correct write operations. */ +static unsigned char random_data[maximum_size]; + +/* The size chosen by the test harness. */ +static int current_size; + +/* Maximum writable file offset. Updated by find_maximum_offset + below. */ +static off64_t maximum_offset; + +/* Error code when crossing the offset. */ +static int maximum_offset_errno; + +/* If true: Writes which cross the limit will fail. If false: Writes + which cross the limit will result in a partial write. */ +static bool maximum_offset_hard_limit; + +/* Fills maximum_offset etc. above. Truncates outfd as a side + effect. */ +static void +find_maximum_offset (void) +{ + xftruncate (outfd, 0); + if (maximum_offset != 0) + return; + + uint64_t upper = -1; + upper >>= 1; /* Maximum of off64_t. */ + TEST_VERIFY ((off64_t) upper > 0); + TEST_VERIFY ((off64_t) (upper + 1) < 0); + if (lseek64 (outfd, upper, SEEK_SET) >= 0) + { + if (write (outfd, "", 1) == 1) + FAIL_EXIT1 ("created a file larger than the off64_t range"); + } + + uint64_t lower = 1024 * 1024; /* A reasonable minimum file size. */ + /* Loop invariant: writing at lower succeeds, writing at upper fails. */ + while (lower + 1 < upper) + { + uint64_t middle = (lower + upper) / 2; + if (test_verbose > 0) + printf ("info: %s: remaining test range %" PRIu64 " .. %" PRIu64 + ", probe at %" PRIu64 "\n", __func__, lower, upper, middle); + xftruncate (outfd, 0); + if (lseek64 (outfd, middle, SEEK_SET) >= 0 + && write (outfd, "", 1) == 1) + lower = middle; + else + upper = middle; + } + TEST_VERIFY (lower + 1 == upper); + maximum_offset = lower; + printf ("info: maximum writable file offset: %" PRIu64 " (%" PRIx64 ")\n", + lower, lower); + + /* Check that writing at the valid offset actually works. */ + xftruncate (outfd, 0); + xlseek (outfd, lower, SEEK_SET); + TEST_COMPARE (write (outfd, "", 1), 1); + + /* Cross the boundary with a two-byte write. This can either result + in a short write, or a failure. */ + xlseek (outfd, lower, SEEK_SET); + ssize_t ret = write (outfd, " ", 2); + if (ret < 0) + { + maximum_offset_errno = errno; + maximum_offset_hard_limit = true; + } + else + maximum_offset_hard_limit = false; + + /* Check that writing at the next offset actually fails. This also + obtains the expected errno value. */ + xftruncate (outfd, 0); + const char *action; + if (lseek64 (outfd, lower + 1, SEEK_SET) != 0) + { + if (write (outfd, "", 1) != -1) + FAIL_EXIT1 ("write to impossible offset %" PRIu64 " succeeded", + lower + 1); + action = "writing"; + int errno_copy = errno; + if (maximum_offset_hard_limit) + TEST_COMPARE (errno_copy, maximum_offset_errno); + else + maximum_offset_errno = errno_copy; + } + else + { + action = "seeking"; + maximum_offset_errno = errno; + } + printf ("info: %s out of range fails with %m (%d)\n", + action, maximum_offset_errno); + + xftruncate (outfd, 0); + xlseek (outfd, 0, SEEK_SET); +} + +/* Perform a copy of a file. */ +static void +simple_file_copy (void) +{ + xwrite (infd, random_data, current_size); + + int length; + int in_skipped; /* Expected skipped bytes in input. */ + if (do_inoff) + { + xlseek (infd, 1, SEEK_SET); + inoff = 2; + length = current_size - 3; + in_skipped = 2; + } + else + { + xlseek (infd, 3, SEEK_SET); + length = current_size - 5; + in_skipped = 3; + } + int out_skipped; /* Expected skipped bytes before the written data. */ + if (do_outoff) + { + xlseek (outfd, 4, SEEK_SET); + outoff = 5; + out_skipped = 5; + } + else + { + xlseek (outfd, 6, SEEK_SET); + length = current_size - 6; + out_skipped = 6; + } + if (length < 0) + length = 0; + + TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff, + length, 0), length); + if (do_inoff) + { + TEST_COMPARE (inoff, 2 + length); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 1); + } + else + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 3 + length); + if (do_outoff) + { + TEST_COMPARE (outoff, 5 + length); + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 4); + } + else + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 6 + length); + + struct stat64 st; + xfstat (outfd, &st); + if (length > 0) + TEST_COMPARE (st.st_size, out_skipped + length); + else + { + /* If we did not write anything, we also did not add any + padding. */ + TEST_COMPARE (st.st_size, 0); + return; + } + + xlseek (outfd, 0, SEEK_SET); + char *bytes = xmalloc (st.st_size); + TEST_COMPARE (read (outfd, bytes, st.st_size), st.st_size); + for (int i = 0; i < out_skipped; ++i) + TEST_COMPARE (bytes[i], 0); + TEST_VERIFY (memcmp (bytes + out_skipped, random_data + in_skipped, + length) == 0); + free (bytes); +} + +/* Test that reading from a pipe willfails. */ +static void +pipe_as_source (void) +{ + int pipefds[2]; + xpipe (pipefds); + + for (int length = 0; length < 2; ++length) + { + if (test_verbose > 0) + printf ("info: %s: length=%d\n", __func__, length); + + /* Make sure that there is something to copy in the pipe. */ + xwrite (pipefds[1], "@", 1); + + TEST_COMPARE (copy_file_range (pipefds[0], pinoff, outfd, poutoff, + length, 0), -1); + /* Linux 4.10 and later return EINVAL. Older kernels return + EXDEV. */ + TEST_VERIFY (errno == EINVAL || errno == EXDEV); + TEST_COMPARE (inoff, 0); + TEST_COMPARE (outoff, 0); + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 0); + + /* Make sure that nothing was read. */ + char buf = 'A'; + TEST_COMPARE (read (pipefds[0], &buf, 1), 1); + TEST_COMPARE (buf, '@'); + } + + xclose (pipefds[0]); + xclose (pipefds[1]); +} + +/* Test that writing to a pipe fails. */ +static void +pipe_as_destination (void) +{ + /* Make sure that there is something to read in the input file. */ + xwrite (infd, "abc", 3); + xlseek (infd, 0, SEEK_SET); + + int pipefds[2]; + xpipe (pipefds); + + for (int length = 0; length < 2; ++length) + { + if (test_verbose > 0) + printf ("info: %s: length=%d\n", __func__, length); + + TEST_COMPARE (copy_file_range (infd, pinoff, pipefds[1], poutoff, + length, 0), -1); + /* Linux 4.10 and later return EINVAL. Older kernels return + EXDEV. */ + TEST_VERIFY (errno == EINVAL || errno == EXDEV); + TEST_COMPARE (inoff, 0); + TEST_COMPARE (outoff, 0); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0); + + /* Make sure that nothing was written. */ + struct pollfd pollfd = { .fd = pipefds[0], .events = POLLIN, }; + TEST_COMPARE (poll (&pollfd, 1, 0), 0); + } + + xclose (pipefds[0]); + xclose (pipefds[1]); +} + +/* Test a write failure after (potentially) writing some bytes. + Failure occurs near the start of the buffer. */ +static void +delayed_write_failure_beginning (void) +{ + /* We need to write something to provoke the error. */ + if (current_size == 0) + return; + xwrite (infd, random_data, sizeof (random_data)); + xlseek (infd, 0, SEEK_SET); + + /* Write failure near the start. The actual error code varies among + file systems. */ + find_maximum_offset (); + off64_t where = maximum_offset; + + if (current_size == 1) + ++where; + outoff = where; + if (do_outoff) + xlseek (outfd, 1, SEEK_SET); + else + xlseek (outfd, where, SEEK_SET); + if (maximum_offset_hard_limit || where > maximum_offset) + { + TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff, + sizeof (random_data), 0), -1); + TEST_COMPARE (errno, maximum_offset_errno); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0); + TEST_COMPARE (inoff, 0); + if (do_outoff) + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 1); + else + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), where); + TEST_COMPARE (outoff, where); + struct stat64 st; + xfstat (outfd, &st); + TEST_COMPARE (st.st_size, 0); + } + else + { + /* The offset is not a hard limit. This means we write one + byte. */ + TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff, + sizeof (random_data), 0), 1); + if (do_inoff) + { + TEST_COMPARE (inoff, 1); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0); + } + else + { + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 1); + TEST_COMPARE (inoff, 0); + } + if (do_outoff) + { + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 1); + TEST_COMPARE (outoff, where + 1); + } + else + { + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), where + 1); + TEST_COMPARE (outoff, where); + } + struct stat64 st; + xfstat (outfd, &st); + TEST_COMPARE (st.st_size, where + 1); + } +} + +/* Test a write failure after (potentially) writing some bytes. + Failure occurs near the end of the buffer. */ +static void +delayed_write_failure_end (void) +{ + if (current_size <= 1) + /* This would be same as the first test because there is not + enough data to write to make a difference. */ + return; + xwrite (infd, random_data, sizeof (random_data)); + xlseek (infd, 0, SEEK_SET); + + find_maximum_offset (); + off64_t where = maximum_offset - current_size + 1; + if (current_size == sizeof (random_data)) + /* Otherwise we do not reach the non-writable byte. */ + ++where; + outoff = where; + if (do_outoff) + xlseek (outfd, 1, SEEK_SET); + else + xlseek (outfd, where, SEEK_SET); + ssize_t ret = copy_file_range (infd, pinoff, outfd, poutoff, + sizeof (random_data), 0); + if (ret < 0) + { + TEST_COMPARE (ret, -1); + TEST_COMPARE (errno, maximum_offset_errno); + struct stat64 st; + xfstat (outfd, &st); + TEST_COMPARE (st.st_size, 0); + } + else + { + /* The first copy succeeded. This happens in the emulation + because the internal buffer of limited size does not + necessarily cross the off64_t boundary on the first write + operation. */ + if (test_verbose > 0) + printf ("info: copy_file_range (%zu) returned %zd\n", + sizeof (random_data), ret); + TEST_VERIFY (ret > 0); + TEST_VERIFY (ret < maximum_size); + struct stat64 st; + xfstat (outfd, &st); + TEST_COMPARE (st.st_size, where + ret); + if (do_inoff) + { + TEST_COMPARE (inoff, ret); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0); + } + else + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), ret); + + char *buffer = xmalloc (ret); + TEST_COMPARE (pread64 (outfd, buffer, ret, where), ret); + TEST_VERIFY (memcmp (buffer, random_data, ret) == 0); + free (buffer); + + /* The second copy fails. */ + TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff, + sizeof (random_data), 0), -1); + TEST_COMPARE (errno, maximum_offset_errno); + } +} + +/* Test a write failure across devices. */ +static void +cross_device_failure (void) +{ + if (xdevfile == NULL) + /* Subtest not supported due to missing cross-device file. */ + return; + + /* We need something to write. */ + xwrite (infd, random_data, sizeof (random_data)); + xlseek (infd, 0, SEEK_SET); + + int xdevfd = xopen (xdevfile, O_RDWR | O_LARGEFILE, 0); + TEST_COMPARE (copy_file_range (infd, pinoff, xdevfd, poutoff, + current_size, 0), -1); + TEST_COMPARE (errno, EXDEV); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 0); + struct stat64 st; + xfstat (xdevfd, &st); + TEST_COMPARE (st.st_size, 0); + + xclose (xdevfd); +} + +/* Try to exercise ENOSPC behavior with a tempfs file system (so that + we do not have to fill up a regular file system to get the error). + This function runs in a subprocess, so that we do not change the + mount namespace of the actual test process. */ +static void +enospc_failure_1 (void *closure) +{ +#ifdef CLONE_NEWNS + support_become_root (); + + /* Make sure that we do not alter the file system mounts of the + parents. */ + if (! support_enter_mount_namespace ()) + { + printf ("warning: ENOSPC test skipped\n"); + return; + } + + char *mountpoint = closure; + if (mount ("none", mountpoint, "tmpfs", MS_NODEV | MS_NOEXEC, + "size=500k") != 0) + { + printf ("warning: could not mount tmpfs at %s: %m\n", mountpoint); + return; + } + + /* The source file must reside on the same file system. */ + char *intmpfsfile = xasprintf ("%s/%s", mountpoint, "in"); + int intmpfsfd = xopen (intmpfsfile, O_RDWR | O_CREAT | O_LARGEFILE, 0600); + xwrite (intmpfsfd, random_data, sizeof (random_data)); + xlseek (intmpfsfd, 1, SEEK_SET); + inoff = 1; + + char *outtmpfsfile = xasprintf ("%s/%s", mountpoint, "out"); + int outtmpfsfd = xopen (outtmpfsfile, O_RDWR | O_CREAT | O_LARGEFILE, 0600); + + /* Fill the file with data until ENOSPC is reached. */ + while (true) + { + ssize_t ret = write (outtmpfsfd, random_data, sizeof (random_data)); + if (ret < 0 && errno != ENOSPC) + FAIL_EXIT1 ("write to %s: %m", outtmpfsfile); + if (ret < sizeof (random_data)) + break; + } + TEST_COMPARE (write (outtmpfsfd, "", 1), -1); + TEST_COMPARE (errno, ENOSPC); + off64_t maxsize = xlseek (outtmpfsfd, 0, SEEK_CUR); + TEST_VERIFY_EXIT (maxsize > sizeof (random_data)); + + /* Constructed the expected file contents. */ + char *expected = xmalloc (maxsize); + TEST_COMPARE (pread64 (outtmpfsfd, expected, maxsize, 0), maxsize); + /* Go back a little, so some bytes can be written. */ + enum { offset = 20000 }; + TEST_VERIFY_EXIT (offset < maxsize); + TEST_VERIFY_EXIT (offset < sizeof (random_data)); + memcpy (expected + maxsize - offset, random_data + 1, offset); + + if (do_outoff) + { + outoff = maxsize - offset; + xlseek (outtmpfsfd, 2, SEEK_SET); + } + else + xlseek (outtmpfsfd, -offset, SEEK_CUR); + + /* First call is expected to succeed because we made room for some + bytes. */ + TEST_COMPARE (copy_file_range (intmpfsfd, pinoff, outtmpfsfd, poutoff, + maximum_size, 0), offset); + if (do_inoff) + { + TEST_COMPARE (inoff, 1 + offset); + TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1); + } + else + TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1 + offset); + if (do_outoff) + { + TEST_COMPARE (outoff, maxsize); + TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), 2); + } + else + TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), maxsize); + struct stat64 st; + xfstat (outtmpfsfd, &st); + TEST_COMPARE (st.st_size, maxsize); + char *actual = xmalloc (st.st_size); + TEST_COMPARE (pread64 (outtmpfsfd, actual, st.st_size, 0), st.st_size); + TEST_VERIFY (memcmp (expected, actual, maxsize) == 0); + + /* Second call should fail with ENOSPC. */ + TEST_COMPARE (copy_file_range (intmpfsfd, pinoff, outtmpfsfd, poutoff, + maximum_size, 0), -1); + TEST_COMPARE (errno, ENOSPC); + + /* Offsets should be unchanged. */ + if (do_inoff) + { + TEST_COMPARE (inoff, 1 + offset); + TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1); + } + else + TEST_COMPARE (xlseek (intmpfsfd, 0, SEEK_CUR), 1 + offset); + if (do_outoff) + { + TEST_COMPARE (outoff, maxsize); + TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), 2); + } + else + TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_CUR), maxsize); + TEST_COMPARE (xlseek (outtmpfsfd, 0, SEEK_END), maxsize); + TEST_COMPARE (pread64 (outtmpfsfd, actual, maxsize, 0), maxsize); + TEST_VERIFY (memcmp (expected, actual, maxsize) == 0); + + free (actual); + free (expected); + + xclose (intmpfsfd); + xclose (outtmpfsfd); + free (intmpfsfile); + free (outtmpfsfile); + +#else /* !CLONE_NEWNS */ + puts ("warning: ENOSPC test skipped (no mount namespaces)"); +#endif +} + +/* Call enospc_failure_1 in a subprocess. */ +static void +enospc_failure (void) +{ + char *mountpoint + = support_create_temp_directory ("tst-copy_file_range-enospc-"); + support_isolate_in_subprocess (enospc_failure_1, mountpoint); + free (mountpoint); +} + +/* The target file descriptor must have O_APPEND enabled. */ +static void +oappend_failure (void) +{ + /* Add data, to make sure we do not fail because there is + insufficient input data. */ + xwrite (infd, random_data, current_size); + xlseek (infd, 0, SEEK_SET); + + xclose (outfd); + outfd = xopen (outfile, O_RDWR | O_APPEND, 0); + TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff, + current_size, 0), -1); + TEST_COMPARE (errno, EBADF); +} + +/* Test that a short input file results in a shortened copy. */ +static void +short_copy (void) +{ + if (current_size == 0) + /* Nothing to shorten. */ + return; + + /* Two subtests, one with offset 0 and current_size - 1 bytes, and + another one with current_size bytes, but offset 1. */ + for (int shift = 0; shift < 2; ++shift) + { + if (test_verbose > 0) + printf ("info: shift=%d\n", shift); + xftruncate (infd, 0); + xlseek (infd, 0, SEEK_SET); + xwrite (infd, random_data, current_size - !shift); + + if (do_inoff) + { + inoff = shift; + xlseek (infd, 2, SEEK_SET); + } + else + { + inoff = 3; + xlseek (infd, shift, SEEK_SET); + } + ftruncate (outfd, 0); + xlseek (outfd, 0, SEEK_SET); + outoff = 0; + + /* First call copies current_size - 1 bytes. */ + TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff, + current_size, 0), current_size - 1); + char *buffer = xmalloc (current_size); + TEST_COMPARE (pread64 (outfd, buffer, current_size, 0), + current_size - 1); + TEST_VERIFY (memcmp (buffer, random_data + shift, current_size - 1) + == 0); + free (buffer); + + if (do_inoff) + { + TEST_COMPARE (inoff, current_size - 1 + shift); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 2); + } + else + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), current_size - 1 + shift); + if (do_outoff) + { + TEST_COMPARE (outoff, current_size - 1); + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 0); + } + else + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), current_size - 1); + + /* First call copies zero bytes. */ + TEST_COMPARE (copy_file_range (infd, pinoff, outfd, poutoff, + current_size, 0), 0); + /* And the offsets are unchanged. */ + if (do_inoff) + { + TEST_COMPARE (inoff, current_size - 1 + shift); + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), 2); + } + else + TEST_COMPARE (xlseek (infd, 0, SEEK_CUR), current_size - 1 + shift); + if (do_outoff) + { + TEST_COMPARE (outoff, current_size - 1); + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), 0); + } + else + TEST_COMPARE (xlseek (outfd, 0, SEEK_CUR), current_size - 1); + } +} + +/* A named test function. */ +struct test_case +{ + const char *name; + void (*func) (void); + bool sizes; /* If true, call the test with different current_size values. */ +}; + +/* The available test cases. */ +static struct test_case tests[] = + { + { "simple_file_copy", simple_file_copy, .sizes = true }, + { "pipe_as_source", pipe_as_source, }, + { "pipe_as_destination", pipe_as_destination, }, + { "delayed_write_failure_beginning", delayed_write_failure_beginning, + .sizes = true }, + { "delayed_write_failure_end", delayed_write_failure_end, .sizes = true }, + { "cross_device_failure", cross_device_failure, .sizes = true }, + { "enospc_failure", enospc_failure, }, + { "oappend_failure", oappend_failure, .sizes = true }, + { "short_copy", short_copy, .sizes = true }, + }; + +static int +do_test (void) +{ + for (unsigned char *p = random_data; p < array_end (random_data); ++p) + *p = rand () >> 24; + + infd = create_temp_file ("tst-copy_file_range-in-", &infile); + xclose (create_temp_file ("tst-copy_file_range-out-", &outfile)); + + /* Try to find a different directory from the default input/output + file. */ + { + struct stat64 instat; + xfstat (infd, &instat); + static const char *const candidates[] = + { NULL, "/var/tmp", "/dev/shm" }; + for (const char *const *c = candidates; c < array_end (candidates); ++c) + { + const char *path = *c; + char *to_free = NULL; + if (path == NULL) + { + to_free = xreadlink ("/proc/self/exe"); + path = dirname (to_free); + } + + struct stat64 cstat; + xstat (path, &cstat); + if (cstat.st_dev == instat.st_dev) + { + free (to_free); + continue; + } + + printf ("info: using alternate temporary files directory: %s\n", path); + xdevfile = xasprintf ("%s/tst-copy_file_range-xdev-XXXXXX", path); + free (to_free); + break; + } + if (xdevfile != NULL) + { + int xdevfd = mkstemp (xdevfile); + if (xdevfd < 0) + FAIL_EXIT1 ("mkstemp (\"%s\"): %m", xdevfile); + struct stat64 xdevst; + xfstat (xdevfd, &xdevst); + TEST_VERIFY (xdevst.st_dev != instat.st_dev); + add_temp_file (xdevfile); + xclose (xdevfd); + } + else + puts ("warning: no alternate directory on different file system found"); + } + xclose (infd); + + for (do_inoff = 0; do_inoff < 2; ++do_inoff) + for (do_outoff = 0; do_outoff < 2; ++do_outoff) + for (struct test_case *test = tests; test < array_end (tests); ++test) + for (const int *size = typical_sizes; + size < array_end (typical_sizes); ++size) + { + current_size = *size; + if (test_verbose > 0) + printf ("info: %s do_inoff=%d do_outoff=%d current_size=%d\n", + test->name, do_inoff, do_outoff, current_size); + + inoff = 0; + if (do_inoff) + pinoff = &inoff; + else + pinoff = NULL; + outoff = 0; + if (do_outoff) + poutoff = &outoff; + else + poutoff = NULL; + + infd = xopen (infile, O_RDWR | O_LARGEFILE, 0); + xftruncate (infd, 0); + outfd = xopen (outfile, O_RDWR | O_LARGEFILE, 0); + xftruncate (outfd, 0); + + test->func (); + + xclose (infd); + xclose (outfd); + + if (!test->sizes) + /* Skip the other sizes unless they have been + requested. */ + break; + } + + free (infile); + free (outfile); + free (xdevfile); + + return 0; +} + +#include diff --git a/manual/llio.texi b/manual/llio.texi index 8b2f599c79..642e56e710 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -41,6 +41,7 @@ directly.) * Stream/Descriptor Precautions:: Precautions needed if you use both descriptors and streams. * Scatter-Gather:: Fast I/O to discontinuous buffers. +* Copying File Data:: Copying data between files. * Memory-mapped I/O:: Using files like memory. * Waiting for I/O:: How to check for input or output on multiple file descriptors. @@ -1353,6 +1354,93 @@ When the source file is compiled using @code{_FILE_OFFSET_BITS == 64} on a @code{pwritev2} and so transparently replaces the 32 bit interface. @end deftypefun +@node Copying File Data +@section Copying data between two files +@cindex copying files +@cindex file copy + +A special function is provided to copy data between two files on the +same file system. The system can optimize such copy operations. This +is particularly important on network file systems, where the data would +otherwise have to be transferred twice over the network. + +Note that this function only copies file data, but not metadata such as +file permissions or extended attributes. + +@deftypefun ssize_t copy_file_range (int @var{inputfd}, off64_t *@var{inputpos}, int @var{outputfd}, off64_t *@var{outputpos}, ssize_t @var{length}, unsigned int @var{flags}) +@standards{GNU, unistd.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} + +This function copies up to @var{length} bytes from the file descriptor +@var{inputfd} to the file descriptor @var{outputfd}. + +The function can operate on both the current file position (like +@code{read} and @code{write}) and an explicit offset (like @code{pread} +and @code{pwrite}). If the @var{inputpos} pointer is null, the file +position of @var{inputfd} is used as the starting point of the copy +operation, and the file position is advanced during it. If +@var{inputpos} is not null, then @code{*@var{inputpos}} is used as the +starting point of the copy operation, and @code{*@var{inputpos}} is +incremented by the number of copied bytes, but the file position remains +unchanged. Similar rules apply to @var{outputfd} and @var{outputpos} +for the output file position. + +The @var{flags} argument is currently reserved and must be zero. + +The @code{copy_file_range} function returns the number of bytes copied. +This can be less than the specified @var{length} in case the input file +contains fewer remaining bytes than @var{length}, or if a read or write +failure occurs. The return value is zero if the end of the input file +is encountered immediately. + +If no bytes can be copied, to report an error, @code{copy_file_range} +returns the value @math{-1} and sets @code{errno}. The following +@code{errno} error conditions are specific to this function: + +@table @code +@item EISDIR +At least one of the descriptors @var{inputfd} or @var{outputfd} refers +to a directory. + +@item EINVAL +At least one of the descriptors @var{inputfd} or @var{outputfd} refers +to a non-regular, non-directory file (such as a socket or a FIFO). + +The input or output positions before are after the copy operations are +outside of an implementation-defined limit. + +The @var{flags} argument is not zero. + +@item EFBIG +The new file size would exceed the process file size limit. +@xref{Limits on Resources}. + +The input or output positions before are after the copy operations are +outside of an implementation-defined limit. This can happen if the file +was not opened with large file support (LFS) on 32-bit machines, and the +copy operation would create a file which is larger than what +@code{off_t} could represent. + +@item EBADF +The argument @var{inputfd} is not a valid file descriptor open for +reading. + +The argument @var{outputfd} is not a valid file descriptor open for +writing, or @var{outputfd} has been opened with @code{O_APPEND}. + +@item EXDEV +The input and output files reside on different file systems. +@end table + +In addition, @code{copy_file_range} can fail with the error codes +which are used by @code{read}, @code{pread}, @code{write}, and +@code{pwrite}. + +The @code{copy_file_range} function is a cancellation point. In case of +cancellation, the input location (the file position or the value at +@code{*@var{inputpos}}) is indeterminate. +@end deftypefun + @node Memory-mapped I/O @section Memory-mapped I/O diff --git a/posix/unistd.h b/posix/unistd.h index 32b0f4898f..65317c79fd 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -1105,7 +1105,12 @@ extern int lockf64 (int __fd, int __cmd, __off64_t __len) __wur; do __result = (long int) (expression); \ while (__result == -1L && errno == EINTR); \ __result; })) -#endif + +/* Copy LENGTH bytes from INFD to OUTFD. */ +ssize_t copy_file_range (int __infd, __off64_t *__pinoff, + int __outfd, __off64_t *__poutoff, + size_t __length, unsigned int __flags); +#endif /* __USE_GNU */ #if defined __USE_POSIX199309 || defined __USE_UNIX98 /* Synchronize at least the data part of a file with the underlying diff --git a/support/Makefile b/support/Makefile index bfde79333e..8458840cd8 100644 --- a/support/Makefile +++ b/support/Makefile @@ -36,6 +36,7 @@ libsupport-routines = \ oom_error \ resolv_test \ set_fortify_handler \ + support-xfstat \ support-xstat \ support_become_root \ support_can_chroot \ @@ -73,8 +74,10 @@ libsupport-routines = \ xfclose \ xfopen \ xfork \ + xftruncate \ xgetsockname \ xlisten \ + xlseek \ xmalloc \ xmemstream \ xmkdir \ diff --git a/support/support-xfstat.c b/support/support-xfstat.c new file mode 100644 index 0000000000..4c8ee9142b --- /dev/null +++ b/support/support-xfstat.c @@ -0,0 +1,28 @@ +/* fstat64 with error checking. + Copyright (C) 2017 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 + +void +xfstat (int fd, struct stat64 *result) +{ + if (fstat64 (fd, result) != 0) + FAIL_EXIT1 ("fstat64 (%d): %m", fd); +} diff --git a/support/xftruncate.c b/support/xftruncate.c new file mode 100644 index 0000000000..9c4e9e3050 --- /dev/null +++ b/support/xftruncate.c @@ -0,0 +1,27 @@ +/* ftruncate with error checking. + Copyright (C) 2017 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 + +void +xftruncate (int fd, long long length) +{ + if (ftruncate64 (fd, length) != 0) + FAIL_EXIT1 ("ftruncate64 (%d, %lld): %m", fd, length); +} diff --git a/support/xlseek.c b/support/xlseek.c new file mode 100644 index 0000000000..0a75a9f2e6 --- /dev/null +++ b/support/xlseek.c @@ -0,0 +1,29 @@ +/* lseek with error checking. + Copyright (C) 2017 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 + +long long +xlseek (int fd, long long offset, int whence) +{ + long long result = lseek64 (fd, offset, whence); + if (result < 0) + FAIL_EXIT1 ("lseek64 (%d, %lld, %d): %m", fd, offset, whence); + return result; +} diff --git a/support/xunistd.h b/support/xunistd.h index 00376f7aae..29da063c15 100644 --- a/support/xunistd.h +++ b/support/xunistd.h @@ -36,10 +36,13 @@ void xpipe (int[2]); void xdup2 (int, int); int xopen (const char *path, int flags, mode_t); void xstat (const char *path, struct stat64 *); +void xfstat (int fd, struct stat64 *); void xmkdir (const char *path, mode_t); void xchroot (const char *path); void xunlink (const char *path); long xsysconf (int name); +long long xlseek (int fd, long long offset, int whence); +void xftruncate (int fd, long long length); /* Read the link at PATH. The caller should free the returned string with free. */ diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index ec0ead15dd..90c9bc84e1 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2104,6 +2104,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 5355769974..fd2d81fb68 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2015,6 +2015,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 9bafe71b51..044ec102c2 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -105,6 +105,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/copy_file_range.c b/sysdeps/unix/sysv/linux/copy_file_range.c new file mode 100644 index 0000000000..1ec5f9d8d8 --- /dev/null +++ b/sysdeps/unix/sysv/linux/copy_file_range.c @@ -0,0 +1,46 @@ +/* Linux implementation of copy_file_range. + Copyright (C) 2017 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 the fallback implementation. */ +#ifndef __ASSUME_COPY_FILE_RANGE +#define COPY_FILE_RANGE_DECL static +#define COPY_FILE_RANGE copy_file_range_compat +#include +#endif + +ssize_t +copy_file_range (int infd, __off64_t *pinoff, + int outfd, __off64_t *poutoff, + size_t length, unsigned int flags) +{ +#ifdef __NR_copy_file_range + ssize_t ret = SYSCALL_CANCEL (copy_file_range, infd, pinoff, outfd, poutoff, + length, flags); +# ifndef __ASSUME_COPY_FILE_RANGE + if (ret == -1 && errno == ENOSYS) + ret = copy_file_range_compat (infd, pinoff, outfd, poutoff, length, flags); +# endif + return ret; +#else /* !__NR_copy_file_range */ + return copy_file_range_compat (infd, pinoff, outfd, poutoff, length, flags); +#endif +} diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 90aa8d034f..2360130abe 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1869,6 +1869,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 4d44c30c64..39c993fd79 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2034,6 +2034,7 @@ GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 112fc57634..68496aa6ac 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1898,6 +1898,7 @@ GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 59b613377f..b9864790c7 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -111,3 +111,7 @@ #if __LINUX_KERNEL_VERSION >= 0x040400 # define __ASSUME_MLOCK2 1 #endif + +#if __LINUX_KERNEL_VERSION >= 0x040500 +# define __ASSUME_COPY_FILE_RANGE 1 +#endif diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 2e8b6a4586..b676025261 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -106,6 +106,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 3c33400f67..cdd1df55d0 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1983,6 +1983,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index e1b1a579d2..e4265fd74d 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2104,6 +2104,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index c1550323f3..3a7e0b4c29 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1958,6 +1958,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 3b3a172e4f..5e805924fa 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1956,6 +1956,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 101ca7a241..1973fac36d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1954,6 +1954,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 2d129f7170..5e18ab83b4 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1949,6 +1949,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 8bc350aff8..cc5885ab9b 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2145,6 +2145,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 127c426e1c..676aa50c81 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1987,6 +1987,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index a9411318e2..2016c7c1e5 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1992,6 +1992,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index d7bf5db601..3d19e38dbd 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2199,6 +2199,7 @@ GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index a3415a72ac..c57ab21b82 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -106,6 +106,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 414338f9a2..25903720e3 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1987,6 +1987,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index f0f7a69b64..5d6800c236 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1888,6 +1888,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 9f95aba898..c04872ca7f 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1873,6 +1873,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 83fbdf2d7e..85cbe308d6 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1980,6 +1980,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index ee84ad10bc..f7a1ab8edb 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1917,6 +1917,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist index dcbfbc05ac..ab56ecee44 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx32/libc.abilist @@ -2111,6 +2111,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist index 53dc99c45a..f2518c08ff 100644 --- a/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist +++ b/sysdeps/unix/sysv/linux/tile/tilegx64/libc.abilist @@ -2111,6 +2111,7 @@ GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index ae4dcaa47e..2a3cc40674 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1875,6 +1875,7 @@ GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 0dbda14796..8bc16b9004 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2118,6 +2118,7 @@ GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F GLIBC_2.27 GLIBC_2.27 A +GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F -- cgit v1.2.3 From 8e900969dbde8e46963b3be4005d7941792327cb Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Fri, 5 Jan 2018 20:34:10 +0100 Subject: Alpha: Fix the RLIM_INFINITY and RLIM64_INFINITY constants Fix the RLIM_INFINITY and RLIM64_INFINITY constants on alpha to match the kernel one and all other architectures. Change the getrlimit, getrlimit64, setrlimit, setrlimit64 into old compat symbols, and provide the Linux generic functions as GLIBC_2_27 version. Changelog: * sysdeps/unix/sysv/linux/getrlimit64.c [USE_VERSIONED_RLIMIT]: Do not define getrlimit and getrlimit64 as weak aliases of __getrlimit64. Define __GI_getrlimit64 as weak alias of __getrlimit64. [__RLIM_T_MATCHES_RLIM64_T]: Do not redefine SHLIB_COMPAT, use #elif instead. * sysdeps/unix/sysv/linux/setrlimit64.c [USE_VERSIONED_RLIMIT]: Do not define setrlimit and setrlimit64 as weak aliases of __setrlimit64. * sysdeps/unix/sysv/linux/alpha/bits/resource.h (RLIM_INFINITY, RLIM64_INFINITY): Fix values to match the kernel ones. * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: Define USE_VERSIONED_RLIMIT. Rename __getrlimit64 into __old_getrlimit64 and provide it as getrlimit@@GLIBC_2_0 and getrlimit64@@GLIBC_2_1. Add a __getrlimit64 function and provide it as getrlimit@@GLIBC_2_27 and getrlimit64@@GLIBC_2_27. * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Ditto with setrlimit and setrlimit64. * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.27): Add getrlimit, setrlimit, getrlimit64 and setrlimit64. * sysdeps/unix/sysv/linux/alpha/Versions (libc): Add getrlimit, setrlimit, getrlimit64 and setrlimit64. --- ChangeLog | 24 +++++++++++++++ sysdeps/unix/sysv/linux/alpha/Versions | 3 ++ sysdeps/unix/sysv/linux/alpha/bits/resource.h | 6 ++-- sysdeps/unix/sysv/linux/alpha/getrlimit64.c | 44 +++++++++++---------------- sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 +++ sysdeps/unix/sysv/linux/alpha/setrlimit64.c | 42 +++++++++++-------------- sysdeps/unix/sysv/linux/getrlimit64.c | 18 +++++------ sysdeps/unix/sysv/linux/setrlimit64.c | 5 +++ 8 files changed, 83 insertions(+), 63 deletions(-) (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 489cd1fd84..fd0fc0bc71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2018-01-05 Aurelien Jarno + Adhemerval Zanella + + * sysdeps/unix/sysv/linux/getrlimit64.c [USE_VERSIONED_RLIMIT]: Do not + define getrlimit and getrlimit64 as weak aliases of __getrlimit64. + Define __GI_getrlimit64 as weak alias of __getrlimit64. + [__RLIM_T_MATCHES_RLIM64_T]: Do not redefine SHLIB_COMPAT, use #elif + instead. + * sysdeps/unix/sysv/linux/setrlimit64.c [USE_VERSIONED_RLIMIT]: Do not + define setrlimit and setrlimit64 as weak aliases of __setrlimit64. + * sysdeps/unix/sysv/linux/alpha/bits/resource.h (RLIM_INFINITY, + RLIM64_INFINITY): Fix values to match the kernel ones. + * sysdeps/unix/sysv/linux/alpha/getrlimit64.c: Define + USE_VERSIONED_RLIMIT. Rename __getrlimit64 into __old_getrlimit64 and + provide it as getrlimit@@GLIBC_2_0 and getrlimit64@@GLIBC_2_1. Add a + __getrlimit64 function and provide it as getrlimit@@GLIBC_2_27 and + getrlimit64@@GLIBC_2_27. + * sysdeps/unix/sysv/linux/alpha/setrlimit64.c: Ditto with setrlimit + and setrlimit64. + * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.27): Add + getrlimit, setrlimit, getrlimit64 and setrlimit64. + * sysdeps/unix/sysv/linux/alpha/Versions (libc): Add getrlimit, + setrlimit, getrlimit64 and setrlimit64. + 2018-01-05 Aurelien Jarno [BZ #22648] diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions index 29b82f999b..3b7971c2a3 100644 --- a/sysdeps/unix/sysv/linux/alpha/Versions +++ b/sysdeps/unix/sysv/linux/alpha/Versions @@ -85,6 +85,9 @@ libc { #errlist-compat 140 _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; } + GLIBC_2.27 { + getrlimit; setrlimit; getrlimit64; setrlimit64; + } GLIBC_PRIVATE { __libc_alpha_cache_shape; } diff --git a/sysdeps/unix/sysv/linux/alpha/bits/resource.h b/sysdeps/unix/sysv/linux/alpha/bits/resource.h index ac05cbb803..dddcb0f049 100644 --- a/sysdeps/unix/sysv/linux/alpha/bits/resource.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/resource.h @@ -112,13 +112,13 @@ enum __rlimit_resource /* Value to indicate that there is no limit. */ #ifndef __USE_FILE_OFFSET64 -# define RLIM_INFINITY ((long int)(~0UL >> 1)) +# define RLIM_INFINITY ((__rlim_t) -1) #else -# define RLIM_INFINITY 0x7fffffffffffffffLL +# define RLIM_INFINITY 0xffffffffffffffffuLL #endif #ifdef __USE_LARGEFILE64 -# define RLIM64_INFINITY 0x7fffffffffffffffLL +# define RLIM64_INFINITY 0xffffffffffffffffuLL #endif /* We can represent all limits. */ diff --git a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c index 908be53180..5502586462 100644 --- a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c +++ b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c @@ -15,50 +15,42 @@ License along with the GNU C Library; if not, see . */ -#include -#include - -/* Add this redirection so the strong_alias linking getrlimit64 to - {__}getrlimit does not throw a type error. */ -#undef getrlimit -#undef __getrlimit -#define getrlimit getrlimit_redirect -#define __getrlimit __getrlimit_redirect -#include -#undef getrlimit -#undef __getrlimit +#define USE_VERSIONED_RLIMIT +#include +versioned_symbol (libc, __getrlimit, getrlimit, GLIBC_2_27); +versioned_symbol (libc, __getrlimit64, getrlimit64, GLIBC_2_27); +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) /* RLIM64_INFINITY was supposed to be a glibc convention rather than anything seen by the kernel, but it ended being passed to the kernel through the prlimit64 syscall. Given that a lot of binaries with the wrong constant value are in the wild, provide a wrapper function fixing the value after the syscall. */ -#define KERNEL_RLIM64_INFINITY 0xffffffffffffffffULL +# define OLD_RLIM64_INFINITY 0x7fffffffffffffffULL int -__getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits) +attribute_compat_text_section +__old_getrlimit64 (enum __rlimit_resource resource, + struct rlimit64 *rlimits) { struct rlimit64 krlimits; - if (INLINE_SYSCALL_CALL (prlimit64, 0, resource, NULL, &krlimits) < 0) + if (__getrlimit64 (resource, &krlimits) < 0) return -1; - if (krlimits.rlim_cur == KERNEL_RLIM64_INFINITY) - rlimits->rlim_cur = RLIM64_INFINITY; + if (krlimits.rlim_cur == RLIM64_INFINITY) + rlimits->rlim_cur = OLD_RLIM64_INFINITY; else rlimits->rlim_cur = krlimits.rlim_cur; - if (krlimits.rlim_max == KERNEL_RLIM64_INFINITY) - rlimits->rlim_max = RLIM64_INFINITY; + if (krlimits.rlim_max == RLIM64_INFINITY) + rlimits->rlim_max = OLD_RLIM64_INFINITY; else rlimits->rlim_max = krlimits.rlim_max; return 0; } -libc_hidden_def (__getrlimit64) -strong_alias (__getrlimit64, __GI_getrlimit) -strong_alias (__getrlimit64, __GI___getrlimit) -strong_alias (__getrlimit64, __getrlimit) -weak_alias (__getrlimit64, getrlimit) -weak_alias (__getrlimit64, getrlimit64) -libc_hidden_weak (getrlimit64) +strong_alias (__old_getrlimit64, __old_getrlimit) +compat_symbol (libc, __old_getrlimit, getrlimit, GLIBC_2_0); +compat_symbol (libc, __old_getrlimit64, getrlimit64, GLIBC_2_1); +#endif diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index fd2d81fb68..8674a874b4 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2016,6 +2016,8 @@ GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F +GLIBC_2.27 getrlimit F +GLIBC_2.27 getrlimit64 F GLIBC_2.27 glob F GLIBC_2.27 glob64 F GLIBC_2.27 memfd_create F @@ -2025,6 +2027,8 @@ GLIBC_2.27 pkey_free F GLIBC_2.27 pkey_get F GLIBC_2.27 pkey_mprotect F GLIBC_2.27 pkey_set F +GLIBC_2.27 setrlimit F +GLIBC_2.27 setrlimit64 F GLIBC_2.27 strfromf128 F GLIBC_2.27 strfromf32 F GLIBC_2.27 strfromf32x F diff --git a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c index 1b8a95b9e9..871c878b7e 100644 --- a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c +++ b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c @@ -15,47 +15,39 @@ License along with the GNU C Library; if not, see . */ -#include -#include - -/* Add this redirection so the strong_alias linking setrlimit64 to - {__}setrlimit does not throw a type error. */ -#undef setrlimit -#undef __setrlimit -#define setrlimit setrlimit_redirect -#define __setrlimit __setrlimit_redirect -#include -#undef setrlimit -#undef __setrlimit +#define USE_VERSIONED_RLIMIT +#include +versioned_symbol (libc, __setrlimit, setrlimit, GLIBC_2_27); +versioned_symbol (libc, __setrlimit64, setrlimit64, GLIBC_2_27); +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) /* RLIM64_INFINITY was supposed to be a glibc convention rather than anything seen by the kernel, but it ended being passed to the kernel through the prlimit64 syscall. Given that a lot of binaries with the wrong constant value are in the wild, provide a wrapper function fixing the value before the syscall. */ -#define KERNEL_RLIM64_INFINITY 0xffffffffffffffffULL +# define OLD_RLIM64_INFINITY 0x7fffffffffffffffULL int -__setrlimit64 (enum __rlimit_resource resource, const struct rlimit64 *rlimits) +attribute_compat_text_section +__old_setrlimit64 (enum __rlimit_resource resource, + const struct rlimit64 *rlimits) { struct rlimit64 krlimits; - if (rlimits->rlim_cur == RLIM64_INFINITY) - krlimits.rlim_cur = KERNEL_RLIM64_INFINITY; + if (rlimits->rlim_cur == OLD_RLIM64_INFINITY) + krlimits.rlim_cur = RLIM64_INFINITY; else krlimits.rlim_cur = rlimits->rlim_cur; - if (rlimits->rlim_max == RLIM64_INFINITY) - krlimits.rlim_max = KERNEL_RLIM64_INFINITY; + if (rlimits->rlim_max == OLD_RLIM64_INFINITY) + krlimits.rlim_max = RLIM64_INFINITY; else krlimits.rlim_max = rlimits->rlim_max; - return INLINE_SYSCALL_CALL (prlimit64, 0, resource, &krlimits, NULL); + return __setrlimit64 (resource, &krlimits); } -weak_alias (__setrlimit64, setrlimit64) - -strong_alias (__setrlimit64, __setrlimit) -weak_alias (__setrlimit64, setrlimit) -#ifdef SHARED -__hidden_ver1 (__setrlimit64, __GI___setrlimit, __setrlimit64); +strong_alias (__old_setrlimit64, __old_setrlimit) +compat_symbol (libc, __old_setrlimit, setrlimit, GLIBC_2_0); +compat_symbol (libc, __old_setrlimit64, setrlimit64, GLIBC_2_1); #endif diff --git a/sysdeps/unix/sysv/linux/getrlimit64.c b/sysdeps/unix/sysv/linux/getrlimit64.c index 3750cf22fa..1cc82e364d 100644 --- a/sysdeps/unix/sysv/linux/getrlimit64.c +++ b/sysdeps/unix/sysv/linux/getrlimit64.c @@ -45,13 +45,16 @@ libc_hidden_def (__getrlimit64) strong_alias (__getrlimit64, __GI_getrlimit) strong_alias (__getrlimit64, __GI___getrlimit) strong_alias (__getrlimit64, __getrlimit) +/* Alpha defines a versioned getrlimit{64}. */ +# ifndef USE_VERSIONED_RLIMIT weak_alias (__getrlimit64, getrlimit) -/* And there is no need for compat symbols. */ -# undef SHLIB_COMPAT -# define SHLIB_COMPAT(a, b, c) 0 -#endif +weak_alias (__getrlimit64, getrlimit64) +libc_hidden_weak (getrlimit64) +# else +weak_alias (__getrlimit64, __GI_getrlimit64) +# endif -#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) +#elif SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) /* Back compatible 2GiB limited rlimit. */ extern int __new_getrlimit (enum __rlimit_resource, struct rlimit *) attribute_hidden; @@ -78,7 +81,4 @@ __old_getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits) } versioned_symbol (libc, __getrlimit64, getrlimit64, GLIBC_2_2); compat_symbol (libc, __old_getrlimit64, getrlimit64, GLIBC_2_1); -#else -weak_alias (__getrlimit64, getrlimit64) -libc_hidden_weak (getrlimit64) -#endif +#endif /* __RLIM_T_MATCHES_RLIM64_T */ diff --git a/sysdeps/unix/sysv/linux/setrlimit64.c b/sysdeps/unix/sysv/linux/setrlimit64.c index 3ec831fb4d..860fccb548 100644 --- a/sysdeps/unix/sysv/linux/setrlimit64.c +++ b/sysdeps/unix/sysv/linux/setrlimit64.c @@ -38,11 +38,16 @@ __setrlimit64 (enum __rlimit_resource resource, const struct rlimit64 *rlimits) { return INLINE_SYSCALL_CALL (prlimit64, 0, resource, rlimits, NULL); } +/* Alpha defines a versioned setrlimit{64}. */ +#ifndef USE_VERSIONED_RLIMIT weak_alias (__setrlimit64, setrlimit64) +#endif #if __RLIM_T_MATCHES_RLIM64_T strong_alias (__setrlimit64, __setrlimit) +# ifndef USE_VERSIONED_RLIMIT weak_alias (__setrlimit64, setrlimit) +# endif # ifdef SHARED __hidden_ver1 (__setrlimit64, __GI___setrlimit, __setrlimit64); # endif -- cgit v1.2.3 From b289cd9db8286fa6c670104dd5dfcfc68d5d00d6 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 4 May 2018 15:46:32 +0000 Subject: Ignore absolute symbols in ABI tests. A recent binutils patch stops the MIPS linker including the _gp_disp absolute symbol in dynamic symbol tables. With older binutils, it is included for MIPS o32 (despite the use of symbol versioning), and this means that all the ABI test baselines for MIPS o32 include "_gp_disp _gp_disp A". This symbol is not meaningfully part of the ABI for shared libraries, since it always has to be resolved at static link time to the local definition for the linked object. All the other absolute symbols in ABI test baselines are the names of symbol versions. I don't think the mere existence of a symbol version with a given name - as opposed to the contents of that version if nonempty - is part of the ABI either. Thus, this patch allows the ABI tests to pass both before and after the binutils change by changing abilist.awk not to include absolute symbols in its output, and changing the baselines accordingly. Tested for x86_64, and with build-many-glibcs.py. * scripts/abilist.awk: Ignore absolute symbols. * sysdeps/mach/hurd/i386/ld.abilist: Remove absolute symbols. * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: Likewise. * sysdeps/mach/hurd/i386/libanl.abilist: Likewise. * sysdeps/mach/hurd/i386/libc.abilist: Likewise. * sysdeps/mach/hurd/i386/libcrypt.abilist: Likewise. * sysdeps/mach/hurd/i386/libdl.abilist: Likewise. * sysdeps/mach/hurd/i386/libm.abilist: Likewise. * sysdeps/mach/hurd/i386/libnsl.abilist: Likewise. * sysdeps/mach/hurd/i386/libpthread.abilist: Likewise. * sysdeps/mach/hurd/i386/libresolv.abilist: Likewise. * sysdeps/mach/hurd/i386/librt.abilist: Likewise. * sysdeps/mach/hurd/i386/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.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/powerpc/powerpc64/libcrypt-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist: Likewise. --- ChangeLog | 356 +++++++++++++++++++++ scripts/abilist.awk | 3 +- sysdeps/mach/hurd/i386/ld.abilist | 3 - sysdeps/mach/hurd/i386/libBrokenLocale.abilist | 1 - sysdeps/mach/hurd/i386/libanl.abilist | 1 - sysdeps/mach/hurd/i386/libc.abilist | 27 -- sysdeps/mach/hurd/i386/libcrypt.abilist | 1 - sysdeps/mach/hurd/i386/libdl.abilist | 3 - sysdeps/mach/hurd/i386/libm.abilist | 10 - sysdeps/mach/hurd/i386/libnsl.abilist | 1 - sysdeps/mach/hurd/i386/libpthread.abilist | 3 - sysdeps/mach/hurd/i386/libresolv.abilist | 3 - sysdeps/mach/hurd/i386/librt.abilist | 4 - sysdeps/mach/hurd/i386/libutil.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/ld.abilist | 1 - .../sysv/linux/aarch64/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/libanl.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/libc.abilist | 8 - sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/libdl.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/libm.abilist | 7 - sysdeps/unix/sysv/linux/aarch64/libnsl.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/libpthread.abilist | 2 - sysdeps/unix/sysv/linux/aarch64/libresolv.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/librt.abilist | 1 - .../unix/sysv/linux/aarch64/libthread_db.abilist | 1 - sysdeps/unix/sysv/linux/aarch64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/alpha/ld.abilist | 4 - .../unix/sysv/linux/alpha/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/alpha/libanl.abilist | 1 - sysdeps/unix/sysv/linux/alpha/libc.abilist | 38 --- sysdeps/unix/sysv/linux/alpha/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/alpha/libdl.abilist | 4 - sysdeps/unix/sysv/linux/alpha/libm.abilist | 12 - sysdeps/unix/sysv/linux/alpha/libnsl.abilist | 3 - sysdeps/unix/sysv/linux/alpha/libpthread.abilist | 14 - sysdeps/unix/sysv/linux/alpha/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/alpha/librt.abilist | 7 - sysdeps/unix/sysv/linux/alpha/libthread_db.abilist | 4 - sysdeps/unix/sysv/linux/alpha/libutil.abilist | 1 - sysdeps/unix/sysv/linux/arm/ld.abilist | 1 - .../unix/sysv/linux/arm/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/arm/libanl.abilist | 1 - sysdeps/unix/sysv/linux/arm/libc.abilist | 21 -- sysdeps/unix/sysv/linux/arm/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/arm/libdl.abilist | 1 - sysdeps/unix/sysv/linux/arm/libm.abilist | 8 - sysdeps/unix/sysv/linux/arm/libnsl.abilist | 1 - sysdeps/unix/sysv/linux/arm/libpthread.abilist | 4 - sysdeps/unix/sysv/linux/arm/libresolv.abilist | 2 - sysdeps/unix/sysv/linux/arm/librt.abilist | 2 - sysdeps/unix/sysv/linux/arm/libthread_db.abilist | 1 - sysdeps/unix/sysv/linux/arm/libutil.abilist | 1 - sysdeps/unix/sysv/linux/hppa/ld.abilist | 3 - .../unix/sysv/linux/hppa/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/hppa/libanl.abilist | 1 - sysdeps/unix/sysv/linux/hppa/libc.abilist | 32 -- sysdeps/unix/sysv/linux/hppa/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/hppa/libdl.abilist | 4 - sysdeps/unix/sysv/linux/hppa/libm.abilist | 9 - sysdeps/unix/sysv/linux/hppa/libnsl.abilist | 3 - sysdeps/unix/sysv/linux/hppa/libpthread.abilist | 10 - sysdeps/unix/sysv/linux/hppa/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/hppa/librt.abilist | 5 - sysdeps/unix/sysv/linux/hppa/libthread_db.abilist | 4 - sysdeps/unix/sysv/linux/hppa/libutil.abilist | 1 - sysdeps/unix/sysv/linux/i386/ld.abilist | 4 - .../unix/sysv/linux/i386/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/i386/libanl.abilist | 1 - sysdeps/unix/sysv/linux/i386/libc.abilist | 37 --- sysdeps/unix/sysv/linux/i386/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/i386/libdl.abilist | 4 - sysdeps/unix/sysv/linux/i386/libm.abilist | 12 - sysdeps/unix/sysv/linux/i386/libnsl.abilist | 3 - sysdeps/unix/sysv/linux/i386/libpthread.abilist | 14 - sysdeps/unix/sysv/linux/i386/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/i386/librt.abilist | 5 - sysdeps/unix/sysv/linux/i386/libthread_db.abilist | 4 - sysdeps/unix/sysv/linux/i386/libutil.abilist | 1 - sysdeps/unix/sysv/linux/ia64/ld.abilist | 3 - .../unix/sysv/linux/ia64/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/ia64/libanl.abilist | 1 - sysdeps/unix/sysv/linux/ia64/libc.abilist | 31 -- sysdeps/unix/sysv/linux/ia64/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/ia64/libdl.abilist | 4 - sysdeps/unix/sysv/linux/ia64/libm.abilist | 11 - sysdeps/unix/sysv/linux/ia64/libnsl.abilist | 3 - sysdeps/unix/sysv/linux/ia64/libpthread.abilist | 10 - sysdeps/unix/sysv/linux/ia64/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/ia64/librt.abilist | 6 - sysdeps/unix/sysv/linux/ia64/libthread_db.abilist | 4 - sysdeps/unix/sysv/linux/ia64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist | 1 - .../linux/m68k/coldfire/libBrokenLocale.abilist | 1 - .../unix/sysv/linux/m68k/coldfire/libanl.abilist | 1 - sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 21 -- .../unix/sysv/linux/m68k/coldfire/libcrypt.abilist | 1 - .../unix/sysv/linux/m68k/coldfire/libdl.abilist | 1 - sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist | 8 - .../unix/sysv/linux/m68k/coldfire/libnsl.abilist | 1 - .../sysv/linux/m68k/coldfire/libpthread.abilist | 4 - .../sysv/linux/m68k/coldfire/libresolv.abilist | 2 - .../unix/sysv/linux/m68k/coldfire/librt.abilist | 2 - .../sysv/linux/m68k/coldfire/libthread_db.abilist | 1 - .../unix/sysv/linux/m68k/coldfire/libutil.abilist | 1 - sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist | 4 - .../sysv/linux/m68k/m680x0/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist | 1 - sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 37 --- .../unix/sysv/linux/m68k/m680x0/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist | 4 - sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 11 - sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist | 3 - .../unix/sysv/linux/m68k/m680x0/libpthread.abilist | 14 - .../unix/sysv/linux/m68k/m680x0/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist | 5 - .../sysv/linux/m68k/m680x0/libthread_db.abilist | 4 - .../unix/sysv/linux/m68k/m680x0/libutil.abilist | 1 - sysdeps/unix/sysv/linux/microblaze/ld.abilist | 1 - .../sysv/linux/microblaze/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/microblaze/libanl.abilist | 1 - sysdeps/unix/sysv/linux/microblaze/libc.abilist | 7 - .../unix/sysv/linux/microblaze/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/microblaze/libdl.abilist | 1 - sysdeps/unix/sysv/linux/microblaze/libm.abilist | 6 - sysdeps/unix/sysv/linux/microblaze/libnsl.abilist | 1 - .../unix/sysv/linux/microblaze/libpthread.abilist | 1 - .../unix/sysv/linux/microblaze/libresolv.abilist | 1 - sysdeps/unix/sysv/linux/microblaze/librt.abilist | 1 - .../sysv/linux/microblaze/libthread_db.abilist | 1 - sysdeps/unix/sysv/linux/microblaze/libutil.abilist | 1 - .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 35 -- sysdeps/unix/sysv/linux/mips/mips32/ld.abilist | 5 - .../sysv/linux/mips/mips32/libBrokenLocale.abilist | 2 - sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist | 2 - .../unix/sysv/linux/mips/mips32/libcidn.abilist | 1 - .../unix/sysv/linux/mips/mips32/libcrypt.abilist | 2 - sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist | 5 - sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 11 - sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist | 3 - .../sysv/linux/mips/mips32/libnss_compat.abilist | 1 - .../unix/sysv/linux/mips/mips32/libnss_db.abilist | 1 - .../unix/sysv/linux/mips/mips32/libnss_dns.abilist | 1 - .../sysv/linux/mips/mips32/libnss_files.abilist | 1 - .../sysv/linux/mips/mips32/libnss_hesiod.abilist | 1 - .../unix/sysv/linux/mips/mips32/libnss_nis.abilist | 1 - .../sysv/linux/mips/mips32/libnss_nisplus.abilist | 1 - .../unix/sysv/linux/mips/mips32/libpthread.abilist | 12 - .../unix/sysv/linux/mips/mips32/libresolv.abilist | 5 - sysdeps/unix/sysv/linux/mips/mips32/librt.abilist | 5 - .../sysv/linux/mips/mips32/libthread_db.abilist | 5 - .../unix/sysv/linux/mips/mips32/libutil.abilist | 2 - .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 35 -- .../sysv/linux/mips/mips64/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist | 1 - .../unix/sysv/linux/mips/mips64/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist | 4 - sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 10 - sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist | 2 - .../unix/sysv/linux/mips/mips64/libpthread.abilist | 11 - sysdeps/unix/sysv/linux/mips/mips64/librt.abilist | 4 - .../sysv/linux/mips/mips64/libthread_db.abilist | 4 - .../unix/sysv/linux/mips/mips64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist | 4 - .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 34 -- .../sysv/linux/mips/mips64/n32/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist | 4 - .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 33 -- .../sysv/linux/mips/mips64/n64/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/nios2/ld.abilist | 1 - .../unix/sysv/linux/nios2/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libanl.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libc.abilist | 7 - sysdeps/unix/sysv/linux/nios2/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libdl.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libm.abilist | 6 - sysdeps/unix/sysv/linux/nios2/libnsl.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libpthread.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libresolv.abilist | 1 - sysdeps/unix/sysv/linux/nios2/librt.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libthread_db.abilist | 1 - sysdeps/unix/sysv/linux/nios2/libutil.abilist | 1 - .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 37 --- .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 11 - .../unix/sysv/linux/powerpc/powerpc32/ld.abilist | 6 - .../powerpc/powerpc32/libBrokenLocale.abilist | 1 - .../sysv/linux/powerpc/powerpc32/libanl.abilist | 1 - .../sysv/linux/powerpc/powerpc32/libcrypt.abilist | 1 - .../sysv/linux/powerpc/powerpc32/libdl.abilist | 4 - .../sysv/linux/powerpc/powerpc32/libnsl.abilist | 3 - .../linux/powerpc/powerpc32/libpthread.abilist | 15 - .../sysv/linux/powerpc/powerpc32/libresolv.abilist | 4 - .../sysv/linux/powerpc/powerpc32/librt.abilist | 5 - .../linux/powerpc/powerpc32/libthread_db.abilist | 4 - .../sysv/linux/powerpc/powerpc32/libutil.abilist | 1 - .../linux/powerpc/powerpc32/nofpu/libc.abilist | 38 --- .../linux/powerpc/powerpc32/nofpu/libm.abilist | 11 - .../sysv/linux/powerpc/powerpc64/ld-le.abilist | 3 - .../unix/sysv/linux/powerpc/powerpc64/ld.abilist | 4 - .../powerpc/powerpc64/libBrokenLocale-le.abilist | 1 - .../powerpc/powerpc64/libBrokenLocale.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libanl-le.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libanl.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 8 - .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 25 -- .../linux/powerpc/powerpc64/libcrypt-le.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libcrypt.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libdl-le.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libdl.abilist | 3 - .../sysv/linux/powerpc/powerpc64/libm-le.abilist | 8 - .../unix/sysv/linux/powerpc/powerpc64/libm.abilist | 9 - .../sysv/linux/powerpc/powerpc64/libnsl-le.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libnsl.abilist | 1 - .../linux/powerpc/powerpc64/libpthread-le.abilist | 2 - .../linux/powerpc/powerpc64/libpthread.abilist | 9 - .../linux/powerpc/powerpc64/libresolv-le.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libresolv.abilist | 3 - .../sysv/linux/powerpc/powerpc64/librt-le.abilist | 1 - .../sysv/linux/powerpc/powerpc64/librt.abilist | 5 - .../powerpc/powerpc64/libthread_db-le.abilist | 1 - .../linux/powerpc/powerpc64/libthread_db.abilist | 2 - .../linux/powerpc/powerpc64/libutil-le.abilist | 1 - .../sysv/linux/powerpc/powerpc64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist | 1 - .../sysv/linux/riscv/rv64/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist | 1 - sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 1 - .../unix/sysv/linux/riscv/rv64/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist | 1 - sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist | 2 - sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist | 1 - .../unix/sysv/linux/riscv/rv64/libpthread.abilist | 1 - .../unix/sysv/linux/riscv/rv64/libresolv.abilist | 1 - sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist | 1 - .../sysv/linux/riscv/rv64/libthread_db.abilist | 1 - sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/s390/libanl.abilist | 1 - sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist | 4 - .../linux/s390/s390-32/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 38 --- .../unix/sysv/linux/s390/s390-32/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist | 4 - sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 11 - .../unix/sysv/linux/s390/s390-32/libnsl.abilist | 3 - .../sysv/linux/s390/s390-32/libpthread.abilist | 15 - .../unix/sysv/linux/s390/s390-32/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist | 5 - .../sysv/linux/s390/s390-32/libthread_db.abilist | 4 - .../unix/sysv/linux/s390/s390-32/libutil.abilist | 2 - sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist | 3 - .../linux/s390/s390-64/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 33 -- .../unix/sysv/linux/s390/s390-64/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist | 3 - sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 9 - .../unix/sysv/linux/s390/s390-64/libnsl.abilist | 1 - .../sysv/linux/s390/s390-64/libpthread.abilist | 11 - .../unix/sysv/linux/s390/s390-64/libresolv.abilist | 3 - sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist | 5 - .../sysv/linux/s390/s390-64/libthread_db.abilist | 4 - .../unix/sysv/linux/s390/s390-64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/sh/ld.abilist | 3 - sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/sh/libanl.abilist | 1 - sysdeps/unix/sysv/linux/sh/libc.abilist | 32 -- sysdeps/unix/sysv/linux/sh/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/sh/libdl.abilist | 4 - sysdeps/unix/sysv/linux/sh/libm.abilist | 9 - sysdeps/unix/sysv/linux/sh/libnsl.abilist | 3 - sysdeps/unix/sysv/linux/sh/libpthread.abilist | 10 - sysdeps/unix/sysv/linux/sh/libresolv.abilist | 4 - sysdeps/unix/sysv/linux/sh/librt.abilist | 5 - sysdeps/unix/sysv/linux/sh/libthread_db.abilist | 4 - sysdeps/unix/sysv/linux/sh/libutil.abilist | 1 - sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist | 4 - .../linux/sparc/sparc32/libBrokenLocale.abilist | 1 - .../unix/sysv/linux/sparc/sparc32/libanl.abilist | 1 - sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 37 --- .../unix/sysv/linux/sparc/sparc32/libcrypt.abilist | 1 - .../unix/sysv/linux/sparc/sparc32/libdl.abilist | 4 - sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 11 - .../unix/sysv/linux/sparc/sparc32/libnsl.abilist | 3 - .../sysv/linux/sparc/sparc32/libpthread.abilist | 14 - .../sysv/linux/sparc/sparc32/libresolv.abilist | 4 - .../unix/sysv/linux/sparc/sparc32/librt.abilist | 6 - .../sysv/linux/sparc/sparc32/libthread_db.abilist | 4 - .../unix/sysv/linux/sparc/sparc32/libutil.abilist | 1 - sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist | 3 - .../linux/sparc/sparc64/libBrokenLocale.abilist | 1 - .../unix/sysv/linux/sparc/sparc64/libanl.abilist | 1 - sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 32 -- .../unix/sysv/linux/sparc/sparc64/libcrypt.abilist | 1 - .../unix/sysv/linux/sparc/sparc64/libdl.abilist | 4 - sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 9 - .../unix/sysv/linux/sparc/sparc64/libnsl.abilist | 3 - .../sysv/linux/sparc/sparc64/libpthread.abilist | 10 - .../sysv/linux/sparc/sparc64/libresolv.abilist | 4 - .../unix/sysv/linux/sparc/sparc64/librt.abilist | 7 - .../sysv/linux/sparc/sparc64/libthread_db.abilist | 4 - .../unix/sysv/linux/sparc/sparc64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/64/ld.abilist | 3 - .../sysv/linux/x86_64/64/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 27 -- sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist | 3 - sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 10 - sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist | 1 - .../unix/sysv/linux/x86_64/64/libpthread.abilist | 9 - .../unix/sysv/linux/x86_64/64/libresolv.abilist | 3 - sysdeps/unix/sysv/linux/x86_64/64/librt.abilist | 5 - .../unix/sysv/linux/x86_64/64/libthread_db.abilist | 3 - sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/libmvec.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist | 1 - .../sysv/linux/x86_64/x32/libBrokenLocale.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 9 - .../unix/sysv/linux/x86_64/x32/libcrypt.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 8 - sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist | 1 - .../unix/sysv/linux/x86_64/x32/libpthread.abilist | 2 - .../unix/sysv/linux/x86_64/x32/libresolv.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist | 1 - .../sysv/linux/x86_64/x32/libthread_db.abilist | 1 - sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist | 1 - 327 files changed, 357 insertions(+), 1683 deletions(-) delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index a081ea4195..a0028998d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,359 @@ +2018-05-04 Joseph Myers + + * scripts/abilist.awk: Ignore absolute symbols. + * sysdeps/mach/hurd/i386/ld.abilist: Remove absolute symbols. + * sysdeps/mach/hurd/i386/libBrokenLocale.abilist: Likewise. + * sysdeps/mach/hurd/i386/libanl.abilist: Likewise. + * sysdeps/mach/hurd/i386/libc.abilist: Likewise. + * sysdeps/mach/hurd/i386/libcrypt.abilist: Likewise. + * sysdeps/mach/hurd/i386/libdl.abilist: Likewise. + * sysdeps/mach/hurd/i386/libm.abilist: Likewise. + * sysdeps/mach/hurd/i386/libnsl.abilist: Likewise. + * sysdeps/mach/hurd/i386/libpthread.abilist: Likewise. + * sysdeps/mach/hurd/i386/libresolv.abilist: Likewise. + * sysdeps/mach/hurd/i386/librt.abilist: Likewise. + * sysdeps/mach/hurd/i386/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.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/powerpc/powerpc64/libcrypt-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist: + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/libmvec.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist: Likewise. + 2018-05-04 Stefan Liebler [BZ #23137] diff --git a/scripts/abilist.awk b/scripts/abilist.awk index bd740d4693..bad7c3807e 100644 --- a/scripts/abilist.awk +++ b/scripts/abilist.awk @@ -72,8 +72,7 @@ $2 == "g" || $2 == "w" && (NF == 7 || NF == 8) { seen_opd = -1; } else if ($4 == "*ABS*") { - type = "A"; - size = ""; + next; } else if (type == "DO") { type = "D"; diff --git a/sysdeps/mach/hurd/i386/ld.abilist b/sysdeps/mach/hurd/i386/ld.abilist index b3b28d7af6..14371336de 100644 --- a/sysdeps/mach/hurd/i386/ld.abilist +++ b/sysdeps/mach/hurd/i386/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __close F GLIBC_2.2.6 __errno_location F GLIBC_2.2.6 __fxstat64 F @@ -15,8 +14,6 @@ GLIBC_2.2.6 calloc F GLIBC_2.2.6 free F GLIBC_2.2.6 malloc F GLIBC_2.2.6 realloc F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 ___tls_get_addr F GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x4 diff --git a/sysdeps/mach/hurd/i386/libBrokenLocale.abilist b/sysdeps/mach/hurd/i386/libBrokenLocale.abilist index 72c6a9cb02..a0f854c7f8 100644 --- a/sysdeps/mach/hurd/i386/libBrokenLocale.abilist +++ b/sysdeps/mach/hurd/i386/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __ctype_get_mb_cur_max F diff --git a/sysdeps/mach/hurd/i386/libanl.abilist b/sysdeps/mach/hurd/i386/libanl.abilist index b2a4c15dd8..123013b2ce 100644 --- a/sysdeps/mach/hurd/i386/libanl.abilist +++ b/sysdeps/mach/hurd/i386/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 gai_cancel F GLIBC_2.2.6 gai_error F GLIBC_2.2.6 gai_suspend F diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 9545e898c1..2cb507052b 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -23,25 +22,20 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 __fentry__ F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F GLIBC_2.15 posix_spawnp F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -52,7 +46,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F @@ -61,9 +54,7 @@ GLIBC_2.17 clock_settime F GLIBC_2.17 recvmmsg F GLIBC_2.17 secure_getenv F GLIBC_2.17 sendmmsg F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 _Exit F GLIBC_2.2.6 _IO_2_1_stderr_ D 0x98 GLIBC_2.2.6 _IO_2_1_stdin_ D 0x98 @@ -1947,7 +1938,6 @@ GLIBC_2.2.6 xdrstdio_create F GLIBC_2.2.6 xencrypt F GLIBC_2.2.6 xprt_register F GLIBC_2.2.6 xprt_unregister F -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 __mach_host_self_ D 0x4 GLIBC_2.21 __pthread_get_cleanup_stack F GLIBC_2.21 pthread_attr_destroy F @@ -1981,18 +1971,14 @@ GLIBC_2.21 pthread_self F GLIBC_2.21 pthread_setcancelstate F GLIBC_2.21 pthread_setcanceltype F GLIBC_2.21 pthread_setschedparam F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 __register_atfork F GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2003,7 +1989,6 @@ GLIBC_2.25 gnu_dev_minor F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 _hurd_exec_paths F @@ -2017,7 +2002,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 __hurd_dfail F GLIBC_2.27 __hurd_sockfail F GLIBC_2.27 _hurd_fd_error F @@ -2049,7 +2033,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2138,14 +2121,12 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 getresgid F GLIBC_2.3.2 getresuid F GLIBC_2.3.2 lchmod F GLIBC_2.3.2 setresgid F GLIBC_2.3.2 setresuid F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 inet6_option_alloc F GLIBC_2.3.3 inet6_option_append F GLIBC_2.3.3 inet6_option_find F @@ -2159,7 +2140,6 @@ GLIBC_2.3.3 remap_file_pages F GLIBC_2.3.3 sched_getaffinity F GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2187,7 +2167,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2256,7 +2235,6 @@ GLIBC_2.4 readlinkat F GLIBC_2.4 renameat F GLIBC_2.4 symlinkat F GLIBC_2.4 unlinkat F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2271,12 +2249,10 @@ GLIBC_2.5 inet6_rth_init F GLIBC_2.5 inet6_rth_reverse F GLIBC_2.5 inet6_rth_segments F GLIBC_2.5 inet6_rth_space F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 futimens F GLIBC_2.6 strerror_l F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2299,7 +2275,6 @@ GLIBC_2.7 __sched_cpualloc F GLIBC_2.7 __sched_cpufree F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2307,10 +2282,8 @@ GLIBC_2.8 __obstack_vprintf_chk F GLIBC_2.8 __vasprintf_chk F GLIBC_2.8 __vdprintf_chk F GLIBC_2.8 qsort_r F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 pipe2 F -HURD_CTHREADS_0.3 HURD_CTHREADS_0.3 A HURD_CTHREADS_0.3 __cthread_getspecific F HURD_CTHREADS_0.3 __cthread_keycreate F HURD_CTHREADS_0.3 __cthread_setspecific F diff --git a/sysdeps/mach/hurd/i386/libcrypt.abilist b/sysdeps/mach/hurd/i386/libcrypt.abilist index 6966c3753f..5cd9b78d1e 100644 --- a/sysdeps/mach/hurd/i386/libcrypt.abilist +++ b/sysdeps/mach/hurd/i386/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 crypt F GLIBC_2.2.6 crypt_r F GLIBC_2.2.6 encrypt F diff --git a/sysdeps/mach/hurd/i386/libdl.abilist b/sysdeps/mach/hurd/i386/libdl.abilist index fa6658beae..27d133bb7b 100644 --- a/sysdeps/mach/hurd/i386/libdl.abilist +++ b/sysdeps/mach/hurd/i386/libdl.abilist @@ -1,12 +1,9 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 dladdr F GLIBC_2.2.6 dlclose F GLIBC_2.2.6 dlerror F GLIBC_2.2.6 dlopen F GLIBC_2.2.6 dlsym F GLIBC_2.2.6 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 83cd23db0b..11b8fd1dac 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -80,11 +79,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 _LIB_VERSION D 0x4 GLIBC_2.2.6 __clog10 F GLIBC_2.2.6 __clog10f F @@ -401,19 +398,16 @@ GLIBC_2.2.6 y1l F GLIBC_2.2.6 yn F GLIBC_2.2.6 ynf F GLIBC_2.2.6 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F @@ -464,7 +458,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __acosf128_finite F GLIBC_2.26 __acoshf128_finite F GLIBC_2.26 __asinf128_finite F @@ -602,7 +595,6 @@ GLIBC_2.26 ufromfpxf128 F GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -1024,7 +1016,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F @@ -1051,4 +1042,3 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/mach/hurd/i386/libnsl.abilist b/sysdeps/mach/hurd/i386/libnsl.abilist index 7c2d6a9e5a..c3979162d3 100644 --- a/sysdeps/mach/hurd/i386/libnsl.abilist +++ b/sysdeps/mach/hurd/i386/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __free_fdresult F GLIBC_2.2.6 __nis_default_access F GLIBC_2.2.6 __nis_default_group F diff --git a/sysdeps/mach/hurd/i386/libpthread.abilist b/sysdeps/mach/hurd/i386/libpthread.abilist index 5838c5768d..4c7d06d073 100644 --- a/sysdeps/mach/hurd/i386/libpthread.abilist +++ b/sysdeps/mach/hurd/i386/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 __mutex_lock_solid F GLIBC_2.12 __mutex_unlock_solid F GLIBC_2.12 __pthread_get_cleanup_stack F @@ -143,10 +142,8 @@ GLIBC_2.12 sem_timedwait F GLIBC_2.12 sem_trywait F GLIBC_2.12 sem_unlink F GLIBC_2.12 sem_wait F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 _IO_flockfile F GLIBC_2.2.6 _IO_ftrylockfile F GLIBC_2.2.6 _IO_funlockfile F -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 pthread_hurd_cond_timedwait_np F GLIBC_2.21 pthread_hurd_cond_wait_np F diff --git a/sysdeps/mach/hurd/i386/libresolv.abilist b/sysdeps/mach/hurd/i386/libresolv.abilist index d65a4bb390..e662651c8e 100644 --- a/sysdeps/mach/hurd/i386/libresolv.abilist +++ b/sysdeps/mach/hurd/i386/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __b64_ntop F GLIBC_2.2.6 __b64_pton F GLIBC_2.2.6 __dn_comp F @@ -63,9 +62,7 @@ GLIBC_2.2.6 res_gethostbyname F GLIBC_2.2.6 res_gethostbyname2 F GLIBC_2.2.6 res_send_setqhook F GLIBC_2.2.6 res_send_setrhook F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/mach/hurd/i386/librt.abilist b/sysdeps/mach/hurd/i386/librt.abilist index f4b5654fd4..d5fe32b3a9 100644 --- a/sysdeps/mach/hurd/i386/librt.abilist +++ b/sysdeps/mach/hurd/i386/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 aio_cancel F GLIBC_2.2.6 aio_cancel64 F GLIBC_2.2.6 aio_error F @@ -28,7 +27,6 @@ GLIBC_2.2.6 timer_delete F GLIBC_2.2.6 timer_getoverrun F GLIBC_2.2.6 timer_gettime F GLIBC_2.2.6 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -39,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/mach/hurd/i386/libutil.abilist b/sysdeps/mach/hurd/i386/libutil.abilist index 8168781176..1dd59e0afb 100644 --- a/sysdeps/mach/hurd/i386/libutil.abilist +++ b/sysdeps/mach/hurd/i386/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 forkpty F GLIBC_2.2.6 login F GLIBC_2.2.6 login_tty F diff --git a/sysdeps/unix/sysv/linux/aarch64/ld.abilist b/sysdeps/unix/sysv/linux/aarch64/ld.abilist index ec7f6174c5..4ffe688649 100644 --- a/sysdeps/unix/sysv/linux/aarch64/ld.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __libc_stack_end D 0x8 GLIBC_2.17 __stack_chk_guard D 0x8 GLIBC_2.17 __tls_get_addr F diff --git a/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist index 5e54974368..0829ddef6d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/aarch64/libanl.abilist b/sysdeps/unix/sysv/linux/aarch64/libanl.abilist index 21330fc8d5..9492cd5290 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 gai_cancel F GLIBC_2.17 gai_error F GLIBC_2.17 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 90c9bc84e1..80cdb98e1c 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _Exit F GLIBC_2.17 _IO_2_1_stderr_ D 0xe0 GLIBC_2.17 _IO_2_1_stdin_ D 0xe0 @@ -2076,20 +2075,15 @@ GLIBC_2.17 xdrstdio_create F GLIBC_2.17 xencrypt F GLIBC_2.17 xprt_register F GLIBC_2.17 xprt_unregister F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F GLIBC_2.18 _mcount F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2097,13 +2091,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist b/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist index 58944b3d83..4082747aa3 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 crypt F GLIBC_2.17 crypt_r F GLIBC_2.17 encrypt F diff --git a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist index 1b4b1f77ed..36340d5dd8 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 dladdr F GLIBC_2.17 dladdr1 F GLIBC_2.17 dlclose F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index c88a3eef47..e22190e5bc 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _LIB_VERSION D 0x4 GLIBC_2.17 __acos_finite F GLIBC_2.17 __acosf_finite F @@ -394,23 +393,19 @@ GLIBC_2.17 y1l F GLIBC_2.17 yn F GLIBC_2.17 ynf F GLIBC_2.17 ynl F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 __iseqsigl F @@ -460,7 +455,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F @@ -986,7 +980,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F diff --git a/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist b/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist index 63d47aef79..eae8dbe341 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __free_fdresult F GLIBC_2.17 __nis_default_access F GLIBC_2.17 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist index 0cf30ee02f..3fd58aea0d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _IO_flockfile F GLIBC_2.17 _IO_ftrylockfile F GLIBC_2.17 _IO_funlockfile F @@ -221,6 +220,5 @@ GLIBC_2.17 vfork F GLIBC_2.17 wait F GLIBC_2.17 waitpid F GLIBC_2.17 write F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F diff --git a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist index cf278eedb3..f7fdd26bd1 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __b64_ntop F GLIBC_2.17 __b64_pton F GLIBC_2.17 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/librt.abilist index 523d22249a..5e81c82a25 100644 --- a/sysdeps/unix/sysv/linux/aarch64/librt.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __mq_open_2 F GLIBC_2.17 aio_cancel F GLIBC_2.17 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist b/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist index 3e382bf79d..3b84229ebc 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 td_init F GLIBC_2.17 td_log F GLIBC_2.17 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/aarch64/libutil.abilist b/sysdeps/unix/sysv/linux/aarch64/libutil.abilist index 9c075bc0bd..99889de22e 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 forkpty F GLIBC_2.17 login F GLIBC_2.17 login_tty F diff --git a/sysdeps/unix/sysv/linux/alpha/ld.abilist b/sysdeps/unix/sysv/linux/alpha/ld.abilist index ca34294610..98b66edabf 100644 --- a/sysdeps/unix/sysv/linux/alpha/ld.abilist +++ b/sysdeps/unix/sysv/linux/alpha/ld.abilist @@ -1,13 +1,9 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x28 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_stack_end D 0x8 GLIBC_2.1 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x8 diff --git a/sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/alpha/libanl.abilist b/sysdeps/unix/sysv/linux/alpha/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/alpha/libanl.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 8674a874b4..c761f61c43 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1339,7 +1337,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0xe0 GLIBC_2.1 _IO_2_1_stdin_ D 0xe0 GLIBC_2.1 _IO_2_1_stdout_ D 0xe0 @@ -1656,7 +1653,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1686,7 +1682,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1714,13 +1709,10 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.1.4 GLIBC_2.1.4 A GLIBC_2.1.4 pciconfig_iobase F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1747,33 +1739,28 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x458 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x458 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1782,7 +1769,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1797,16 +1783,13 @@ GLIBC_2.16 mbrtoc32 F GLIBC_2.16 sys_errlist D 0x460 GLIBC_2.16 sys_nerr D 0x4 GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1971,36 +1954,27 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F GLIBC_2.2.2 wordexp F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2008,13 +1982,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 getrlimit F GLIBC_2.27 getrlimit64 F @@ -2054,7 +2026,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2146,7 +2117,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2159,7 +2129,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2180,7 +2149,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x208 GLIBC_2.3.3 sys_siglist D 0x208 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 _OtsAddX F GLIBC_2.3.4 _OtsConvertFloatTX F GLIBC_2.3.4 _OtsConvertFloatXT F @@ -2226,7 +2194,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2454,7 +2421,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2472,7 +2438,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2480,7 +2445,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2519,7 +2483,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2536,7 +2499,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/alpha/libcrypt.abilist b/sysdeps/unix/sysv/linux/alpha/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/alpha/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/alpha/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/alpha/libdl.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 9b32581f93..0da51ce555 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 __atan2 F GLIBC_2.0 acos F @@ -156,7 +155,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -309,7 +307,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -390,14 +387,12 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F GLIBC_2.18 __sqrt_finite F GLIBC_2.18 __sqrtf_finite F GLIBC_2.18 __sqrtl_finite F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 feclearexcept F GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F @@ -408,19 +403,16 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 __iseqsigl F @@ -470,7 +462,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F @@ -996,7 +987,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F @@ -1025,7 +1015,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __c1_cabsf F GLIBC_2.3.4 __c1_cacosf F GLIBC_2.3.4 __c1_cacoshf F @@ -1072,7 +1061,6 @@ GLIBC_2.3.4 csinhf F GLIBC_2.3.4 csqrtf F GLIBC_2.3.4 ctanf F GLIBC_2.3.4 ctanhf F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/alpha/libnsl.abilist b/sysdeps/unix/sysv/linux/alpha/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/alpha/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist index 7e121d45f8..858fc066ca 100644 --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,7 +118,6 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_allocate_rtsig F GLIBC_2.1 __libc_current_sigrtmax F GLIBC_2.1 __libc_current_sigrtmin F @@ -154,24 +152,18 @@ GLIBC_2.1 sem_init F GLIBC_2.1 sem_post F GLIBC_2.1 sem_trywait F GLIBC_2.1 sem_wait F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 sem_close F GLIBC_2.1.1 sem_open F GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __open64 F GLIBC_2.2 __pread64 F GLIBC_2.2 __pthread_rwlock_destroy F @@ -212,18 +204,14 @@ GLIBC_2.2 pthread_yield F GLIBC_2.2 pwrite F GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -241,13 +229,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist index 2d92a35e81..06f995151c 100644 --- a/sysdeps/unix/sysv/linux/alpha/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/alpha/librt.abilist b/sysdeps/unix/sysv/linux/alpha/librt.abilist index 8699f6ccc4..d7a049cf60 100644 --- a/sysdeps/unix/sysv/linux/alpha/librt.abilist +++ b/sysdeps/unix/sysv/linux/alpha/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,16 +27,13 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 aio_cancel F GLIBC_2.3 aio_cancel64 F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 timer_create F GLIBC_2.3.3 timer_delete F GLIBC_2.3.3 timer_getoverrun F GLIBC_2.3.3 timer_gettime F GLIBC_2.3.3 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -49,8 +44,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/alpha/libthread_db.abilist b/sysdeps/unix/sysv/linux/alpha/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/alpha/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/alpha/libutil.abilist b/sysdeps/unix/sysv/linux/alpha/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/alpha/libutil.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/arm/ld.abilist b/sysdeps/unix/sysv/linux/arm/ld.abilist index cbf3a3cb2e..a301c6ebc4 100644 --- a/sysdeps/unix/sysv/linux/arm/ld.abilist +++ b/sysdeps/unix/sysv/linux/arm/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __libc_stack_end D 0x4 GLIBC_2.4 __stack_chk_guard D 0x4 GLIBC_2.4 __tls_get_addr F diff --git a/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist index e80f213955..7e60a808d8 100644 --- a/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/arm/libanl.abilist b/sysdeps/unix/sysv/linux/arm/libanl.abilist index df0c397ddc..a8fafedb66 100644 --- a/sysdeps/unix/sysv/linux/arm/libanl.abilist +++ b/sysdeps/unix/sysv/linux/arm/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 gai_cancel F GLIBC_2.4 gai_error F GLIBC_2.4 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 044ec102c2..6aa58c3ca7 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -24,7 +23,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -32,26 +30,22 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -60,7 +54,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -71,26 +64,20 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -98,13 +85,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -130,7 +115,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 @@ -2108,7 +2092,6 @@ GLIBC_2.4 xdrstdio_create F GLIBC_2.4 xencrypt F GLIBC_2.4 xprt_register F GLIBC_2.4 xprt_unregister F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2126,7 +2109,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2134,7 +2116,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2161,7 +2142,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __gnu_mcount_nc F @@ -2173,7 +2153,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/arm/libcrypt.abilist b/sysdeps/unix/sysv/linux/arm/libcrypt.abilist index 04f1f02fa3..78a25b6df2 100644 --- a/sysdeps/unix/sysv/linux/arm/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/arm/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 crypt F GLIBC_2.4 crypt_r F GLIBC_2.4 encrypt F diff --git a/sysdeps/unix/sysv/linux/arm/libdl.abilist b/sysdeps/unix/sysv/linux/arm/libdl.abilist index 89a750a0a3..40132b1374 100644 --- a/sysdeps/unix/sysv/linux/arm/libdl.abilist +++ b/sysdeps/unix/sysv/linux/arm/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 dladdr F GLIBC_2.4 dladdr1 F GLIBC_2.4 dlclose F diff --git a/sysdeps/unix/sysv/linux/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index 543aaa70ea..a355af5104 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -53,22 +52,18 @@ GLIBC_2.15 __y1_finite F GLIBC_2.15 __y1f_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 canonicalize F @@ -117,7 +112,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -435,7 +429,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F @@ -448,7 +441,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/arm/libnsl.abilist b/sysdeps/unix/sysv/linux/arm/libnsl.abilist index 2b2e49e6a1..a005a75181 100644 --- a/sysdeps/unix/sysv/linux/arm/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/arm/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __free_fdresult F GLIBC_2.4 __nis_default_access F GLIBC_2.4 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/arm/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/libpthread.abilist index 91545c1542..85bb1dee63 100644 --- a/sysdeps/unix/sysv/linux/arm/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/arm/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_flockfile F GLIBC_2.4 _IO_ftrylockfile F GLIBC_2.4 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/arm/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/libresolv.abilist index c7023be532..2dd5094f76 100644 --- a/sysdeps/unix/sysv/linux/arm/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/arm/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __b64_ntop F GLIBC_2.4 __b64_pton F GLIBC_2.4 __dn_comp F @@ -64,7 +63,6 @@ GLIBC_2.4 res_gethostbyname F GLIBC_2.4 res_gethostbyname2 F GLIBC_2.4 res_send_setqhook F GLIBC_2.4 res_send_setrhook F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/arm/librt.abilist b/sysdeps/unix/sysv/linux/arm/librt.abilist index b47aa0cc9c..cfbbd27557 100644 --- a/sysdeps/unix/sysv/linux/arm/librt.abilist +++ b/sysdeps/unix/sysv/linux/arm/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 aio_cancel F GLIBC_2.4 aio_cancel64 F GLIBC_2.4 aio_error F @@ -38,5 +37,4 @@ GLIBC_2.4 timer_delete F GLIBC_2.4 timer_getoverrun F GLIBC_2.4 timer_gettime F GLIBC_2.4 timer_settime F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/arm/libthread_db.abilist b/sysdeps/unix/sysv/linux/arm/libthread_db.abilist index 4cffcd2238..065a2626c8 100644 --- a/sysdeps/unix/sysv/linux/arm/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/arm/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 td_init F GLIBC_2.4 td_log F GLIBC_2.4 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/arm/libutil.abilist b/sysdeps/unix/sysv/linux/arm/libutil.abilist index 0b4f746094..cc1420e68c 100644 --- a/sysdeps/unix/sysv/linux/arm/libutil.abilist +++ b/sysdeps/unix/sysv/linux/arm/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 forkpty F GLIBC_2.4 login F GLIBC_2.4 login_tty F diff --git a/sysdeps/unix/sysv/linux/hppa/ld.abilist b/sysdeps/unix/sysv/linux/hppa/ld.abilist index fc1c60ea17..0387614d8f 100644 --- a/sysdeps/unix/sysv/linux/hppa/ld.abilist +++ b/sysdeps/unix/sysv/linux/hppa/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x4 GLIBC_2.2 _dl_mcount F GLIBC_2.2 _r_debug D 0x14 @@ -6,7 +5,5 @@ GLIBC_2.2 calloc F GLIBC_2.2 free F GLIBC_2.2 malloc F GLIBC_2.2 realloc F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x4 diff --git a/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist index 21343df781..0e4d814909 100644 --- a/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/hppa/libanl.abilist b/sysdeps/unix/sysv/linux/hppa/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/hppa/libanl.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 2360130abe..d10695b7d3 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -24,7 +23,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -32,24 +30,20 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x404 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x404 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 prlimit F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -58,7 +52,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -69,7 +62,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _sys_errlist D 0x410 GLIBC_2.17 _sys_nerr D 0x4 GLIBC_2.17 clock_getcpuclockid F @@ -81,11 +73,8 @@ GLIBC_2.17 prlimit64 F GLIBC_2.17 secure_getenv F GLIBC_2.17 sys_errlist D 0x410 GLIBC_2.17 sys_nerr D 0x4 -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 fanotify_mark F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xa0 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0 @@ -1826,35 +1815,26 @@ GLIBC_2.2 xdrstdio_create F GLIBC_2.2 xencrypt F GLIBC_2.2 xprt_register F GLIBC_2.2 xprt_unregister F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1862,13 +1842,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1894,7 +1872,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -1988,7 +1965,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2001,7 +1977,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2022,7 +1997,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2052,7 +2026,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2129,7 +2102,6 @@ GLIBC_2.4 sys_errlist D 0x400 GLIBC_2.4 sys_nerr D 0x4 GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2147,7 +2119,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2155,7 +2126,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2182,7 +2152,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2193,7 +2162,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist b/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/sysdeps/unix/sysv/linux/hppa/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/hppa/libdl.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 399d1b11fc..2f923c0f4c 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -53,10 +52,8 @@ GLIBC_2.15 __y1_finite F GLIBC_2.15 __y1f_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _LIB_VERSION D 0x4 GLIBC_2.2 __clog10 F GLIBC_2.2 __clog10f F @@ -368,19 +365,16 @@ GLIBC_2.2 y1l F GLIBC_2.2 yn F GLIBC_2.2 ynf F GLIBC_2.2 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 canonicalize F @@ -429,7 +423,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -747,7 +740,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F @@ -760,5 +752,4 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/hppa/libnsl.abilist b/sysdeps/unix/sysv/linux/hppa/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/hppa/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist index a73aa43c55..4d90640ea2 100644 --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_flockfile F GLIBC_2.2 _IO_ftrylockfile F GLIBC_2.2 _IO_funlockfile F @@ -200,18 +196,14 @@ GLIBC_2.2 vfork F GLIBC_2.2 wait F GLIBC_2.2 waitpid F GLIBC_2.2 write F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -227,13 +219,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/hppa/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/hppa/librt.abilist b/sysdeps/unix/sysv/linux/hppa/librt.abilist index 15e4418863..595f1b712a 100644 --- a/sysdeps/unix/sysv/linux/hppa/librt.abilist +++ b/sysdeps/unix/sysv/linux/hppa/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -40,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist b/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/hppa/libutil.abilist b/sysdeps/unix/sysv/linux/hppa/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/hppa/libutil.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/i386/ld.abilist b/sysdeps/unix/sysv/linux/i386/ld.abilist index ddf9e78ec2..edb7307228 100644 --- a/sysdeps/unix/sysv/linux/i386/ld.abilist +++ b/sysdeps/unix/sysv/linux/i386/ld.abilist @@ -1,13 +1,9 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_stack_end D 0x4 GLIBC_2.1 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 ___tls_get_addr F GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/i386/libanl.abilist b/sysdeps/unix/sysv/linux/i386/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/i386/libanl.abilist +++ b/sysdeps/unix/sysv/linux/i386/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 39c993fd79..23092ab6d7 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1316,7 +1314,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0x98 GLIBC_2.1 _IO_2_1_stdin_ D 0x98 GLIBC_2.1 _IO_2_1_stdout_ D 0x98 @@ -1622,7 +1619,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __memcpy_by2 F GLIBC_2.1.1 __memcpy_by4 F @@ -1692,7 +1688,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1720,11 +1715,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1750,7 +1743,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1758,27 +1750,23 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 __fentry__ F GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1787,7 +1775,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1798,16 +1785,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1984,35 +1968,26 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2020,7 +1995,6 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2033,7 +2007,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -2064,7 +2037,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2158,7 +2130,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2171,7 +2142,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2192,7 +2162,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2223,7 +2192,6 @@ GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 vm86 F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2300,7 +2268,6 @@ GLIBC_2.4 sys_errlist D 0x210 GLIBC_2.4 sys_nerr D 0x4 GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2318,7 +2285,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2326,7 +2292,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2353,7 +2318,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2364,7 +2328,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/i386/libcrypt.abilist b/sysdeps/unix/sysv/linux/i386/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/i386/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/i386/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/i386/libdl.abilist b/sysdeps/unix/sysv/linux/i386/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/i386/libdl.abilist +++ b/sysdeps/unix/sysv/linux/i386/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 1eecf4105d..d65f2370fb 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -311,7 +309,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -393,11 +390,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __expl F GLIBC_2.2 __expm1l F GLIBC_2.2 feclearexcept F @@ -410,19 +405,16 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F @@ -473,7 +465,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __acosf128_finite F GLIBC_2.26 __acoshf128_finite F GLIBC_2.26 __asinf128_finite F @@ -611,7 +602,6 @@ GLIBC_2.26 ufromfpxf128 F GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -1033,7 +1023,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F @@ -1060,4 +1049,3 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/i386/libnsl.abilist b/sysdeps/unix/sysv/linux/i386/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/i386/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/i386/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist index 8f9c3254be..a69bd8fdbe 100644 --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,7 +118,6 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_allocate_rtsig F GLIBC_2.1 __libc_current_sigrtmax F GLIBC_2.1 __libc_current_sigrtmin F @@ -154,24 +152,18 @@ GLIBC_2.1 sem_init F GLIBC_2.1 sem_post F GLIBC_2.1 sem_trywait F GLIBC_2.1 sem_wait F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 sem_close F GLIBC_2.1.1 sem_open F GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __open64 F GLIBC_2.2 __pread64 F GLIBC_2.2 __pthread_rwlock_destroy F @@ -212,18 +204,14 @@ GLIBC_2.2 pthread_yield F GLIBC_2.2 pwrite F GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -239,13 +227,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/i386/libresolv.abilist b/sysdeps/unix/sysv/linux/i386/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/i386/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/i386/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/i386/librt.abilist b/sysdeps/unix/sysv/linux/i386/librt.abilist index 15e4418863..595f1b712a 100644 --- a/sysdeps/unix/sysv/linux/i386/librt.abilist +++ b/sysdeps/unix/sysv/linux/i386/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -40,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/i386/libthread_db.abilist b/sysdeps/unix/sysv/linux/i386/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/i386/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/i386/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/i386/libutil.abilist b/sysdeps/unix/sysv/linux/i386/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/i386/libutil.abilist +++ b/sysdeps/unix/sysv/linux/i386/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/ia64/ld.abilist b/sysdeps/unix/sysv/linux/ia64/ld.abilist index 9b45d5e90c..82042472c3 100644 --- a/sysdeps/unix/sysv/linux/ia64/ld.abilist +++ b/sysdeps/unix/sysv/linux/ia64/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x8 GLIBC_2.2 _dl_mcount F GLIBC_2.2 _r_debug D 0x28 @@ -6,6 +5,4 @@ GLIBC_2.2 calloc F GLIBC_2.2 free F GLIBC_2.2 malloc F GLIBC_2.2 realloc F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist index 21343df781..0e4d814909 100644 --- a/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/ia64/libanl.abilist b/sysdeps/unix/sysv/linux/ia64/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/ia64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 68496aa6ac..7bf259e86c 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -25,33 +24,28 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x438 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x438 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -60,7 +54,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -71,16 +64,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xe0 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0 @@ -1846,37 +1836,28 @@ GLIBC_2.2 xdrstdio_create F GLIBC_2.2 xencrypt F GLIBC_2.2 xprt_register F GLIBC_2.2 xprt_unregister F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F GLIBC_2.2.2 wordexp F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F GLIBC_2.2.6 getunwind F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1884,7 +1865,6 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -1897,7 +1877,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1928,7 +1907,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2020,7 +1998,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2033,7 +2010,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2054,7 +2030,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x208 GLIBC_2.3.3 sys_siglist D 0x208 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2084,7 +2059,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2161,7 +2135,6 @@ GLIBC_2.4 sys_errlist D 0x420 GLIBC_2.4 sys_nerr D 0x4 GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2179,7 +2152,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2187,7 +2159,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2214,7 +2185,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2225,7 +2195,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/ia64/libcrypt.abilist b/sysdeps/unix/sysv/linux/ia64/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/ia64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/ia64/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/ia64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index debb9d80b6..2dd457b109 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __j0_finite F GLIBC_2.15 __j0f_finite F GLIBC_2.15 __j0l_finite F @@ -17,11 +16,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _LIB_VERSION D 0x4 GLIBC_2.2 __clog10 F GLIBC_2.2 __clog10f F @@ -336,22 +333,18 @@ GLIBC_2.2 y1l F GLIBC_2.2 yn F GLIBC_2.2 ynf F GLIBC_2.2 ynl F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 matherrf F GLIBC_2.2.3 matherrl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F @@ -402,7 +395,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __acosf128_finite F GLIBC_2.26 __acoshf128_finite F GLIBC_2.26 __asinf128_finite F @@ -540,7 +532,6 @@ GLIBC_2.26 ufromfpxf128 F GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -962,7 +953,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F @@ -989,4 +979,3 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/ia64/libnsl.abilist b/sysdeps/unix/sysv/linux/ia64/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/ia64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist index d4c8dedd6c..bac572c7fa 100644 --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_flockfile F GLIBC_2.2 _IO_ftrylockfile F GLIBC_2.2 _IO_funlockfile F @@ -200,18 +196,14 @@ GLIBC_2.2 vfork F GLIBC_2.2 wait F GLIBC_2.2 waitpid F GLIBC_2.2 write F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -229,13 +221,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist index 2d92a35e81..06f995151c 100644 --- a/sysdeps/unix/sysv/linux/ia64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/ia64/librt.abilist b/sysdeps/unix/sysv/linux/ia64/librt.abilist index aa32ef3be0..804622a14a 100644 --- a/sysdeps/unix/sysv/linux/ia64/librt.abilist +++ b/sysdeps/unix/sysv/linux/ia64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,13 +27,11 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 timer_create F GLIBC_2.3.3 timer_delete F GLIBC_2.3.3 timer_getoverrun F GLIBC_2.3.3 timer_gettime F GLIBC_2.3.3 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -46,8 +42,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/ia64/libthread_db.abilist b/sysdeps/unix/sysv/linux/ia64/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/ia64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/ia64/libutil.abilist b/sysdeps/unix/sysv/linux/ia64/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/ia64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist index cbf3a3cb2e..a301c6ebc4 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __libc_stack_end D 0x4 GLIBC_2.4 __stack_chk_guard D 0x4 GLIBC_2.4 __tls_get_addr F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist index e80f213955..7e60a808d8 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist index df0c397ddc..a8fafedb66 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 gai_cancel F GLIBC_2.4 gai_error F GLIBC_2.4 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index b676025261..4673bcd79b 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -24,7 +23,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -32,7 +30,6 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 __m68k_read_tp F GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 @@ -40,19 +37,16 @@ GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -61,7 +55,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -72,26 +65,20 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -99,13 +86,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -131,7 +116,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 GLIBC_2.4 _IO_2_1_stdin_ D 0x98 @@ -2088,7 +2072,6 @@ GLIBC_2.4 xdrstdio_create F GLIBC_2.4 xencrypt F GLIBC_2.4 xprt_register F GLIBC_2.4 xprt_unregister F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2106,7 +2089,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2114,7 +2096,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2141,7 +2122,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2152,7 +2132,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist index 04f1f02fa3..78a25b6df2 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 crypt F GLIBC_2.4 crypt_r F GLIBC_2.4 encrypt F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist index 89a750a0a3..40132b1374 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 dladdr F GLIBC_2.4 dladdr1 F GLIBC_2.4 dlclose F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 543aaa70ea..a355af5104 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -53,22 +52,18 @@ GLIBC_2.15 __y1_finite F GLIBC_2.15 __y1f_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 canonicalize F @@ -117,7 +112,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -435,7 +429,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F @@ -448,7 +441,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist index 2b2e49e6a1..a005a75181 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __free_fdresult F GLIBC_2.4 __nis_default_access F GLIBC_2.4 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist index 91545c1542..85bb1dee63 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_flockfile F GLIBC_2.4 _IO_ftrylockfile F GLIBC_2.4 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist index c7023be532..2dd5094f76 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __b64_ntop F GLIBC_2.4 __b64_pton F GLIBC_2.4 __dn_comp F @@ -64,7 +63,6 @@ GLIBC_2.4 res_gethostbyname F GLIBC_2.4 res_gethostbyname2 F GLIBC_2.4 res_send_setqhook F GLIBC_2.4 res_send_setrhook F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist index b47aa0cc9c..cfbbd27557 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 aio_cancel F GLIBC_2.4 aio_cancel64 F GLIBC_2.4 aio_error F @@ -38,5 +37,4 @@ GLIBC_2.4 timer_delete F GLIBC_2.4 timer_getoverrun F GLIBC_2.4 timer_gettime F GLIBC_2.4 timer_settime F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist index 4cffcd2238..065a2626c8 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 td_init F GLIBC_2.4 td_log F GLIBC_2.4 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist index 0b4f746094..cc1420e68c 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 forkpty F GLIBC_2.4 login F GLIBC_2.4 login_tty F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist index 3907c9da33..c9ec45cf1c 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist @@ -1,13 +1,9 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_stack_end D 0x4 GLIBC_2.1 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x4 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index cdd1df55d0..1f8ac40399 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1314,7 +1312,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0x98 GLIBC_2.1 _IO_2_1_stdin_ D 0x98 GLIBC_2.1 _IO_2_1_stdout_ D 0x98 @@ -1618,7 +1615,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1648,7 +1644,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1676,11 +1671,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1706,7 +1699,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1714,7 +1706,6 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 __m68k_read_tp F GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 @@ -1722,19 +1713,16 @@ GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1743,7 +1731,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1754,16 +1741,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1940,35 +1924,26 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1976,13 +1951,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -2008,7 +1981,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2102,7 +2074,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2115,7 +2086,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2136,7 +2106,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2166,7 +2135,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2243,7 +2211,6 @@ GLIBC_2.4 sys_errlist D 0x210 GLIBC_2.4 sys_nerr D 0x4 GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2261,7 +2228,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2269,7 +2235,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2296,7 +2261,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2307,7 +2271,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index 310085d5b8..1e3218515a 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -311,7 +309,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -393,11 +390,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 feclearexcept F GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F @@ -408,19 +403,16 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F @@ -471,7 +463,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -789,7 +780,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F @@ -802,4 +792,3 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist index 8f9c3254be..a69bd8fdbe 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,7 +118,6 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_allocate_rtsig F GLIBC_2.1 __libc_current_sigrtmax F GLIBC_2.1 __libc_current_sigrtmin F @@ -154,24 +152,18 @@ GLIBC_2.1 sem_init F GLIBC_2.1 sem_post F GLIBC_2.1 sem_trywait F GLIBC_2.1 sem_wait F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 sem_close F GLIBC_2.1.1 sem_open F GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __open64 F GLIBC_2.2 __pread64 F GLIBC_2.2 __pthread_rwlock_destroy F @@ -212,18 +204,14 @@ GLIBC_2.2 pthread_yield F GLIBC_2.2 pwrite F GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -239,13 +227,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist index 15e4418863..595f1b712a 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -40,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/microblaze/ld.abilist b/sysdeps/unix/sysv/linux/microblaze/ld.abilist index 265085edc8..aa0d71150a 100644 --- a/sysdeps/unix/sysv/linux/microblaze/ld.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __libc_stack_end D 0x4 GLIBC_2.18 __stack_chk_guard D 0x4 GLIBC_2.18 __tls_get_addr F diff --git a/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist index 76d989d468..bc5edf6352 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/microblaze/libanl.abilist b/sysdeps/unix/sysv/linux/microblaze/libanl.abilist index cb616b1c3e..67c7554803 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libanl.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 gai_cancel F GLIBC_2.18 gai_error F GLIBC_2.18 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index e4265fd74d..09277f5954 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 _Exit F GLIBC_2.18 _IO_2_1_stderr_ D 0x98 GLIBC_2.18 _IO_2_1_stdin_ D 0x98 @@ -2079,17 +2078,13 @@ GLIBC_2.18 xdrstdio_create F GLIBC_2.18 xencrypt F GLIBC_2.18 xprt_register F GLIBC_2.18 xprt_unregister F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2097,13 +2092,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist b/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist index 75fa78890a..4b37b33ee5 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 crypt F GLIBC_2.18 crypt_r F GLIBC_2.18 encrypt F diff --git a/sysdeps/unix/sysv/linux/microblaze/libdl.abilist b/sysdeps/unix/sysv/linux/microblaze/libdl.abilist index 7cad5061b0..46b5716dbe 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libdl.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 dladdr F GLIBC_2.18 dladdr1 F GLIBC_2.18 dlclose F diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index c45bc4162e..dab26bcb99 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 _LIB_VERSION D 0x4 GLIBC_2.18 __acos_finite F GLIBC_2.18 __acosf_finite F @@ -367,19 +366,16 @@ GLIBC_2.18 y1l F GLIBC_2.18 yn F GLIBC_2.18 ynf F GLIBC_2.18 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 canonicalize F @@ -428,7 +424,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -746,7 +741,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F diff --git a/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist b/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist index 959b74b90e..48a9e04eb8 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __free_fdresult F GLIBC_2.18 __nis_default_access F GLIBC_2.18 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist index 00d948b60a..6f80530292 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 _IO_flockfile F GLIBC_2.18 _IO_ftrylockfile F GLIBC_2.18 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist b/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist index 765bc12438..b04f0397c8 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __b64_ntop F GLIBC_2.18 __b64_pton F GLIBC_2.18 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/microblaze/librt.abilist b/sysdeps/unix/sysv/linux/microblaze/librt.abilist index 9f6ecb0770..fb85d8729e 100644 --- a/sysdeps/unix/sysv/linux/microblaze/librt.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __mq_open_2 F GLIBC_2.18 aio_cancel F GLIBC_2.18 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist b/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist index 6387ad13a8..511767701c 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 td_init F GLIBC_2.18 td_log F GLIBC_2.18 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/microblaze/libutil.abilist b/sysdeps/unix/sysv/linux/microblaze/libutil.abilist index af2c3048cc..0da0a40c22 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libutil.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 forkpty F GLIBC_2.18 login F GLIBC_2.18 login_tty F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 3a7e0b4c29..f562e20f23 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1312,7 +1310,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1338,7 +1335,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1346,22 +1342,18 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1370,7 +1362,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1381,21 +1372,17 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F GLIBC_2.18 __mips_fpu_getcw F GLIBC_2.18 __mips_fpu_setcw F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 getrlimit64 F GLIBC_2.19 setrlimit64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xa0 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0 @@ -1915,35 +1902,26 @@ GLIBC_2.2 xdr_uint32_t F GLIBC_2.2 xdr_uint64_t F GLIBC_2.2 xdr_uint8_t F GLIBC_2.2 xdr_unixcred F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1951,13 +1929,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1983,7 +1959,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2073,7 +2048,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2086,7 +2060,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x200 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2107,7 +2080,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x200 GLIBC_2.3.3 sys_siglist D 0x200 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2137,7 +2109,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2210,7 +2181,6 @@ GLIBC_2.4 renameat F GLIBC_2.4 symlinkat F GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2228,7 +2198,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2236,7 +2205,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2263,7 +2231,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2274,9 +2241,7 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F GLIBC_2.9 pipe2 F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist index 651b952524..55d48868e8 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist @@ -1,14 +1,9 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x4 GLIBC_2.2 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x4 -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist index 8c497b477e..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist @@ -1,3 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist index bcfbf9e199..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist @@ -1,6 +1,4 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F GLIBC_2.2.3 getaddrinfo_a F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist index c9d2e54530..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F @@ -6,4 +5,3 @@ GLIBC_2.0 encrypt_r F GLIBC_2.0 fcrypt F GLIBC_2.0 setkey F GLIBC_2.0 setkey_r F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist index 55f8a1e5e9..6d377d93a4 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist @@ -1,15 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 dlopen F GLIBC_2.2 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 0038994ced..4400071795 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -210,10 +208,8 @@ GLIBC_2.15 __y1_finite F GLIBC_2.15 __y1f_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __clog10 F GLIBC_2.2 __clog10f F GLIBC_2.2 __clog10l F @@ -369,19 +365,16 @@ GLIBC_2.2 tgammal F GLIBC_2.2 trunc F GLIBC_2.2 truncf F GLIBC_2.2 truncl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 canonicalize F @@ -430,7 +423,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -748,7 +740,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F @@ -761,6 +752,4 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist index 53b4608235..8675e27a8a 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __free_fdresult F GLIBC_2.2 __nis_default_access F GLIBC_2.2 __nis_default_group F @@ -121,4 +119,3 @@ GLIBC_2.2 writeColdStartFile F GLIBC_2.2 xdr_cback_data F GLIBC_2.2 xdr_obj_p F GLIBC_2.2 xdr_ypall F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist deleted file mode 100644 index db6b02789d..0000000000 --- a/sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist +++ /dev/null @@ -1 +0,0 @@ -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist index 280d99d974..2cb7741732 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,18 +118,14 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_allocate_rtsig F GLIBC_2.2 __libc_current_sigrtmax F GLIBC_2.2 __libc_current_sigrtmin F @@ -209,18 +204,14 @@ GLIBC_2.2 sem_timedwait F GLIBC_2.2 sem_trywait F GLIBC_2.2 sem_unlink F GLIBC_2.2 sem_wait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -238,13 +229,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F @@ -254,4 +243,3 @@ GLIBC_2.4 pthread_mutexattr_getrobust_np F GLIBC_2.4 pthread_mutexattr_setprioceiling F GLIBC_2.4 pthread_mutexattr_setprotocol F GLIBC_2.4 pthread_mutexattr_setrobust_np F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist index 1f89eb6cd9..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F @@ -98,4 +94,3 @@ GLIBC_2.9 ns_skiprr F GLIBC_2.9 ns_sprintrr F GLIBC_2.9 ns_sprintrrf F GLIBC_2.9 ns_subdomain F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist index 61f63e1524..84837c8a2e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 aio_cancel F GLIBC_2.2 aio_cancel64 F GLIBC_2.2 aio_error F @@ -28,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -39,9 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist index e47140b61c..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,10 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist index ce712a238c..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist @@ -1,8 +1,6 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F GLIBC_2.0 logout F GLIBC_2.0 logwtmp F GLIBC_2.0 openpty F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 5e805924fa..ceb7388829 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1312,7 +1310,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1338,7 +1335,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1346,22 +1342,18 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1370,7 +1362,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1381,19 +1372,15 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 getrlimit64 F GLIBC_2.19 setrlimit64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xa0 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0 @@ -1913,35 +1900,26 @@ GLIBC_2.2 xdr_uint32_t F GLIBC_2.2 xdr_uint64_t F GLIBC_2.2 xdr_uint8_t F GLIBC_2.2 xdr_unixcred F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1949,13 +1927,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1981,7 +1957,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2071,7 +2046,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2084,7 +2058,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x200 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2105,7 +2078,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x200 GLIBC_2.3.3 sys_siglist D 0x200 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2135,7 +2107,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2208,7 +2179,6 @@ GLIBC_2.4 renameat F GLIBC_2.4 symlinkat F GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2226,7 +2196,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2234,7 +2203,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2261,7 +2229,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2272,9 +2239,7 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F GLIBC_2.9 pipe2 F -_gp_disp _gp_disp A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist index b4c577e4a6..6d377d93a4 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 dlopen F GLIBC_2.2 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index 47044e6849..bfc16d517f 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -237,11 +235,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __clog10 F GLIBC_2.2 __clog10f F GLIBC_2.2 __clog10l F @@ -400,19 +396,16 @@ GLIBC_2.2 tgammal F GLIBC_2.2 trunc F GLIBC_2.2 truncf F GLIBC_2.2 truncl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 __iseqsigl F @@ -462,7 +455,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F @@ -988,7 +980,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F @@ -1015,4 +1006,3 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist index d5b6e6997d..8675e27a8a 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __free_fdresult F GLIBC_2.2 __nis_default_access F GLIBC_2.2 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist index ad55bdd0e2..2cb7741732 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,18 +118,14 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_allocate_rtsig F GLIBC_2.2 __libc_current_sigrtmax F GLIBC_2.2 __libc_current_sigrtmin F @@ -209,18 +204,14 @@ GLIBC_2.2 sem_timedwait F GLIBC_2.2 sem_trywait F GLIBC_2.2 sem_unlink F GLIBC_2.2 sem_wait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -238,13 +229,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist index ff77db947e..84837c8a2e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 aio_cancel F GLIBC_2.2 aio_cancel64 F GLIBC_2.2 aio_error F @@ -28,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -39,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist index bf55148c79..55d48868e8 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist @@ -1,13 +1,9 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x4 GLIBC_2.2 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x4 diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 1973fac36d..5765f487a2 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1312,7 +1310,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1338,7 +1335,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1346,22 +1342,18 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1370,7 +1362,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1381,19 +1372,15 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 getrlimit64 F GLIBC_2.19 setrlimit64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xa0 GLIBC_2.2 _IO_2_1_stdin_ D 0xa0 @@ -1911,35 +1898,26 @@ GLIBC_2.2 xdr_uint32_t F GLIBC_2.2 xdr_uint64_t F GLIBC_2.2 xdr_uint8_t F GLIBC_2.2 xdr_unixcred F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1947,13 +1925,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1989,7 +1965,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2079,7 +2054,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2092,7 +2066,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x200 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2113,7 +2086,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x200 GLIBC_2.3.3 sys_siglist D 0x200 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2143,7 +2115,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2216,7 +2187,6 @@ GLIBC_2.4 renameat F GLIBC_2.4 symlinkat F GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2234,7 +2204,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2242,7 +2211,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2269,7 +2237,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2280,7 +2247,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist index f7ba5fd730..44b345b7cf 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist @@ -1,13 +1,9 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x28 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x8 GLIBC_2.2 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x8 diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 5e18ab83b4..a84bb45a38 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1310,7 +1308,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1336,7 +1333,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1344,22 +1340,18 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1368,7 +1360,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1379,16 +1370,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xe0 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0 @@ -1906,35 +1894,26 @@ GLIBC_2.2 xdr_uint32_t F GLIBC_2.2 xdr_uint64_t F GLIBC_2.2 xdr_uint8_t F GLIBC_2.2 xdr_unixcred F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1942,13 +1921,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1984,7 +1961,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2072,7 +2048,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2085,7 +2060,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x400 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2107,7 +2081,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x400 GLIBC_2.3.3 sys_siglist D 0x400 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2137,7 +2110,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2210,7 +2182,6 @@ GLIBC_2.4 renameat F GLIBC_2.4 symlinkat F GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2228,7 +2199,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2236,7 +2206,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2263,7 +2232,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2274,7 +2242,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist index 2d92a35e81..06f995151c 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/nios2/ld.abilist b/sysdeps/unix/sysv/linux/nios2/ld.abilist index a127464b4b..110f1039fa 100644 --- a/sysdeps/unix/sysv/linux/nios2/ld.abilist +++ b/sysdeps/unix/sysv/linux/nios2/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 __libc_stack_end D 0x4 GLIBC_2.21 __stack_chk_guard D 0x4 GLIBC_2.21 __tls_get_addr F diff --git a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist index 5acf5e6d61..f0210af954 100644 --- a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/nios2/libanl.abilist b/sysdeps/unix/sysv/linux/nios2/libanl.abilist index 04286b8fa1..6ff9c2d94e 100644 --- a/sysdeps/unix/sysv/linux/nios2/libanl.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 gai_cancel F GLIBC_2.21 gai_error F GLIBC_2.21 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index cc5885ab9b..e43295986c 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 _Exit F GLIBC_2.21 _IO_2_1_stderr_ D 0x98 GLIBC_2.21 _IO_2_1_stdin_ D 0x98 @@ -2120,17 +2119,13 @@ GLIBC_2.21 xdrstdio_create F GLIBC_2.21 xencrypt F GLIBC_2.21 xprt_register F GLIBC_2.21 xprt_unregister F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2138,13 +2133,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist b/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist index dae6b522ac..78a9a23dbd 100644 --- a/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 crypt F GLIBC_2.21 crypt_r F GLIBC_2.21 encrypt F diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist index ae62e3f80e..79573c93dc 100644 --- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 dladdr F GLIBC_2.21 dladdr1 F GLIBC_2.21 dlclose F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index 64b40b6253..6b2d3b280d 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 _LIB_VERSION D 0x4 GLIBC_2.21 __acos_finite F GLIBC_2.21 __acosf_finite F @@ -367,19 +366,16 @@ GLIBC_2.21 y1l F GLIBC_2.21 yn F GLIBC_2.21 ynf F GLIBC_2.21 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 canonicalize F @@ -428,7 +424,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -746,7 +741,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F diff --git a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist b/sysdeps/unix/sysv/linux/nios2/libnsl.abilist index 40856aba99..9a3bbb310d 100644 --- a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 __free_fdresult F GLIBC_2.21 __nis_default_access F GLIBC_2.21 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist index a10bbdec87..3807106f39 100644 --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 _IO_flockfile F GLIBC_2.21 _IO_ftrylockfile F GLIBC_2.21 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist index b006fcafe7..2a2bec433f 100644 --- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 __b64_ntop F GLIBC_2.21 __b64_pton F GLIBC_2.21 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist index 51b1c5bc03..b4ae7a2dc2 100644 --- a/sysdeps/unix/sysv/linux/nios2/librt.abilist +++ b/sysdeps/unix/sysv/linux/nios2/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 __mq_open_2 F GLIBC_2.21 aio_cancel F GLIBC_2.21 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist b/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist index 96be90f65b..cb9e543f0e 100644 --- a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 td_init F GLIBC_2.21 td_log F GLIBC_2.21 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/nios2/libutil.abilist b/sysdeps/unix/sysv/linux/nios2/libutil.abilist index 0c21934dc0..19608bd74d 100644 --- a/sysdeps/unix/sysv/linux/nios2/libutil.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 forkpty F GLIBC_2.21 login F GLIBC_2.21 login_tty F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 676aa50c81..a5f2b23068 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1322,7 +1320,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 @@ -1623,7 +1620,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1653,7 +1649,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1681,11 +1676,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1711,7 +1704,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1719,26 +1711,22 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1747,7 +1735,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __mcount_internal F GLIBC_2.16 __poll_chk F @@ -1759,7 +1746,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ppc_get_timebase_freq F GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F @@ -1767,9 +1753,7 @@ GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1944,35 +1928,26 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1980,13 +1955,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -2012,7 +1985,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2106,7 +2078,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2119,7 +2090,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 getcontext F GLIBC_2.3.3 gnu_dev_major F @@ -2144,7 +2114,6 @@ GLIBC_2.3.3 setcontext F GLIBC_2.3.3 swapcontext F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2184,7 +2153,6 @@ GLIBC_2.3.4 siglongjmp F GLIBC_2.3.4 swapcontext F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2412,7 +2380,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2430,7 +2397,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2438,7 +2404,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2477,7 +2442,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2494,7 +2458,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index d39a1b335a..fc09e3253d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -312,7 +310,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -394,11 +391,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 feclearexcept F GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F @@ -409,19 +404,16 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __fe_dfl_mode D 0x8 GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F @@ -473,7 +465,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -791,7 +782,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F @@ -806,7 +796,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist index 100d133495..e8b0ea3a9b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist @@ -1,16 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_stack_end D 0x4 GLIBC_2.1 _dl_mcount F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 __tls_get_addr_opt F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __parse_hwcap_and_convert_at_platform F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist index 14c3a86b75..e51daee353 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,7 +118,6 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_allocate_rtsig F GLIBC_2.1 __libc_current_sigrtmax F GLIBC_2.1 __libc_current_sigrtmin F @@ -154,24 +152,18 @@ GLIBC_2.1 sem_init F GLIBC_2.1 sem_post F GLIBC_2.1 sem_trywait F GLIBC_2.1 sem_wait F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 sem_close F GLIBC_2.1.1 sem_open F GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __open64 F GLIBC_2.2 __pread64 F GLIBC_2.2 __pthread_rwlock_destroy F @@ -212,18 +204,14 @@ GLIBC_2.2 pthread_yield F GLIBC_2.2 pwrite F GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -239,7 +227,6 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 longjmp F GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F @@ -247,7 +234,6 @@ GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F GLIBC_2.3.4 siglongjmp F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F @@ -257,6 +243,5 @@ GLIBC_2.4 pthread_mutexattr_getrobust_np F GLIBC_2.4 pthread_mutexattr_setprioceiling F GLIBC_2.4 pthread_mutexattr_setprotocol F GLIBC_2.4 pthread_mutexattr_setrobust_np F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 pthread_attr_setstack F GLIBC_2.6 pthread_attr_setstacksize F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist index 15e4418863..595f1b712a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -40,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 2016c7c1e5..e4cbe36279 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1322,7 +1320,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 @@ -1623,7 +1620,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1653,7 +1649,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1681,11 +1676,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1711,7 +1704,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1719,26 +1711,22 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1747,7 +1735,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __mcount_internal F GLIBC_2.16 __poll_chk F @@ -1759,7 +1746,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ppc_get_timebase_freq F GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F @@ -1767,14 +1753,11 @@ GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 __atomic_feclearexcept F GLIBC_2.19 __atomic_feholdexcept F GLIBC_2.19 __atomic_feupdateenv F GLIBC_2.19 __flt_rounds F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1949,35 +1932,26 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1985,13 +1959,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -2017,7 +1989,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2111,7 +2082,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __adddf3 F GLIBC_2.3.2 __addsf3 F GLIBC_2.3.2 __divdf3 F @@ -2153,7 +2123,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 getcontext F GLIBC_2.3.3 gnu_dev_major F @@ -2178,7 +2147,6 @@ GLIBC_2.3.3 setcontext F GLIBC_2.3.3 swapcontext F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2218,7 +2186,6 @@ GLIBC_2.3.4 siglongjmp F GLIBC_2.3.4 swapcontext F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2458,7 +2425,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2476,7 +2442,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2484,7 +2449,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2523,7 +2487,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2540,7 +2503,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 1bbb215225..40562195df 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -311,7 +309,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -393,11 +390,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 feclearexcept F GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F @@ -408,19 +403,16 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __fe_dfl_mode D 0x8 GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F @@ -472,7 +464,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -790,7 +781,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F @@ -805,7 +795,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist index ef6159baa8..37c8f6684b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __libc_stack_end D 0x8 GLIBC_2.17 __tls_get_addr F GLIBC_2.17 _dl_mcount F @@ -7,7 +6,5 @@ GLIBC_2.17 calloc F GLIBC_2.17 free F GLIBC_2.17 malloc F GLIBC_2.17 realloc F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 __tls_get_addr_opt F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __parse_hwcap_and_convert_at_platform F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist index 2c3b74cc20..edfc9ca56f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist @@ -1,8 +1,5 @@ -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 __tls_get_addr_opt F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __parse_hwcap_and_convert_at_platform F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __libc_stack_end D 0x8 GLIBC_2.3 __tls_get_addr F GLIBC_2.3 _dl_mcount F @@ -11,4 +8,3 @@ GLIBC_2.3 calloc F GLIBC_2.3 free F GLIBC_2.3 malloc F GLIBC_2.3 realloc F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist index 5e54974368..0829ddef6d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist @@ -1,2 +1 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist index 40f6e08b75..fb7dfa4c1d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist index 21330fc8d5..9492cd5290 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 gai_cancel F GLIBC_2.17 gai_error F GLIBC_2.17 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist index 9036592d30..975593b41f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 gai_cancel F GLIBC_2.3 gai_error F GLIBC_2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 3d19e38dbd..9869feb56b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _Exit F GLIBC_2.17 _IO_2_1_stderr_ D 0xe0 GLIBC_2.17 _IO_2_1_stdin_ D 0xe0 @@ -2165,19 +2164,14 @@ GLIBC_2.17 xdrstdio_create F GLIBC_2.17 xencrypt F GLIBC_2.17 xprt_register F GLIBC_2.17 xprt_unregister F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2185,7 +2179,6 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2198,7 +2191,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index c57ab21b82..e526dc4627 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -25,33 +24,28 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x438 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x438 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -60,7 +54,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -71,7 +64,6 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __ppc_get_timebase_freq F GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F @@ -79,19 +71,14 @@ GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -99,13 +86,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -131,7 +116,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 GLIBC_2.3 _IO_2_1_stdin_ D 0xe0 @@ -1963,7 +1947,6 @@ GLIBC_2.3 xdrstdio_create F GLIBC_2.3 xencrypt F GLIBC_2.3 xprt_register F GLIBC_2.3 xprt_unregister F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -1976,7 +1959,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -1997,7 +1979,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x208 GLIBC_2.3.3 sys_siglist D 0x208 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2036,7 +2017,6 @@ GLIBC_2.3.4 siglongjmp F GLIBC_2.3.4 swapcontext F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2264,7 +2244,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2282,7 +2261,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2290,7 +2268,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2329,7 +2306,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2346,7 +2322,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist index 58944b3d83..4082747aa3 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 crypt F GLIBC_2.17 crypt_r F GLIBC_2.17 encrypt F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist index 52cf1ac766..069212877a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 crypt F GLIBC_2.3 crypt_r F GLIBC_2.3 encrypt F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist index 1b4b1f77ed..36340d5dd8 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 dladdr F GLIBC_2.17 dladdr1 F GLIBC_2.17 dlclose F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist index 764ddc1c19..5b472f45aa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist @@ -1,12 +1,9 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 dladdr F GLIBC_2.3 dlclose F GLIBC_2.3 dlerror F GLIBC_2.3 dlopen F GLIBC_2.3 dlsym F GLIBC_2.3 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist index 977021c3d5..511b839c94 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _LIB_VERSION D 0x4 GLIBC_2.17 __acos_finite F GLIBC_2.17 __acosf_finite F @@ -399,23 +398,19 @@ GLIBC_2.17 y1l F GLIBC_2.17 yn F GLIBC_2.17 ynf F GLIBC_2.17 ynl F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __fe_dfl_mode D 0x8 GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F @@ -467,7 +462,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __acosf128_finite F GLIBC_2.26 __acoshf128_finite F GLIBC_2.26 __asinf128_finite F @@ -605,7 +599,6 @@ GLIBC_2.26 ufromfpxf128 F GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -1027,7 +1020,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist index ae8d4e89e1..e14fc553fa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -80,23 +79,19 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __fe_dfl_mode D 0x8 GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F @@ -148,7 +143,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -466,7 +460,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F @@ -481,7 +474,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _LIB_VERSION D 0x4 GLIBC_2.3 __clog10 F GLIBC_2.3 __clog10f F @@ -797,7 +789,6 @@ GLIBC_2.3 y1l F GLIBC_2.3 yn F GLIBC_2.3 ynf F GLIBC_2.3 ynl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist index 63d47aef79..eae8dbe341 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __free_fdresult F GLIBC_2.17 __nis_default_access F GLIBC_2.17 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist index 23ef56053e..4318dc30ce 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __free_fdresult F GLIBC_2.3 __nis_default_access F GLIBC_2.3 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist index 0cf30ee02f..3fd58aea0d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 _IO_flockfile F GLIBC_2.17 _IO_ftrylockfile F GLIBC_2.17 _IO_funlockfile F @@ -221,6 +220,5 @@ GLIBC_2.17 vfork F GLIBC_2.17 wait F GLIBC_2.17 waitpid F GLIBC_2.17 write F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist index 464b91a61d..8705a42ef2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 _IO_flockfile F GLIBC_2.3 _IO_ftrylockfile F GLIBC_2.3 _IO_funlockfile F @@ -201,14 +197,12 @@ GLIBC_2.3 vfork F GLIBC_2.3 wait F GLIBC_2.3 waitpid F GLIBC_2.3 write F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -224,7 +218,6 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 longjmp F GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F @@ -232,7 +225,6 @@ GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F GLIBC_2.3.4 siglongjmp F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F @@ -242,6 +234,5 @@ GLIBC_2.4 pthread_mutexattr_getrobust_np F GLIBC_2.4 pthread_mutexattr_setprioceiling F GLIBC_2.4 pthread_mutexattr_setprotocol F GLIBC_2.4 pthread_mutexattr_setrobust_np F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 pthread_attr_setstack F GLIBC_2.6 pthread_attr_setstacksize F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist index cf278eedb3..f7fdd26bd1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __b64_ntop F GLIBC_2.17 __b64_pton F GLIBC_2.17 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist index 95def8eb0f..15f30deb34 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __b64_ntop F GLIBC_2.3 __b64_pton F GLIBC_2.3 __dn_comp F @@ -63,9 +62,7 @@ GLIBC_2.3 res_gethostbyname F GLIBC_2.3 res_gethostbyname2 F GLIBC_2.3 res_send_setqhook F GLIBC_2.3 res_send_setrhook F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist index 523d22249a..5e81c82a25 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 __mq_open_2 F GLIBC_2.17 aio_cancel F GLIBC_2.17 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist index e5b41488a2..e76b7eb495 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 aio_cancel F GLIBC_2.3 aio_cancel64 F GLIBC_2.3 aio_error F @@ -28,13 +27,11 @@ GLIBC_2.3 timer_delete F GLIBC_2.3 timer_getoverrun F GLIBC_2.3 timer_gettime F GLIBC_2.3 timer_settime F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 timer_create F GLIBC_2.3.3 timer_delete F GLIBC_2.3.3 timer_getoverrun F GLIBC_2.3.3 timer_gettime F GLIBC_2.3.3 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -45,8 +42,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist index 3e382bf79d..3b84229ebc 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 td_init F GLIBC_2.17 td_log F GLIBC_2.17 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist index cd466b942b..cffc70d2fa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_init F GLIBC_2.3 td_log F GLIBC_2.3 td_symbol_list F @@ -38,5 +37,4 @@ GLIBC_2.3 td_thr_sigsetmask F GLIBC_2.3 td_thr_tls_get_addr F GLIBC_2.3 td_thr_tsd F GLIBC_2.3 td_thr_validate F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist index 9c075bc0bd..99889de22e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist @@ -1,4 +1,3 @@ -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 forkpty F GLIBC_2.17 login F GLIBC_2.17 login_tty F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist index 812701762c..9cf1da7aa4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 forkpty F GLIBC_2.3 login F GLIBC_2.3 login_tty F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist index c9ce04c8db..b411871d06 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 __libc_stack_end D 0x8 GLIBC_2.27 __stack_chk_guard D 0x8 GLIBC_2.27 __tls_get_addr F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist index 78f0bef083..18968d3c01 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist index dea8bd05fe..711fc87c2a 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 gai_cancel F GLIBC_2.27 gai_error F GLIBC_2.27 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 8ab44ec41f..e6319eef8d 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 _Exit F GLIBC_2.27 _IO_2_1_stderr_ D 0xe0 GLIBC_2.27 _IO_2_1_stdin_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist index 2fe2263b9f..9484dca79e 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 crypt F GLIBC_2.27 crypt_r F GLIBC_2.27 encrypt F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist index ea9b1e3519..16adcae553 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 dladdr F GLIBC_2.27 dladdr1 F GLIBC_2.27 dlclose F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index d6a2bad753..fa672de41f 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 __acos_finite F GLIBC_2.27 __acosf_finite F GLIBC_2.27 __acosh_finite F @@ -968,7 +967,6 @@ GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F GLIBC_2.27 ynl F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist index b7a0f82a9e..0767472d06 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 __free_fdresult F GLIBC_2.27 __nis_default_access F GLIBC_2.27 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist index fcc14ed7a3..0217e5d0cd 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 _IO_flockfile F GLIBC_2.27 _IO_ftrylockfile F GLIBC_2.27 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist index 8896541674..eb9c1cb747 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 __b64_ntop F GLIBC_2.27 __b64_pton F GLIBC_2.27 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist index 8442d01f27..bfd262ecc5 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 __mq_open_2 F GLIBC_2.27 aio_cancel F GLIBC_2.27 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist index 3d34d7834f..4122e563a1 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 td_init F GLIBC_2.27 td_log F GLIBC_2.27 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist index 612e168897..cbfec8d46e 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 forkpty F GLIBC_2.27 login F GLIBC_2.27 login_tty F diff --git a/sysdeps/unix/sysv/linux/s390/libanl.abilist b/sysdeps/unix/sysv/linux/s390/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/s390/libanl.abilist +++ b/sysdeps/unix/sysv/linux/s390/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist index c16b2c1344..0576c9575e 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist @@ -1,12 +1,8 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_stack_end D 0x4 GLIBC_2.1 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_offset F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 25903720e3..41cdda0c2e 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1313,7 +1311,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 @@ -1615,7 +1612,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1645,7 +1641,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1673,11 +1668,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1703,7 +1696,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1711,26 +1703,22 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1739,7 +1727,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -1750,16 +1737,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 __longjmp_chk F GLIBC_2.19 __sigsetjmp F GLIBC_2.19 _longjmp F @@ -1768,7 +1752,6 @@ GLIBC_2.19 getcontext F GLIBC_2.19 longjmp F GLIBC_2.19 setjmp F GLIBC_2.19 siglongjmp F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1944,35 +1927,26 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1980,13 +1954,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -2022,7 +1994,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2116,7 +2087,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2129,7 +2099,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2150,7 +2119,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2180,7 +2148,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2408,7 +2375,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2426,7 +2392,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2434,7 +2399,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2473,7 +2437,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2490,7 +2453,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 getutent F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 0f94d18079..f8c32bda47 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -308,7 +306,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -390,27 +387,22 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F GLIBC_2.2 fegetexcept F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 __iseqsigl F @@ -460,7 +452,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F @@ -986,7 +977,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F @@ -1015,7 +1005,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist index 3c5e11aafe..5fad7fd12d 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,7 +118,6 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_allocate_rtsig F GLIBC_2.1 __libc_current_sigrtmax F GLIBC_2.1 __libc_current_sigrtmin F @@ -154,27 +152,20 @@ GLIBC_2.1 sem_init F GLIBC_2.1 sem_post F GLIBC_2.1 sem_trywait F GLIBC_2.1 sem_wait F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 sem_close F GLIBC_2.1.1 sem_open F GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 longjmp F GLIBC_2.19 siglongjmp F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __open64 F GLIBC_2.2 __pread64 F GLIBC_2.2 __pthread_rwlock_destroy F @@ -215,18 +206,14 @@ GLIBC_2.2 pthread_yield F GLIBC_2.2 pwrite F GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -242,13 +229,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist index 15e4418863..595f1b712a 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -40,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist index 8a99773ccf..bf735f7c00 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libutil.abilist @@ -1,9 +1,7 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F GLIBC_2.0 logout F GLIBC_2.0 logwtmp F GLIBC_2.0 openpty F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 login F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist index 5e604f5376..1fbb890d1d 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x8 GLIBC_2.2 _dl_mcount F GLIBC_2.2 _r_debug D 0x28 @@ -6,6 +5,4 @@ GLIBC_2.2 calloc F GLIBC_2.2 free F GLIBC_2.2 malloc F GLIBC_2.2 realloc F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_offset F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist index 21343df781..0e4d814909 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 5d6800c236..8a756cf287 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -30,33 +28,28 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x438 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x438 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -65,7 +58,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -76,16 +68,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 __longjmp_chk F GLIBC_2.19 __sigsetjmp F GLIBC_2.19 _longjmp F @@ -94,7 +83,6 @@ GLIBC_2.19 getcontext F GLIBC_2.19 longjmp F GLIBC_2.19 setjmp F GLIBC_2.19 siglongjmp F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xe0 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0 @@ -1845,35 +1833,26 @@ GLIBC_2.2 xdrstdio_create F GLIBC_2.2 xencrypt F GLIBC_2.2 xprt_register F GLIBC_2.2 xprt_unregister F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1881,13 +1860,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1923,7 +1900,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2015,7 +1991,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2028,7 +2003,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2049,7 +2023,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x208 GLIBC_2.3.3 sys_siglist D 0x208 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2079,7 +2052,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2307,7 +2279,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2325,7 +2296,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2333,7 +2303,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2372,7 +2341,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2389,7 +2357,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist index f2854f3a0a..f7f92ec540 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 crypt F GLIBC_2.2 crypt_r F GLIBC_2.2 encrypt F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist index 98b031bc6d..8110e39ce4 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist @@ -1,12 +1,9 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 dladdr F GLIBC_2.2 dlclose F GLIBC_2.2 dlerror F GLIBC_2.2 dlopen F GLIBC_2.2 dlsym F GLIBC_2.2 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 87168e2b09..0b88ee7135 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -80,11 +79,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _LIB_VERSION D 0x4 GLIBC_2.2 __clog10 F GLIBC_2.2 __clog10f F @@ -396,19 +393,16 @@ GLIBC_2.2 y1l F GLIBC_2.2 yn F GLIBC_2.2 ynf F GLIBC_2.2 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 __iseqsigl F @@ -458,7 +452,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F @@ -984,7 +977,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F @@ -1013,7 +1005,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist index ff0199f313..5dd8e13f5f 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __free_fdresult F GLIBC_2.2 __nis_default_access F GLIBC_2.2 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist index 83a1fcd239..a0cc88e528 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist @@ -1,18 +1,13 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.19 GLIBC_2.19 A GLIBC_2.19 longjmp F GLIBC_2.19 siglongjmp F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_flockfile F GLIBC_2.2 _IO_ftrylockfile F GLIBC_2.2 _IO_funlockfile F @@ -203,18 +198,14 @@ GLIBC_2.2 vfork F GLIBC_2.2 wait F GLIBC_2.2 waitpid F GLIBC_2.2 write F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -230,13 +221,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist index 3cb1405aed..dcc4de5f55 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __b64_ntop F GLIBC_2.2 __b64_pton F GLIBC_2.2 __dn_comp F @@ -63,9 +62,7 @@ GLIBC_2.2 res_gethostbyname F GLIBC_2.2 res_gethostbyname2 F GLIBC_2.2 res_send_setqhook F GLIBC_2.2 res_send_setrhook F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist index 41c442bf60..41be3bb84b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 aio_cancel F GLIBC_2.2 aio_cancel64 F GLIBC_2.2 aio_error F @@ -28,13 +27,11 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 timer_create F GLIBC_2.3.3 timer_delete F GLIBC_2.3.3 timer_getoverrun F GLIBC_2.3.3 timer_gettime F GLIBC_2.3.3 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -45,8 +42,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist index 228bbc9de8..0956f0c3f9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 td_init F GLIBC_2.2 td_log F GLIBC_2.2 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.2 td_thr_setxregs F GLIBC_2.2 td_thr_sigsetmask F GLIBC_2.2 td_thr_tsd F GLIBC_2.2 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist index cff37bb42e..14bd135ea8 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 forkpty F GLIBC_2.2 login F GLIBC_2.2 login_tty F diff --git a/sysdeps/unix/sysv/linux/sh/ld.abilist b/sysdeps/unix/sysv/linux/sh/ld.abilist index fc1c60ea17..0387614d8f 100644 --- a/sysdeps/unix/sysv/linux/sh/ld.abilist +++ b/sysdeps/unix/sysv/linux/sh/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x4 GLIBC_2.2 _dl_mcount F GLIBC_2.2 _r_debug D 0x14 @@ -6,7 +5,5 @@ GLIBC_2.2 calloc F GLIBC_2.2 free F GLIBC_2.2 malloc F GLIBC_2.2 realloc F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __stack_chk_guard D 0x4 diff --git a/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist index 21343df781..0e4d814909 100644 --- a/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/sh/libanl.abilist b/sysdeps/unix/sysv/linux/sh/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/sh/libanl.abilist +++ b/sysdeps/unix/sysv/linux/sh/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index c04872ca7f..999bddd1db 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -29,7 +27,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -37,25 +34,21 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -64,7 +57,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -76,16 +68,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0x98 GLIBC_2.2 _IO_2_1_stdin_ D 0x98 @@ -1830,35 +1819,26 @@ GLIBC_2.2 xdrstdio_create F GLIBC_2.2 xencrypt F GLIBC_2.2 xprt_register F GLIBC_2.2 xprt_unregister F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1866,13 +1846,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1898,7 +1876,6 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -1992,7 +1969,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2005,7 +1981,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2026,7 +2001,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2056,7 +2030,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2133,7 +2106,6 @@ GLIBC_2.4 sys_errlist D 0x210 GLIBC_2.4 sys_nerr D 0x4 GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2151,7 +2123,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2159,7 +2130,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2186,7 +2156,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2197,7 +2166,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/sh/libcrypt.abilist b/sysdeps/unix/sysv/linux/sh/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/sh/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/sh/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/sh/libdl.abilist b/sysdeps/unix/sysv/linux/sh/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/sh/libdl.abilist +++ b/sysdeps/unix/sysv/linux/sh/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index d1de78130b..5f2f34ba7c 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -53,10 +52,8 @@ GLIBC_2.15 __y1_finite F GLIBC_2.15 __y1f_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _LIB_VERSION D 0x4 GLIBC_2.2 __clog10 F GLIBC_2.2 __clog10f F @@ -368,19 +365,16 @@ GLIBC_2.2 y1l F GLIBC_2.2 yn F GLIBC_2.2 ynf F GLIBC_2.2 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 canonicalize F @@ -429,7 +423,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -747,7 +740,6 @@ GLIBC_2.27 y1f64 F GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf32x F @@ -760,5 +752,4 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sh/libnsl.abilist b/sysdeps/unix/sysv/linux/sh/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/sh/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/sh/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/sh/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/libpthread.abilist index a73aa43c55..4d90640ea2 100644 --- a/sysdeps/unix/sysv/linux/sh/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/sh/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_flockfile F GLIBC_2.2 _IO_ftrylockfile F GLIBC_2.2 _IO_funlockfile F @@ -200,18 +196,14 @@ GLIBC_2.2 vfork F GLIBC_2.2 wait F GLIBC_2.2 waitpid F GLIBC_2.2 write F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -227,13 +219,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/sh/libresolv.abilist b/sysdeps/unix/sysv/linux/sh/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/sh/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/sh/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/sh/librt.abilist b/sysdeps/unix/sysv/linux/sh/librt.abilist index 15e4418863..595f1b712a 100644 --- a/sysdeps/unix/sysv/linux/sh/librt.abilist +++ b/sysdeps/unix/sysv/linux/sh/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,7 +27,6 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -40,8 +37,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/sh/libthread_db.abilist b/sysdeps/unix/sysv/linux/sh/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/sh/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/sh/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/sh/libutil.abilist b/sysdeps/unix/sysv/linux/sh/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/sh/libutil.abilist +++ b/sysdeps/unix/sysv/linux/sh/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist index fb4bcb016d..fd0b33f86d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist @@ -1,12 +1,8 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 calloc F GLIBC_2.0 free F GLIBC_2.0 malloc F GLIBC_2.0 realloc F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_stack_end D 0x4 GLIBC_2.1 _dl_mcount F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist index 4a56bb68a3..54395f3c8d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 85cbe308d6..7c4296fc10 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1,4 +1,3 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F @@ -9,7 +8,6 @@ GLIBC_2.0 .rem F GLIBC_2.0 .udiv F GLIBC_2.0 .umul F GLIBC_2.0 .urem F -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_adjust_column F GLIBC_2.0 _IO_default_doallocate F GLIBC_2.0 _IO_default_finish F @@ -1316,7 +1314,6 @@ GLIBC_2.0 xdrstdio_create F GLIBC_2.0 xencrypt F GLIBC_2.0 xprt_register F GLIBC_2.0 xprt_unregister F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 @@ -1616,7 +1613,6 @@ GLIBC_2.1 xdr_uint16_t F GLIBC_2.1 xdr_uint32_t F GLIBC_2.1 xdr_uint8_t F GLIBC_2.1 xdr_unixcred F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 _Exit F GLIBC_2.1.1 __mempcpy_small F GLIBC_2.1.1 __stpcpy_small F @@ -1646,7 +1642,6 @@ GLIBC_2.1.1 xdr_longlong_t F GLIBC_2.1.1 xdr_u_hyper F GLIBC_2.1.1 xdr_u_longlong_t F GLIBC_2.1.1 xdr_uint64_t F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F GLIBC_2.1.2 getaliasbyname_r F GLIBC_2.1.2 getaliasent_r F @@ -1674,11 +1669,9 @@ GLIBC_2.1.2 getservbyport_r F GLIBC_2.1.2 getservent_r F GLIBC_2.1.2 getspent_r F GLIBC_2.1.2 getspnam_r F -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 __cxa_atexit F GLIBC_2.1.3 __cxa_finalize F GLIBC_2.1.3 __sigsuspend F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -1704,7 +1697,6 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 fallocate64 F @@ -1712,26 +1704,22 @@ GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x21c GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x21c GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -1740,7 +1728,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __getshmlba F GLIBC_2.16 __poll_chk F @@ -1756,16 +1743,13 @@ GLIBC_2.16 mbrtoc32 F GLIBC_2.16 sys_errlist D 0x220 GLIBC_2.16 sys_nerr D 0x4 GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_adjust_wcolumn F GLIBC_2.2 _IO_fgetpos F GLIBC_2.2 _IO_fgetpos64 F @@ -1937,35 +1921,26 @@ GLIBC_2.2 wcsftime F GLIBC_2.2 wmempcpy F GLIBC_2.2 wprintf F GLIBC_2.2 wscanf F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1973,13 +1948,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -2015,7 +1988,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2109,7 +2081,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2122,7 +2093,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x104 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2143,7 +2113,6 @@ GLIBC_2.3.3 sched_setaffinity F GLIBC_2.3.3 semtimedop F GLIBC_2.3.3 sys_sigabbrev D 0x104 GLIBC_2.3.3 sys_siglist D 0x104 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2173,7 +2142,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 _IO_fprintf F GLIBC_2.4 _IO_printf F GLIBC_2.4 _IO_sprintf F @@ -2427,7 +2395,6 @@ GLIBC_2.4 wcstold F GLIBC_2.4 wcstold_l F GLIBC_2.4 wprintf F GLIBC_2.4 wscanf F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2445,7 +2412,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2453,7 +2419,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2492,7 +2457,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __nldbl___asprintf_chk F @@ -2509,7 +2473,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 6c526a32e4..f31e748e05 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _LIB_VERSION D 0x4 GLIBC_2.0 acos F GLIBC_2.0 acosf F @@ -155,7 +154,6 @@ GLIBC_2.0 y1l F GLIBC_2.0 yn F GLIBC_2.0 ynf F GLIBC_2.0 ynl F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __clog10 F GLIBC_2.1 __clog10f F GLIBC_2.1 __clog10l F @@ -308,7 +306,6 @@ GLIBC_2.1 tgammal F GLIBC_2.1 trunc F GLIBC_2.1 truncf F GLIBC_2.1 truncl F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -389,11 +386,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 feclearexcept F GLIBC_2.2 fedisableexcept F GLIBC_2.2 feenableexcept F @@ -404,20 +399,17 @@ GLIBC_2.2 feraiseexcept F GLIBC_2.2 fesetenv F GLIBC_2.2 fesetexceptflag F GLIBC_2.2 feupdateenv F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 __sqrtl_finite F GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 __iseqsigl F @@ -467,7 +459,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F @@ -993,7 +984,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 __nldbl_daddl F GLIBC_2.28 __nldbl_dsubl F GLIBC_2.28 daddl F @@ -1022,7 +1012,6 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist index 7e121d45f8..858fc066ca 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 _IO_flockfile F GLIBC_2.0 _IO_ftrylockfile F GLIBC_2.0 _IO_funlockfile F @@ -119,7 +118,6 @@ GLIBC_2.0 vfork F GLIBC_2.0 wait F GLIBC_2.0 waitpid F GLIBC_2.0 write F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __libc_allocate_rtsig F GLIBC_2.1 __libc_current_sigrtmax F GLIBC_2.1 __libc_current_sigrtmin F @@ -154,24 +152,18 @@ GLIBC_2.1 sem_init F GLIBC_2.1 sem_post F GLIBC_2.1 sem_trywait F GLIBC_2.1 sem_wait F -GLIBC_2.1.1 GLIBC_2.1.1 A GLIBC_2.1.1 sem_close F GLIBC_2.1.1 sem_open F GLIBC_2.1.1 sem_unlink F -GLIBC_2.1.2 GLIBC_2.1.2 A GLIBC_2.1.2 __vfork F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __open64 F GLIBC_2.2 __pread64 F GLIBC_2.2 __pthread_rwlock_destroy F @@ -212,18 +204,14 @@ GLIBC_2.2 pthread_yield F GLIBC_2.2 pwrite F GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -241,13 +229,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist index 4d50e7c8c6..157a33ce35 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist index 07056199bc..cb874f4147 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,10 +27,8 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 aio_cancel F GLIBC_2.3 aio_cancel64 F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -43,8 +39,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist index 9b45d5e90c..82042472c3 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __libc_stack_end D 0x8 GLIBC_2.2 _dl_mcount F GLIBC_2.2 _r_debug D 0x28 @@ -6,6 +5,4 @@ GLIBC_2.2 calloc F GLIBC_2.2 free F GLIBC_2.2 malloc F GLIBC_2.2 realloc F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist index 21343df781..0e4d814909 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist index edabfb436e..d9a5ed015d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 gai_cancel F GLIBC_2.2.3 gai_error F GLIBC_2.2.3 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index f7a1ab8edb..dafe9d74b7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1,9 +1,7 @@ -GCC_3.0 GCC_3.0 A GCC_3.0 _Unwind_Find_FDE F GCC_3.0 __deregister_frame_info_bases F GCC_3.0 __register_frame_info_bases F GCC_3.0 __register_frame_info_table_bases F -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -30,33 +28,28 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x438 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x438 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 name_to_handle_at F GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -65,7 +58,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __getshmlba F GLIBC_2.16 __poll_chk F @@ -81,16 +73,13 @@ GLIBC_2.16 mbrtoc32 F GLIBC_2.16 sys_errlist D 0x440 GLIBC_2.16 sys_nerr D 0x4 GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _Exit F GLIBC_2.2 _IO_2_1_stderr_ D 0xe0 GLIBC_2.2 _IO_2_1_stdin_ D 0xe0 @@ -1873,36 +1862,27 @@ GLIBC_2.2 xdrstdio_create F GLIBC_2.2 xencrypt F GLIBC_2.2 xprt_register F GLIBC_2.2 xprt_unregister F -GLIBC_2.2.1 GLIBC_2.2.1 A GLIBC_2.2.1 pivot_root F GLIBC_2.2.1 posix_openpt F -GLIBC_2.2.2 GLIBC_2.2.2 A GLIBC_2.2.2 __nss_hostname_digits_dots F GLIBC_2.2.2 wordexp F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 __rpc_thread_createerr F GLIBC_2.2.3 __rpc_thread_svc_fdset F GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F GLIBC_2.2.3 __rpc_thread_svc_pollfd F GLIBC_2.2.3 fnmatch F GLIBC_2.2.3 sprofil F -GLIBC_2.2.4 GLIBC_2.2.4 A GLIBC_2.2.4 dl_iterate_phdr F GLIBC_2.2.4 getgrouplist F GLIBC_2.2.4 sockatmark F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1910,13 +1890,11 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 preadv2 F GLIBC_2.26 preadv64v2 F GLIBC_2.26 pwritev2 F GLIBC_2.26 pwritev64v2 F GLIBC_2.26 reallocarray F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1952,7 +1930,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -2044,7 +2021,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2057,7 +2033,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2078,7 +2053,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x208 GLIBC_2.3.3 sys_siglist D 0x208 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2108,7 +2082,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2185,7 +2158,6 @@ GLIBC_2.4 sys_errlist D 0x430 GLIBC_2.4 sys_nerr D 0x4 GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2203,7 +2175,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2211,7 +2182,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2238,7 +2208,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2249,7 +2218,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist index 4db2639336..cd6ba95280 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 crypt F GLIBC_2.0 crypt_r F GLIBC_2.0 encrypt F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist index 5536f6e0a9..7826fde951 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist @@ -1,14 +1,10 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 dladdr F GLIBC_2.0 dlclose F GLIBC_2.0 dlerror F GLIBC_2.0 dlopen F GLIBC_2.0 dlsym F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 dlopen F GLIBC_2.1 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 18f6551766..a3585ce70f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -80,11 +79,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _LIB_VERSION D 0x4 GLIBC_2.2 __clog10 F GLIBC_2.2 __clog10f F @@ -399,19 +396,16 @@ GLIBC_2.2 y1l F GLIBC_2.2 yn F GLIBC_2.2 ynf F GLIBC_2.2 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F GLIBC_2.25 __iseqsigl F @@ -461,7 +455,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf128 F GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F @@ -987,7 +980,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F @@ -1014,4 +1006,3 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist index a23db2aeaf..add3d66a7a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __yp_check F GLIBC_2.0 xdr_domainname F GLIBC_2.0 xdr_keydat F @@ -42,7 +41,6 @@ GLIBC_2.0 yp_update F GLIBC_2.0 ypbinderr_string F GLIBC_2.0 yperr_string F GLIBC_2.0 ypprot_err F -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 __free_fdresult F GLIBC_2.1 __nis_default_access F GLIBC_2.1 __nis_default_group F @@ -120,5 +118,4 @@ GLIBC_2.1 readColdStartFile F GLIBC_2.1 writeColdStartFile F GLIBC_2.1 xdr_cback_data F GLIBC_2.1 xdr_obj_p F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 xdr_ypall F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist index d4c8dedd6c..bac572c7fa 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 _IO_flockfile F GLIBC_2.2 _IO_ftrylockfile F GLIBC_2.2 _IO_funlockfile F @@ -200,18 +196,14 @@ GLIBC_2.2 vfork F GLIBC_2.2 wait F GLIBC_2.2 waitpid F GLIBC_2.2 write F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 pthread_getattr_np F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -229,13 +221,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist index 2d92a35e81..06f995151c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 __b64_ntop F GLIBC_2.0 __b64_pton F GLIBC_2.0 __dn_comp F @@ -57,7 +56,6 @@ GLIBC_2.0 res_querydomain F GLIBC_2.0 res_search F GLIBC_2.0 res_send_setqhook F GLIBC_2.0 res_send_setrhook F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 __dn_expand F GLIBC_2.2 __res_hostalias F GLIBC_2.2 __res_mkquery F @@ -69,9 +67,7 @@ GLIBC_2.2 __res_nsend F GLIBC_2.2 __res_query F GLIBC_2.2 __res_querydomain F GLIBC_2.2 __res_search F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist index 8699f6ccc4..d7a049cf60 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1 GLIBC_2.1 A GLIBC_2.1 aio_cancel F GLIBC_2.1 aio_cancel64 F GLIBC_2.1 aio_error F @@ -16,7 +15,6 @@ GLIBC_2.1 aio_write F GLIBC_2.1 aio_write64 F GLIBC_2.1 lio_listio F GLIBC_2.1 lio_listio64 F -GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 clock_getcpuclockid F GLIBC_2.2 clock_getres F GLIBC_2.2 clock_gettime F @@ -29,16 +27,13 @@ GLIBC_2.2 timer_delete F GLIBC_2.2 timer_getoverrun F GLIBC_2.2 timer_gettime F GLIBC_2.2 timer_settime F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 aio_cancel F GLIBC_2.3 aio_cancel64 F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 timer_create F GLIBC_2.3.3 timer_delete F GLIBC_2.3.3 timer_getoverrun F GLIBC_2.3.3 timer_gettime F GLIBC_2.3.3 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -49,8 +44,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist index a8a8c2c68d..2db0992737 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.1.3 GLIBC_2.1.3 A GLIBC_2.1.3 td_init F GLIBC_2.1.3 td_log F GLIBC_2.1.3 td_ta_clear_event F @@ -36,9 +35,6 @@ GLIBC_2.1.3 td_thr_setxregs F GLIBC_2.1.3 td_thr_sigsetmask F GLIBC_2.1.3 td_thr_tsd F GLIBC_2.1.3 td_thr_validate F -GLIBC_2.2.3 GLIBC_2.2.3 A GLIBC_2.2.3 td_symbol_list F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist index 89c67755c4..aa2d35b323 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 forkpty F GLIBC_2.0 login F GLIBC_2.0 login_tty F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist b/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist index 07cab4bd7a..0dc9430611 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 __libc_stack_end D 0x8 GLIBC_2.2.5 _dl_mcount F GLIBC_2.2.5 _r_debug D 0x28 @@ -6,6 +5,4 @@ GLIBC_2.2.5 calloc F GLIBC_2.2.5 free F GLIBC_2.2.5 malloc F GLIBC_2.2.5 realloc F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __tls_get_addr F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist index 907c72986f..f1d93631d0 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist index a104f7562a..8d025f86b9 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 gai_cancel F GLIBC_2.2.5 gai_error F GLIBC_2.2.5 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 2a3cc40674..f72d494920 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.10 GLIBC_2.10 A GLIBC_2.10 __cxa_at_quick_exit F GLIBC_2.10 __posix_getopt F GLIBC_2.10 accept4 F @@ -25,27 +24,23 @@ GLIBC_2.10 register_printf_type F GLIBC_2.10 setsgent F GLIBC_2.10 sgetsgent F GLIBC_2.10 sgetsgent_r F -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 __longjmp_chk F GLIBC_2.11 execvpe F GLIBC_2.11 mkostemps F GLIBC_2.11 mkostemps64 F GLIBC_2.11 mkstemps F GLIBC_2.11 mkstemps64 F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 _sys_errlist D 0x438 GLIBC_2.12 _sys_nerr D 0x4 GLIBC_2.12 ntp_gettimex F GLIBC_2.12 recvmmsg F GLIBC_2.12 sys_errlist D 0x438 GLIBC_2.12 sys_nerr D 0x4 -GLIBC_2.13 GLIBC_2.13 A GLIBC_2.13 __fentry__ F GLIBC_2.13 fanotify_init F GLIBC_2.13 fanotify_mark F GLIBC_2.13 prlimit F GLIBC_2.13 prlimit64 F -GLIBC_2.14 GLIBC_2.14 A GLIBC_2.14 clock_adjtime F GLIBC_2.14 memcpy F GLIBC_2.14 name_to_handle_at F @@ -53,7 +48,6 @@ GLIBC_2.14 open_by_handle_at F GLIBC_2.14 sendmmsg F GLIBC_2.14 setns F GLIBC_2.14 syncfs F -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __fdelt_chk F GLIBC_2.15 __fdelt_warn F GLIBC_2.15 posix_spawn F @@ -62,7 +56,6 @@ GLIBC_2.15 process_vm_readv F GLIBC_2.15 process_vm_writev F GLIBC_2.15 scandirat F GLIBC_2.15 scandirat64 F -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __getauxval F GLIBC_2.16 __poll_chk F GLIBC_2.16 __ppoll_chk F @@ -73,16 +66,13 @@ GLIBC_2.16 getauxval F GLIBC_2.16 mbrtoc16 F GLIBC_2.16 mbrtoc32 F GLIBC_2.16 timespec_get F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 _Exit F GLIBC_2.2.5 _IO_2_1_stderr_ D 0xe0 GLIBC_2.2.5 _IO_2_1_stdin_ D 0xe0 @@ -1841,19 +1831,14 @@ GLIBC_2.2.5 xdrstdio_create F GLIBC_2.2.5 xencrypt F GLIBC_2.2.5 xprt_register F GLIBC_2.2.5 xprt_unregister F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -1861,7 +1846,6 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -1874,7 +1858,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F @@ -1905,7 +1888,6 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F @@ -1997,7 +1979,6 @@ GLIBC_2.3 wcstoull_l F GLIBC_2.3 wcsxfrm_l F GLIBC_2.3 wctrans_l F GLIBC_2.3 wctype_l F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __register_atfork F GLIBC_2.3.2 epoll_create F GLIBC_2.3.2 epoll_ctl F @@ -2010,7 +1991,6 @@ GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F GLIBC_2.3.2 strptime_l F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 _sys_siglist D 0x208 GLIBC_2.3.3 gnu_dev_major F GLIBC_2.3.3 gnu_dev_makedev F @@ -2031,7 +2011,6 @@ GLIBC_2.3.3 strtoll_l F GLIBC_2.3.3 strtoull_l F GLIBC_2.3.3 sys_sigabbrev D 0x208 GLIBC_2.3.3 sys_siglist D 0x208 -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 __chk_fail F GLIBC_2.3.4 __fprintf_chk F GLIBC_2.3.4 __gets_chk F @@ -2061,7 +2040,6 @@ GLIBC_2.3.4 setipv4sourcefilter F GLIBC_2.3.4 setsourcefilter F GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 __confstr_chk F GLIBC_2.4 __fgets_chk F GLIBC_2.4 __fgets_unlocked_chk F @@ -2138,7 +2116,6 @@ GLIBC_2.4 sys_errlist D 0x420 GLIBC_2.4 sys_nerr D 0x4 GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F -GLIBC_2.5 GLIBC_2.5 A GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F @@ -2156,7 +2133,6 @@ GLIBC_2.5 inet6_rth_space F GLIBC_2.5 splice F GLIBC_2.5 tee F GLIBC_2.5 vmsplice F -GLIBC_2.6 GLIBC_2.6 A GLIBC_2.6 __sched_cpucount F GLIBC_2.6 epoll_pwait F GLIBC_2.6 futimens F @@ -2164,7 +2140,6 @@ GLIBC_2.6 sched_getcpu F GLIBC_2.6 strerror_l F GLIBC_2.6 sync_file_range F GLIBC_2.6 utimensat F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __fread_chk F GLIBC_2.7 __fread_unlocked_chk F GLIBC_2.7 __isoc99_fscanf F @@ -2191,7 +2166,6 @@ GLIBC_2.7 eventfd_write F GLIBC_2.7 mkostemp F GLIBC_2.7 mkostemp64 F GLIBC_2.7 signalfd F -GLIBC_2.8 GLIBC_2.8 A GLIBC_2.8 __asprintf_chk F GLIBC_2.8 __dprintf_chk F GLIBC_2.8 __obstack_printf_chk F @@ -2202,7 +2176,6 @@ GLIBC_2.8 qsort_r F GLIBC_2.8 timerfd_create F GLIBC_2.8 timerfd_gettime F GLIBC_2.8 timerfd_settime F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 dup3 F GLIBC_2.9 epoll_create1 F GLIBC_2.9 inotify_init1 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist index df20c0f259..ae5c7af6c3 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 crypt F GLIBC_2.2.5 crypt_r F GLIBC_2.2.5 encrypt F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist index ca3d1f7936..c5cd25d424 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist @@ -1,12 +1,9 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 dladdr F GLIBC_2.2.5 dlclose F GLIBC_2.2.5 dlerror F GLIBC_2.2.5 dlopen F GLIBC_2.2.5 dlsym F GLIBC_2.2.5 dlvsym F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 dladdr1 F GLIBC_2.3.3 dlinfo F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 dlmopen F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index e4d0fa8e56..4f4cc3ce28 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.15 GLIBC_2.15 A GLIBC_2.15 __acos_finite F GLIBC_2.15 __acosf_finite F GLIBC_2.15 __acosh_finite F @@ -80,11 +79,9 @@ GLIBC_2.15 __y1l_finite F GLIBC_2.15 __yn_finite F GLIBC_2.15 __ynf_finite F GLIBC_2.15 __ynl_finite F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 _LIB_VERSION D 0x4 GLIBC_2.2.5 __clog10 F GLIBC_2.2.5 __clog10f F @@ -399,19 +396,16 @@ GLIBC_2.2.5 y1l F GLIBC_2.2.5 yn F GLIBC_2.2.5 ynf F GLIBC_2.2.5 ynl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F @@ -462,7 +456,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __acosf128_finite F GLIBC_2.26 __acoshf128_finite F GLIBC_2.26 __asinf128_finite F @@ -600,7 +593,6 @@ GLIBC_2.26 ufromfpxf128 F GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -1022,7 +1014,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F @@ -1049,4 +1040,3 @@ GLIBC_2.28 fadd F GLIBC_2.28 faddl F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F -GLIBC_2.4 GLIBC_2.4 A diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist index 571fe97d88..cac82ee6b3 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 __free_fdresult F GLIBC_2.2.5 __nis_default_access F GLIBC_2.2.5 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist index 85365c057c..4407927e34 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist @@ -1,15 +1,11 @@ -GLIBC_2.11 GLIBC_2.11 A GLIBC_2.11 pthread_sigqueue F -GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 pthread_getname_np F GLIBC_2.12 pthread_mutex_consistent F GLIBC_2.12 pthread_mutexattr_getrobust F GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 _IO_flockfile F GLIBC_2.2.5 _IO_ftrylockfile F GLIBC_2.2.5 _IO_funlockfile F @@ -201,16 +197,13 @@ GLIBC_2.2.5 vfork F GLIBC_2.2.5 wait F GLIBC_2.2.5 waitpid F GLIBC_2.2.5 write F -GLIBC_2.2.6 GLIBC_2.2.6 A GLIBC_2.2.6 __nanosleep F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F GLIBC_2.3.2 pthread_cond_signal F GLIBC_2.3.2 pthread_cond_timedwait F GLIBC_2.3.2 pthread_cond_wait F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 __pthread_cleanup_routine F GLIBC_2.3.3 __pthread_register_cancel F GLIBC_2.3.3 __pthread_register_cancel_defer F @@ -226,13 +219,11 @@ GLIBC_2.3.3 pthread_getaffinity_np F GLIBC_2.3.3 pthread_setaffinity_np F GLIBC_2.3.3 pthread_timedjoin_np F GLIBC_2.3.3 pthread_tryjoin_np F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 pthread_attr_getaffinity_np F GLIBC_2.3.4 pthread_attr_setaffinity_np F GLIBC_2.3.4 pthread_getaffinity_np F GLIBC_2.3.4 pthread_setaffinity_np F GLIBC_2.3.4 pthread_setschedprio F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 pthread_mutex_consistent_np F GLIBC_2.4 pthread_mutex_getprioceiling F GLIBC_2.4 pthread_mutex_setprioceiling F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist index a111ccc488..61d6b2b853 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 __b64_ntop F GLIBC_2.2.5 __b64_pton F GLIBC_2.2.5 __dn_comp F @@ -63,9 +62,7 @@ GLIBC_2.2.5 res_gethostbyname F GLIBC_2.2.5 res_gethostbyname2 F GLIBC_2.2.5 res_send_setqhook F GLIBC_2.2.5 res_send_setrhook F -GLIBC_2.3.2 GLIBC_2.3.2 A GLIBC_2.3.2 __p_rcode F -GLIBC_2.9 GLIBC_2.9 A GLIBC_2.9 ns_datetosecs F GLIBC_2.9 ns_format_ttl F GLIBC_2.9 ns_get16 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist index d626758434..e2e8b60bf8 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 aio_cancel F GLIBC_2.2.5 aio_cancel64 F GLIBC_2.2.5 aio_error F @@ -28,13 +27,11 @@ GLIBC_2.2.5 timer_delete F GLIBC_2.2.5 timer_getoverrun F GLIBC_2.2.5 timer_gettime F GLIBC_2.2.5 timer_settime F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 timer_create F GLIBC_2.3.3 timer_delete F GLIBC_2.3.3 timer_getoverrun F GLIBC_2.3.3 timer_gettime F GLIBC_2.3.3 timer_settime F -GLIBC_2.3.4 GLIBC_2.3.4 A GLIBC_2.3.4 mq_close F GLIBC_2.3.4 mq_getattr F GLIBC_2.3.4 mq_notify F @@ -45,8 +42,6 @@ GLIBC_2.3.4 mq_setattr F GLIBC_2.3.4 mq_timedreceive F GLIBC_2.3.4 mq_timedsend F GLIBC_2.3.4 mq_unlink F -GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 lio_listio F GLIBC_2.4 lio_listio64 F -GLIBC_2.7 GLIBC_2.7 A GLIBC_2.7 __mq_open_2 F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist index 291a19132d..0a9b5d2537 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 td_init F GLIBC_2.2.5 td_log F GLIBC_2.2.5 td_symbol_list F @@ -37,7 +36,5 @@ GLIBC_2.2.5 td_thr_setxregs F GLIBC_2.2.5 td_thr_sigsetmask F GLIBC_2.2.5 td_thr_tsd F GLIBC_2.2.5 td_thr_validate F -GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 td_thr_tls_get_addr F -GLIBC_2.3.3 GLIBC_2.3.3 A GLIBC_2.3.3 td_thr_tlsbase F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist index 98d06aa9f6..1356ed4115 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 forkpty F GLIBC_2.2.5 login F GLIBC_2.2.5 login_tty F diff --git a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist index 80d028a61c..363d4ace1e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist @@ -1,4 +1,3 @@ -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 _ZGVbN2v_cos F GLIBC_2.22 _ZGVbN2v_exp F GLIBC_2.22 _ZGVbN2v_log F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist index 236357bd83..80f3161586 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __libc_stack_end D 0x4 GLIBC_2.16 __tls_get_addr F GLIBC_2.16 _dl_mcount F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist index 0c8f428e3b..6c9d9289b1 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist @@ -1,2 +1 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __ctype_get_mb_cur_max F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist index 695118b9d5..067013555a 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 gai_cancel F GLIBC_2.16 gai_error F GLIBC_2.16 gai_suspend F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 8bc16b9004..96c9fa050e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 _Exit F GLIBC_2.16 _IO_2_1_stderr_ D 0xa0 GLIBC_2.16 _IO_2_1_stdin_ D 0xa0 @@ -2077,26 +2076,20 @@ GLIBC_2.16 xdrstdio_create F GLIBC_2.16 xencrypt F GLIBC_2.16 xprt_register F GLIBC_2.16 xprt_unregister F -GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 clock_getcpuclockid F GLIBC_2.17 clock_getres F GLIBC_2.17 clock_gettime F GLIBC_2.17 clock_nanosleep F GLIBC_2.17 clock_settime F GLIBC_2.17 secure_getenv F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __cxa_thread_atexit_impl F -GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 fmemopen F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 fts64_children F GLIBC_2.23 fts64_close F GLIBC_2.23 fts64_open F 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.25 GLIBC_2.25 A GLIBC_2.25 __explicit_bzero_chk F GLIBC_2.25 explicit_bzero F GLIBC_2.25 getentropy F @@ -2104,7 +2097,6 @@ GLIBC_2.25 getrandom F GLIBC_2.25 strfromd F GLIBC_2.25 strfromf F GLIBC_2.25 strfroml F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __strtof128_internal F GLIBC_2.26 __wcstof128_internal F GLIBC_2.26 preadv2 F @@ -2117,7 +2109,6 @@ GLIBC_2.26 strtof128 F GLIBC_2.26 strtof128_l F GLIBC_2.26 wcstof128 F GLIBC_2.26 wcstof128_l F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 copy_file_range F GLIBC_2.27 glob F GLIBC_2.27 glob64 F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist index d0f5c3b25d..5e9789b32e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 crypt F GLIBC_2.16 crypt_r F GLIBC_2.16 encrypt F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist index e4d2e7935d..c947cd4375 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 dladdr F GLIBC_2.16 dladdr1 F GLIBC_2.16 dlclose F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 543b5f80b7..36e8130e4c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 _LIB_VERSION D 0x4 GLIBC_2.16 __acos_finite F GLIBC_2.16 __acosf_finite F @@ -394,23 +393,19 @@ GLIBC_2.16 y1l F GLIBC_2.16 yn F GLIBC_2.16 ynf F GLIBC_2.16 ynl F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 __issignaling F GLIBC_2.18 __issignalingf F GLIBC_2.18 __issignalingl F -GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 __signgam D 0x4 GLIBC_2.23 lgamma F GLIBC_2.23 lgammaf F GLIBC_2.23 lgammal F -GLIBC_2.24 GLIBC_2.24 A GLIBC_2.24 nextdown F GLIBC_2.24 nextdownf F GLIBC_2.24 nextdownl F GLIBC_2.24 nextup F GLIBC_2.24 nextupf F GLIBC_2.24 nextupl F -GLIBC_2.25 GLIBC_2.25 A GLIBC_2.25 __iscanonicall F GLIBC_2.25 __iseqsig F GLIBC_2.25 __iseqsigf F @@ -461,7 +456,6 @@ GLIBC_2.25 ufromfpl F GLIBC_2.25 ufromfpx F GLIBC_2.25 ufromfpxf F GLIBC_2.25 ufromfpxl F -GLIBC_2.26 GLIBC_2.26 A GLIBC_2.26 __acosf128_finite F GLIBC_2.26 __acoshf128_finite F GLIBC_2.26 __asinf128_finite F @@ -599,7 +593,6 @@ GLIBC_2.26 ufromfpxf128 F GLIBC_2.26 y0f128 F GLIBC_2.26 y1f128 F GLIBC_2.26 ynf128 F -GLIBC_2.27 GLIBC_2.27 A GLIBC_2.27 acosf32 F GLIBC_2.27 acosf32x F GLIBC_2.27 acosf64 F @@ -1021,7 +1014,6 @@ GLIBC_2.27 ynf32 F GLIBC_2.27 ynf32x F GLIBC_2.27 ynf64 F GLIBC_2.27 ynf64x F -GLIBC_2.28 GLIBC_2.28 A GLIBC_2.28 daddl F GLIBC_2.28 dsubl F GLIBC_2.28 f32addf128 F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist index a0499d3c94..997142e8c3 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __free_fdresult F GLIBC_2.16 __nis_default_access F GLIBC_2.16 __nis_default_group F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist index 6cd0fc3487..7f818c82c2 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 _IO_flockfile F GLIBC_2.16 _IO_ftrylockfile F GLIBC_2.16 _IO_funlockfile F @@ -221,6 +220,5 @@ GLIBC_2.16 vfork F GLIBC_2.16 wait F GLIBC_2.16 waitpid F GLIBC_2.16 write F -GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist index 28abb0307e..2457bc9d49 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __b64_ntop F GLIBC_2.16 __b64_pton F GLIBC_2.16 __dn_comp F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist index ea7b40ab56..94e84e4dcf 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 __mq_open_2 F GLIBC_2.16 aio_cancel F GLIBC_2.16 aio_cancel64 F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist index 5d7031cf2f..d6eace6bfa 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 td_init F GLIBC_2.16 td_log F GLIBC_2.16 td_symbol_list F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist index 30353d06c2..cff23106f5 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist @@ -1,4 +1,3 @@ -GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 forkpty F GLIBC_2.16 login F GLIBC_2.16 login_tty F -- cgit v1.2.3 From 06ab719d30b01da401150068054d3b8ea93dd12f Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Wed, 4 Apr 2018 11:24:15 -0300 Subject: Fix Linux fcntl OFD locks for non-LFS architectures (BZ#20251) This patch fixes the OFD ("file private") locks for architectures that support non-LFS flock definition (__USE_FILE_OFFSET64 not defined). The issue in this case is both F_OFD_{GETLK,SETLK,SETLKW} and F_{SET,GET}L{W}K64 expects a flock64 argument and when using old F_OFD_* flags with a non LFS flock argument the kernel might interpret the underlying data wrongly. Kernel idea originally was to avoid using such flags in non-LFS syscall, but since GLIBC uses fcntl with LFS semantic as default it is possible to provide the functionality and avoid the bogus struct kernel passing by adjusting the struct manually for the required flags. The idea follows other LFS interfaces that provide two symbols: 1. A new LFS fcntl64 is added on default ABI with the usual macros to select it for FILE_OFFSET_BITS=64. 2. The Linux non-LFS fcntl use a stack allocated struct flock64 for F_OFD_{GETLK,SETLK,SETLKW} copy the results on the user provided struct. 3. Keep a compat symbol with old broken semantic for architectures that do not define __OFF_T_MATCHES_OFF64_T. So for architectures which defines __USE_FILE_OFFSET64, fcntl64 will aliased to fcntl and no adjustment would be required. So to actually use F_OFD_* with LFS support the source must be built with LFS support (_FILE_OFFSET_BITS=64). Also F_OFD_SETLKW command is handled a cancellation point, as for F_SETLKW{64}. Checked on x86_64-linux-gnu and i686-linux-gnu. [BZ #20251] * NEWS: Mention fcntl64 addition. * csu/check_fds.c: Replace __fcntl_nocancel by __fcntl64_nocancel. * login/utmp_file.c: Likewise. * sysdeps/posix/fdopendir.c: Likewise. * sysdeps/posix/opendir.c: Likewise. * sysdeps/unix/pt-fcntl.c: Likewise. * include/fcntl.h (__libc_fcntl64, __fcntl64, __fcntl64_nocancel_adjusted): New prototype. (__fcntl_nocancel_adjusted): Remove prototype. * io/Makefile (routines): Add fcntl64. (CFLAGS-fcntl64.c): New rule. * io/Versions [GLIBC_2.28] (fcntl64): New symbol. [GLIBC_PRIVATE] (__libc_fcntl): Rename to __libc_fcntl64. * io/fcntl.h (fcntl64): Add prototype and redirect if __USE_FILE_OFFSET64 is defined. * io/fcntl64.c: New file. * manual/llio.text: Add a note for which commands fcntl acts a cancellation point. * nptl/Makefile (CFLAGS-fcntl64.c): New rule. * sysdeps/mach/hurd/fcntl.c: Alias fcntl to fcntl64 symbols. * sysdeps/mach/hurd/i386/libc.abilist [GLIBC_2.28] (fcntl, fcntl64): New symbols. * sysdeps/unix/sysv/linux/fcntl.c (__libc_fcntl): Fix F_GETLK64, F_OFD_GETLK, F_SETLK64, F_SETLKW64, F_OFD_SETLK, and F_OFD_SETLKW for non-LFS case. * sysdeps/unix/sysv/linux/fcntl64.c: New file. * sysdeps/unix/sysv/linux/fcntl_nocancel.c (__fcntl_nocancel): Rename to __fcntl64_nocancel. (__fcntl_nocancel_adjusted): Rename to __fcntl64_nocancel_adjusted. * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Rename to __fcntl64_nocancel. * sysdeps/unix/sysv/linux/tst-ofdlocks.c: New file. * sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c: Likewise. * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-ofdlocks. (tests-internal): Add tst-ofdlocks-compat. * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28] (fcntl64): New symbol. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.28] (fcntl, fcntl64): Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilis: 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/nios2/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/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. --- ChangeLog | 68 ++++++++++++++++ NEWS | 6 ++ csu/check_fds.c | 2 +- include/fcntl.h | 7 +- io/Makefile | 3 +- io/Versions | 5 +- io/fcntl.h | 11 +++ io/fcntl64.c | 38 +++++++++ login/utmp_file.c | 4 +- manual/llio.texi | 13 ++-- nptl/Makefile | 1 + sysdeps/generic/not-cancel.h | 4 +- sysdeps/mach/hurd/bits/errno.h | 9 +++ sysdeps/mach/hurd/fcntl.c | 5 ++ sysdeps/mach/hurd/i386/libc.abilist | 2 + sysdeps/posix/fdopendir.c | 2 +- sysdeps/posix/opendir.c | 2 +- sysdeps/unix/pt-fcntl.c | 2 +- sysdeps/unix/sysv/linux/Makefile | 4 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 2 + sysdeps/unix/sysv/linux/fcntl.c | 90 +++++++++++++++++++--- sysdeps/unix/sysv/linux/fcntl64.c | 63 +++++++++++++++ sysdeps/unix/sysv/linux/fcntl_nocancel.c | 8 +- sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 + sysdeps/unix/sysv/linux/i386/libc.abilist | 2 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 2 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 2 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 2 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 + sysdeps/unix/sysv/linux/not-cancel.h | 4 +- .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 2 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 2 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 2 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c | 84 ++++++++++++++++++++ sysdeps/unix/sysv/linux/tst-ofdlocks.c | 76 ++++++++++++++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 51 files changed, 519 insertions(+), 35 deletions(-) create mode 100644 io/fcntl64.c create mode 100644 sysdeps/unix/sysv/linux/fcntl64.c create mode 100644 sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c create mode 100644 sysdeps/unix/sysv/linux/tst-ofdlocks.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index eaee727677..2eeeabf2ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,71 @@ +2018-06-26 Adhemerval Zanella + + [BZ #20251] + * NEWS: Mention fcntl64 addition. + * csu/check_fds.c: Replace __fcntl_nocancel by __fcntl64_nocancel. + * login/utmp_file.c: Likewise. + * sysdeps/posix/fdopendir.c: Likewise. + * sysdeps/posix/opendir.c: Likewise. + * sysdeps/unix/pt-fcntl.c: Likewise. + * include/fcntl.h (__libc_fcntl64, __fcntl64, + __fcntl64_nocancel_adjusted): New prototype. + (__fcntl_nocancel_adjusted): Remove prototype. + * io/Makefile (routines): Add fcntl64. + (CFLAGS-fcntl64.c): New rule. + * io/Versions [GLIBC_2.28] (fcntl64): New symbol. + [GLIBC_PRIVATE] (__libc_fcntl): Rename to __libc_fcntl64. + * io/fcntl.h (fcntl64): Add prototype and redirect if + __USE_FILE_OFFSET64 is defined. + * io/fcntl64.c: New file. + * manual/llio.text: Add a note for which commands fcntl acts a + cancellation point. + * nptl/Makefile (CFLAGS-fcntl64.c): New rule. + * sysdeps/mach/hurd/fcntl.c: Alias fcntl to fcntl64 symbols. + * sysdeps/mach/hurd/i386/libc.abilist [GLIBC_2.28] (fcntl, fcntl64): + New symbols. + * sysdeps/unix/sysv/linux/fcntl.c (__libc_fcntl): Fix F_GETLK64, + F_OFD_GETLK, F_SETLK64, F_SETLKW64, F_OFD_SETLK, and F_OFD_SETLKW for + non-LFS case. + * sysdeps/unix/sysv/linux/fcntl64.c: New file. + * sysdeps/unix/sysv/linux/fcntl_nocancel.c (__fcntl_nocancel): Rename + to __fcntl64_nocancel. + (__fcntl_nocancel_adjusted): Rename to __fcntl64_nocancel_adjusted. + * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Rename + to __fcntl64_nocancel. + * sysdeps/generic/not-cancel.h: Likewise. + * sysdeps/unix/sysv/linux/tst-ofdlocks.c: New file. + * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-ofdlocks. + * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28] + (fcntl64): New symbol. + * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.28] (fcntl, + fcntl64): Likewise. + * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libc.abilis: 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/nios2/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/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise. + 2018-06-26 Florian Weimer Run thread shutdown functions in an explicit order. diff --git a/NEWS b/NEWS index db7c1291fd..9d6fc08eb3 100644 --- a/NEWS +++ b/NEWS @@ -110,6 +110,12 @@ Deprecated and removed features, and other changes affecting compatibility: restriction (rejecting '_' in host names, among other things) has been removed, for increased compatibility with non-IDN name resolution. +* The fcntl function now have a Long File Support variant named fcntl64. It + is added to fix some Linux Open File Description (OFD) locks usage on non + LFS mode. As for others *64 functions, fcntl64 semantics are analogous with + fcntl and LFS support is handled transparently. Also for Linux, the OFD + locks act as a cancellation entrypoint. + Changes to build and runtime requirements: [Add changes to build and runtime requirements here] diff --git a/csu/check_fds.c b/csu/check_fds.c index 605ee4f3f4..ad1763b398 100644 --- a/csu/check_fds.c +++ b/csu/check_fds.c @@ -39,7 +39,7 @@ static void check_one_fd (int fd, int mode) { - if (__builtin_expect (__fcntl_nocancel (fd, F_GETFD), 0) == -1 + if (__builtin_expect (__fcntl64_nocancel (fd, F_GETFD), 0) == -1 && errno == EBADF) { const char *name; diff --git a/include/fcntl.h b/include/fcntl.h index 966f797890..be435047bc 100644 --- a/include/fcntl.h +++ b/include/fcntl.h @@ -10,11 +10,16 @@ extern int __libc_open (const char *file, int oflag, ...); libc_hidden_proto (__libc_open) extern int __libc_fcntl (int fd, int cmd, ...); libc_hidden_proto (__libc_fcntl) -extern int __fcntl_nocancel_adjusted (int fd, int cmd, void *arg) attribute_hidden; +extern int __fcntl64_nocancel_adjusted (int fd, int cmd, void *arg) + attribute_hidden; +extern int __libc_fcntl64 (int fd, int cmd, ...); +libc_hidden_proto (__libc_fcntl64) extern int __open (const char *__file, int __oflag, ...); libc_hidden_proto (__open) extern int __fcntl (int __fd, int __cmd, ...); libc_hidden_proto (__fcntl) +extern int __fcntl64 (int __fd, int __cmd, ...) attribute_hidden; +libc_hidden_proto (__fcntl64) extern int __openat (int __fd, const char *__file, int __oflag, ...) __nonnull ((2)); libc_hidden_proto (__openat) diff --git a/io/Makefile b/io/Makefile index 2117cb6b62..4a0d8fea09 100644 --- a/io/Makefile +++ b/io/Makefile @@ -40,7 +40,7 @@ routines := \ mkdir mkdirat \ open open_2 open64 open64_2 openat openat_2 openat64 openat64_2 \ read write lseek lseek64 access euidaccess faccessat \ - fcntl flock lockf lockf64 \ + fcntl fcntl64 flock lockf lockf64 \ close dup dup2 dup3 pipe pipe2 \ creat creat64 \ chdir fchdir \ @@ -89,6 +89,7 @@ CFLAGS-open64.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-creat.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-creat64.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables +CFLAGS-fcntl64.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-poll.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-ppoll.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-lockf.c += -fexceptions diff --git a/io/Versions b/io/Versions index 4448b7197c..98037fbbfc 100644 --- a/io/Versions +++ b/io/Versions @@ -128,8 +128,11 @@ libc { GLIBC_2.27 { copy_file_range; } + GLIBC_2.28 { + fcntl64; + } GLIBC_PRIVATE { - __libc_fcntl; + __libc_fcntl64; __fcntl_nocancel; __open64_nocancel; __write_nocancel; diff --git a/io/fcntl.h b/io/fcntl.h index 69a4394191..3afc62011a 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -167,7 +167,18 @@ typedef __pid_t pid_t; This function is a cancellation point and therefore not marked with __THROW. */ +#ifndef __USE_FILE_OFFSET64 extern int fcntl (int __fd, int __cmd, ...); +#else +# ifdef __REDIRECT +extern int __REDIRECT (fcntl, (int __fd, int __cmd, ...), fcntl64); +# else +# define fcntl fcntl64 +# endif +#endif +#ifdef __USE_LARGEFILE64 +extern int fcntl64 (int __fd, int __cmd, ...); +#endif /* Open FILE and return a new file descriptor for it, or -1 on error. OFLAG determines the type of access used. If O_CREAT or O_TMPFILE is set diff --git a/io/fcntl64.c b/io/fcntl64.c new file mode 100644 index 0000000000..f4e6809abc --- /dev/null +++ b/io/fcntl64.c @@ -0,0 +1,38 @@ +/* Manipulate file descriptor. Stub LFS version. + Copyright (C) 2018 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 + +/* Perform file control operations on FD. */ +int +__fcntl64 (int fd, int cmd, ...) +{ + if (fd < 0) + { + __set_errno (EBADF); + return -1; + } + + __set_errno (ENOSYS); + return -1; +} +libc_hidden_def (__fcntl64) +stub_warning (fcntl64) + +weak_alias (__fcntl64, fcntl64) diff --git a/login/utmp_file.c b/login/utmp_file.c index 72dd21387c..040a505711 100644 --- a/login/utmp_file.c +++ b/login/utmp_file.c @@ -82,7 +82,7 @@ static void timeout_handler (int signum) {}; memset (&fl, '\0', sizeof (struct flock)); \ fl.l_type = (type); \ fl.l_whence = SEEK_SET; \ - if (__fcntl_nocancel ((fd), F_SETLKW, &fl) < 0) + if (__fcntl64_nocancel ((fd), F_SETLKW, &fl) < 0) #define LOCKING_FAILED() \ goto unalarm_return @@ -90,7 +90,7 @@ static void timeout_handler (int signum) {}; #define UNLOCK_FILE(fd) \ /* Unlock the file. */ \ fl.l_type = F_UNLCK; \ - __fcntl_nocancel ((fd), F_SETLKW, &fl); \ + __fcntl64_nocancel ((fd), F_SETLKW, &fl); \ \ unalarm_return: \ /* Reset the signal handler and alarm. We must reset the alarm \ diff --git a/manual/llio.texi b/manual/llio.texi index 82f03be2be..e840c55f86 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -3281,12 +3281,13 @@ Set process or process group ID to receive @code{SIGIO} signals. @xref{Interrupt Input}. @end vtable -This function is a cancellation point in multi-threaded programs. This -is a problem if the thread allocates some resources (like memory, file -descriptors, semaphores or whatever) at the time @code{fcntl} is -called. If the thread gets canceled these resources stay allocated -until the program ends. To avoid this calls to @code{fcntl} should be -protected using cancellation handlers. +This function is a cancellation point in multi-threaded programs for the +commands @code{F_SETLKW} (and the LFS analogous @code{F_SETLKW64}) and +@code {F_OFD_SETLKW}. This is a problem if the thread allocates some +resources (like memory, file descriptors, semaphores or whatever) at the time +@code{fcntl} is called. If the thread gets canceled these resources stay +allocated until the program ends. To avoid this calls to @code{fcntl} should +be protected using cancellation handlers. @c ref pthread_cleanup_push / pthread_cleanup_pop @end deftypefun diff --git a/nptl/Makefile b/nptl/Makefile index 6cfc8c60ee..0f9c44afa0 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -191,6 +191,7 @@ CFLAGS-sem_timedwait.c += -fexceptions -fasynchronous-unwind-tables # These are the function wrappers we have to duplicate here. CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables +CFLAGS-fcntl64.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-lockf.c += -fexceptions CFLAGS-pread.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-pread64.c += -fexceptions -fasynchronous-unwind-tables diff --git a/sysdeps/generic/not-cancel.h b/sysdeps/generic/not-cancel.h index 19ad8cbc4c..d9f8a75dbd 100644 --- a/sysdeps/generic/not-cancel.h +++ b/sysdeps/generic/not-cancel.h @@ -51,7 +51,7 @@ __pause () #define __nanosleep_nocancel(requested_time, remaining) \ __nanosleep (requested_time, remaining) -#define __fcntl_nocancel(fd, cmd, ...) \ - __fcntl (fd, cmd, __VA_ARGS__) +#define __fcntl64_nocancel(fd, cmd, ...) \ + __fcntl64 (fd, cmd, __VA_ARGS__) #endif /* NOT_CANCEL_H */ diff --git a/sysdeps/mach/hurd/bits/errno.h b/sysdeps/mach/hurd/bits/errno.h index 8096fb9c05..bb8b8b669f 100644 --- a/sysdeps/mach/hurd/bits/errno.h +++ b/sysdeps/mach/hurd/bits/errno.h @@ -1,9 +1,18 @@ /* This file generated by errnos.awk from errno.texi + stdc-predef.h + libc-symbols.h mach/message.h mach/kern_return.h + mach/i386/kern_return.h + mach/port.h + mach/boolean.h + mach/i386/boolean.h + mach/i386/vm_types.h mach/mig_errors.h device/device_types.h + mach/std_types.h + /home/azanella/Projects/glibc/build/i686-gnu/errnos.d Do not edit this file; edit errnos.awk and regenerate it. */ #ifndef _BITS_ERRNO_H diff --git a/sysdeps/mach/hurd/fcntl.c b/sysdeps/mach/hurd/fcntl.c index 0b231645c5..598317d811 100644 --- a/sysdeps/mach/hurd/fcntl.c +++ b/sysdeps/mach/hurd/fcntl.c @@ -210,3 +210,8 @@ libc_hidden_def (__libc_fcntl) weak_alias (__libc_fcntl, __fcntl) libc_hidden_weak (__fcntl) weak_alias (__libc_fcntl, fcntl) + +strong_alias (__libc_fcntl, __libc_fcntl64) +libc_hidden_def (__libc_fcntl64) +weak_alias (__libc_fcntl64, __fcntl64) +libc_hidden_weak (__fcntl64) diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 2cb507052b..3d46de795d 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2033,6 +2033,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/posix/fdopendir.c b/sysdeps/posix/fdopendir.c index dafb5d20c1..b72eecc66b 100644 --- a/sysdeps/posix/fdopendir.c +++ b/sysdeps/posix/fdopendir.c @@ -38,7 +38,7 @@ __fdopendir (int fd) } /* Make sure the descriptor allows for reading. */ - int flags = __fcntl_nocancel (fd, F_GETFL); + int flags = __fcntl64_nocancel (fd, F_GETFL); if (__glibc_unlikely (flags == -1)) return NULL; if (__glibc_unlikely ((flags & O_ACCMODE) == O_WRONLY)) diff --git a/sysdeps/posix/opendir.c b/sysdeps/posix/opendir.c index 0875385f65..bb6bd7cc85 100644 --- a/sysdeps/posix/opendir.c +++ b/sysdeps/posix/opendir.c @@ -99,7 +99,7 @@ __alloc_dir (int fd, bool close_fd, int flags, const struct stat64 *statp) /* We have to set the close-on-exit flag if the user provided the file descriptor. */ if (!close_fd - && __glibc_unlikely (__fcntl_nocancel (fd, F_SETFD, FD_CLOEXEC) < 0)) + && __glibc_unlikely (__fcntl64_nocancel (fd, F_SETFD, FD_CLOEXEC) < 0)) goto lose; const size_t default_allocation = (4 * BUFSIZ < sizeof (struct dirent64) diff --git a/sysdeps/unix/pt-fcntl.c b/sysdeps/unix/pt-fcntl.c index 8113d52b86..3d64054dd0 100644 --- a/sysdeps/unix/pt-fcntl.c +++ b/sysdeps/unix/pt-fcntl.c @@ -37,7 +37,7 @@ fcntl_compat (int fd, int cmd, ...) va_start (ap, cmd); arg = va_arg (ap, void *); va_end (ap); - return __libc_fcntl (fd, cmd, arg); + return __libc_fcntl64 (fd, cmd, arg); } weak_alias (fcntl_compat, fcntl_alias) diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 215fd5d136..f71cc39c7e 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -45,7 +45,9 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \ tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \ test-errno-linux tst-memfd_create tst-mlock2 tst-pkey \ - tst-rlimit-infinity + tst-rlimit-infinity tst-ofdlocks +tests-internal += tst-ofdlocks-compat + # Generate the list of SYS_* macros for the system calls (__NR_* # macros). The file syscall-names.list contains all possible system diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 80cdb98e1c..884d0dfa95 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2131,3 +2131,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index c761f61c43..28d54b9794 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2026,6 +2026,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index 6aa58c3ca7..dfde3bd725 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -115,6 +115,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/fcntl.c b/sysdeps/unix/sysv/linux/fcntl.c index e3992dc9d4..cbab7b401a 100644 --- a/sysdeps/unix/sysv/linux/fcntl.c +++ b/sysdeps/unix/sysv/linux/fcntl.c @@ -20,15 +20,12 @@ #include #include #include -#include -#ifndef __NR_fcntl64 -# define __NR_fcntl64 __NR_fcntl -#endif +#ifndef __OFF_T_MATCHES_OFF64_T -#ifndef FCNTL_ADJUST_CMD -# define FCNTL_ADJUST_CMD(__cmd) __cmd -#endif +# ifndef FCNTL_ADJUST_CMD +# define FCNTL_ADJUST_CMD(__cmd) __cmd +# endif int __libc_fcntl (int fd, int cmd, ...) @@ -42,13 +39,84 @@ __libc_fcntl (int fd, int cmd, ...) cmd = FCNTL_ADJUST_CMD (cmd); - if (cmd == F_SETLKW || cmd == F_SETLKW64) - return SYSCALL_CANCEL (fcntl64, fd, cmd, (void *) arg); - - return __fcntl_nocancel_adjusted (fd, cmd, arg); + switch (cmd) + { + case F_SETLKW: + case F_SETLKW64: + return SYSCALL_CANCEL (fcntl64, fd, cmd, arg); + case F_OFD_SETLKW: + { + struct flock *flk = (struct flock *) arg; + struct flock64 flk64 = + { + .l_type = flk->l_type, + .l_whence = flk->l_whence, + .l_start = flk->l_start, + .l_len = flk->l_len, + .l_pid = flk->l_pid + }; + return SYSCALL_CANCEL (fcntl64, fd, cmd, &flk64); + } + case F_OFD_GETLK: + case F_OFD_SETLK: + { + struct flock *flk = (struct flock *) arg; + struct flock64 flk64 = + { + .l_type = flk->l_type, + .l_whence = flk->l_whence, + .l_start = flk->l_start, + .l_len = flk->l_len, + .l_pid = flk->l_pid + }; + int ret = INLINE_SYSCALL_CALL (fcntl64, fd, cmd, &flk64); + if (ret == -1) + return -1; + if ((off_t) flk64.l_start != flk64.l_start + || (off_t) flk64.l_len != flk64.l_len) + { + __set_errno (EOVERFLOW); + return -1; + } + flk->l_type = flk64.l_type; + flk->l_whence = flk64.l_whence; + flk->l_start = flk64.l_start; + flk->l_len = flk64.l_len; + flk->l_pid = flk64.l_pid; + return ret; + } + /* Since only F_SETLKW{64}/F_OLD_SETLK are cancellation entrypoints and + only OFD locks require LFS handling, all others flags are handled + unmodified by calling __NR_fcntl64. */ + default: + return __fcntl64_nocancel_adjusted (fd, cmd, arg); + } } libc_hidden_def (__libc_fcntl) weak_alias (__libc_fcntl, __fcntl) libc_hidden_weak (__fcntl) + +# include +# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_28) +int +__old_libc_fcntl64 (int fd, int cmd, ...) +{ + va_list ap; + void *arg; + + va_start (ap, cmd); + arg = va_arg (ap, void *); + va_end (ap); + + /* Previous versions called __NR_fcntl64 for fcntl (which did not handle + OFD locks in LFS mode). */ + return __libc_fcntl64 (fd, cmd, arg); +} +compat_symbol (libc, __old_libc_fcntl64, fcntl, GLIBC_2_0); +versioned_symbol (libc, __libc_fcntl, fcntl, GLIBC_2_28); +# else weak_alias (__libc_fcntl, fcntl) +# endif + +#endif /* __OFF_T_MATCHES_OFF64_T */ diff --git a/sysdeps/unix/sysv/linux/fcntl64.c b/sysdeps/unix/sysv/linux/fcntl64.c new file mode 100644 index 0000000000..f21667ae43 --- /dev/null +++ b/sysdeps/unix/sysv/linux/fcntl64.c @@ -0,0 +1,63 @@ +/* Manipulate file descriptor. Linux LFS version. + Copyright (C) 2018 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 + . */ + +#define fcntl __no_decl_fcntl +#define __fcntl __no_decl___fcntl +#include +#undef fcntl +#undef __fcntl +#include +#include +#include + +#ifndef __NR_fcntl64 +# define __NR_fcntl64 __NR_fcntl +#endif + +#ifndef FCNTL_ADJUST_CMD +# define FCNTL_ADJUST_CMD(__cmd) __cmd +#endif + +int +__libc_fcntl64 (int fd, int cmd, ...) +{ + va_list ap; + void *arg; + + va_start (ap, cmd); + arg = va_arg (ap, void *); + va_end (ap); + + cmd = FCNTL_ADJUST_CMD (cmd); + + if (cmd == F_SETLKW || cmd == F_SETLKW64 || cmd == F_OFD_SETLKW) + return SYSCALL_CANCEL (fcntl64, fd, cmd, arg); + + return __fcntl64_nocancel_adjusted (fd, cmd, arg); +} +libc_hidden_def (__libc_fcntl64) +weak_alias (__libc_fcntl64, __fcntl64) +libc_hidden_weak (__fcntl64) +weak_alias (__libc_fcntl64, fcntl64) + +#ifdef __OFF_T_MATCHES_OFF64_T +weak_alias (__libc_fcntl64, __libc_fcntl) +weak_alias (__libc_fcntl64, __fcntl) +weak_alias (__libc_fcntl64, __GI___fcntl) +weak_alias (__libc_fcntl64, fcntl) +#endif diff --git a/sysdeps/unix/sysv/linux/fcntl_nocancel.c b/sysdeps/unix/sysv/linux/fcntl_nocancel.c index f50e382c4a..dd336b5679 100644 --- a/sysdeps/unix/sysv/linux/fcntl_nocancel.c +++ b/sysdeps/unix/sysv/linux/fcntl_nocancel.c @@ -31,7 +31,7 @@ #endif int -__fcntl_nocancel (int fd, int cmd, ...) +__fcntl64_nocancel (int fd, int cmd, ...) { va_list ap; void *arg; @@ -42,12 +42,12 @@ __fcntl_nocancel (int fd, int cmd, ...) cmd = FCNTL_ADJUST_CMD (cmd); - return __fcntl_nocancel_adjusted (fd, cmd, arg); + return __fcntl64_nocancel_adjusted (fd, cmd, arg); } -hidden_def (__fcntl_nocancel) +hidden_def (__fcntl64_nocancel) int -__fcntl_nocancel_adjusted (int fd, int cmd, void *arg) +__fcntl64_nocancel_adjusted (int fd, int cmd, void *arg) { if (cmd == F_GETOWN) { diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index d10695b7d3..06b00f730a 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1872,6 +1872,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 23092ab6d7..1c1cc00d40 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2037,6 +2037,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 7bf259e86c..f6e17a005f 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1907,6 +1907,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 4673bcd79b..ee054a618d 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -116,6 +116,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 GLIBC_2.4 _IO_2_1_stdin_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 1f8ac40399..227a0581cb 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1981,6 +1981,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 09277f5954..18781b3017 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2122,3 +2122,5 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index f562e20f23..2d86989cf2 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1959,6 +1959,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_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 ceb7388829..b8b113e1a5 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1957,6 +1957,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 5765f487a2..6a3cd13e2d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1965,6 +1965,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index a84bb45a38..596ec05379 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1961,6 +1961,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index e43295986c..8da18eed57 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2163,3 +2163,5 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h index 0b5c955989..09de92dee9 100644 --- a/sysdeps/unix/sysv/linux/not-cancel.h +++ b/sysdeps/unix/sysv/linux/not-cancel.h @@ -76,7 +76,7 @@ __typeof (pause) __pause_nocancel; __typeof (__nanosleep) __nanosleep_nocancel; /* Uncancelable fcntl. */ -__typeof (__fcntl) __fcntl_nocancel; +__typeof (__fcntl) __fcntl64_nocancel; #if IS_IN (libc) || IS_IN (rtld) hidden_proto (__open_nocancel) @@ -89,7 +89,7 @@ hidden_proto (__close_nocancel) hidden_proto (__waitpid_nocancel) hidden_proto (__pause_nocancel) hidden_proto (__nanosleep_nocancel) -hidden_proto (__fcntl_nocancel) +hidden_proto (__fcntl64_nocancel) #endif #endif /* NOT_CANCEL_H */ diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index a5f2b23068..555751eb12 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1985,6 +1985,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_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 e4cbe36279..80324e41aa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1989,6 +1989,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 9869feb56b..97b1d354af 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2221,3 +2221,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index e526dc4627..15be314921 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -116,6 +116,7 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl64 F GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 GLIBC_2.3 _IO_2_1_stdin_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index e6319eef8d..436b992251 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2093,3 +2093,4 @@ GLIBC_2.27 xdrstdio_create F GLIBC_2.27 xencrypt F GLIBC_2.27 xprt_register F GLIBC_2.27 xprt_unregister F +GLIBC_2.28 fcntl64 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 41cdda0c2e..f66715f0c9 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1994,6 +1994,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 8a756cf287..bd6242861b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1900,6 +1900,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 999bddd1db..f2f070fbce 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1876,6 +1876,8 @@ GLIBC_2.27 wcstof32x F GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 7c4296fc10..265087f6a8 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1988,6 +1988,8 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index dafe9d74b7..16a69812cb 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1930,6 +1930,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c new file mode 100644 index 0000000000..d1d00eb3fb --- /dev/null +++ b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c @@ -0,0 +1,84 @@ +/* Check non representable OFD locks regions in non-LFS mode for compat + mode (BZ #20251) + Copyright (C) 2018 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include + +#include +#include + +#include +#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_28) +compat_symbol_reference (libc, fcntl, fcntl, GLIBC_2_0); + +static char *temp_filename; +static int temp_fd; + +static void +do_prepare (int argc, char **argv) +{ + temp_fd = create_temp_file ("tst-ofdlocks-compat.", &temp_filename); + TEST_VERIFY_EXIT (temp_fd != -1); +} + +#define PREPARE do_prepare + +static int +do_test (void) +{ + /* The compat fcntl version for architectures which support non-LFS + operations does not wrap the flock OFD argument, so the struct is passed + unmodified to kernel. It means no EOVERFLOW is returned, so operations + with LFS should not incur in failure. */ + + struct flock64 lck64 = { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, + .l_start = (off64_t)INT32_MAX + 1024, + .l_len = 1024, + }; + TEST_VERIFY_EXIT (fcntl (temp_fd, F_OFD_SETLKW, &lck64) == 0); + + /* Open file description locks placed through the same open file description + (either by same file descriptor or a duplicated one created by fork, + dup, fcntl F_DUPFD, etc.) overwrites then old lock. To force a + conflicting lock combination, it creates a new file descriptor. */ + int fd = open64 (temp_filename, O_RDWR, 0666); + TEST_VERIFY_EXIT (fd != -1); + + struct flock64 lck = { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, + .l_start = INT32_MAX - 1024, + .l_len = 4 * 1024, + }; + TEST_VERIFY (fcntl (fd, F_OFD_GETLK, &lck) == 0); + + return 0; +} +#else +static int +do_test (void) +{ + return 77; +} +#endif + +#include diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks.c b/sysdeps/unix/sysv/linux/tst-ofdlocks.c new file mode 100644 index 0000000000..bd345e9b64 --- /dev/null +++ b/sysdeps/unix/sysv/linux/tst-ofdlocks.c @@ -0,0 +1,76 @@ +/* Check non representable OFD locks regions in non-LFS mode (BZ #20251) + Copyright (C) 2018 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see . +*/ + +#include +#include +#include +#include + +#include +#include + +static char *temp_filename; +static int temp_fd; + +static void +do_prepare (int argc, char **argv) +{ + temp_fd = create_temp_file ("tst-ofdlocks.", &temp_filename); + TEST_VERIFY_EXIT (temp_fd != -1); +} + +#define PREPARE do_prepare + +static int +do_test (void) +{ + /* It first allocates a open file description lock range which can not + be represented in a 32 bit struct flock. */ + struct flock64 lck64 = { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, + .l_start = (off64_t)INT32_MAX + 1024, + .l_len = 1024, + }; + TEST_VERIFY_EXIT (fcntl64 (temp_fd, F_OFD_SETLKW, &lck64) == 0); + + /* Open file description locks placed through the same open file description + (either by same file descriptor or a duplicated one created by fork, + dup, fcntl F_DUPFD, etc.) overwrites then old lock. To force a + conflicting lock combination, it creates a new file descriptor. */ + int fd = open64 (temp_filename, O_RDWR, 0666); + TEST_VERIFY_EXIT (fd != -1); + + /* It tries then to allocate another open file descriptior with a valid + non-LFS bits struct flock but which will result in a conflicted region + which can not be represented in a non-LFS struct flock. */ + struct flock lck = { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, + .l_start = INT32_MAX - 1024, + .l_len = 4 * 1024, + }; + int r = fcntl (fd, F_OFD_GETLK, &lck); + if (sizeof (off_t) != sizeof (off64_t)) + TEST_VERIFY (r == -1 && errno == EOVERFLOW); + else + TEST_VERIFY (r == 0); + + return 0; +} + +#include diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index f72d494920..fa8c198d13 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1888,6 +1888,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 96c9fa050e..2536971682 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2139,3 +2139,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F +GLIBC_2.28 fcntl64 F -- cgit v1.2.3 From d6da5cb6a8e0e8a9ce92b7d951a254cf325248d7 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 5 Jul 2018 18:59:02 +0200 Subject: Add renameat2 function [BZ #17662] The implementation falls back to renameat if renameat2 is not available in the kernel (or in the kernel headers) and the flags argument is zero. Without kernel support, a non-zero argument returns EINVAL, not ENOSYS. This mirrors what the kernel does for invalid renameat2 flags. --- ChangeLog | 31 ++++ NEWS | 9 + include/stdio.h | 3 + libio/stdio.h | 12 ++ manual/filesys.texi | 1 + stdio-common/Makefile | 3 +- stdio-common/Versions | 3 + stdio-common/renameat.c | 5 +- stdio-common/renameat2.c | 30 +++ stdio-common/tst-renameat2.c | 204 +++++++++++++++++++++ sysdeps/mach/hurd/i386/libc.abilist | 1 + sysdeps/mach/hurd/renameat.c | 4 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/kernel-features.h | 5 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/kernel-features.h | 5 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + .../unix/sysv/linux/microblaze/kernel-features.h | 5 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/renameat.c | 4 +- sysdeps/unix/sysv/linux/renameat2.c | 44 +++++ sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/kernel-features.h | 5 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/kernel-features.h | 5 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 45 files changed, 400 insertions(+), 5 deletions(-) create mode 100644 stdio-common/renameat2.c create mode 100644 stdio-common/tst-renameat2.c create mode 100644 sysdeps/unix/sysv/linux/renameat2.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 2e8308e191..27927257ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,34 @@ +2018-07-05 Florian Weimer + + [BZ # 17662] + * libio/stdio.h [__USE_GNU] (RENAME_NOREPLACE, RENAME_EXCHANGE) + (RENAME_WHITEOUT): Define. + [__USE_GNU] (renameat2): Declare. + * stdio-common/Makefile (routines): Add renameat2. + (tests): Add tst-renameat2. + * stdio-common/Versions (GLIBC_2_28): Export renameat2. + * stdio-common/renameat2.c: New file. + * stdio-common/tst-renameat2.c: Likewise. + * sysdeps/unix/sysv/linux/renameat2.c: Likewise. + * manual/filesys.texi (Temporary Files): Note that renameat2 is + undocumented. + * sysdeps/unix/sysv/linux/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x030F00] (__ASSUME_RENAMEAT2): Define. + * sysdeps/unix/sysv/linux/alpha/kernel-features.h + [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine. + * sysdeps/unix/sysv/linux/microblaze/kernel-features.h + [__LINUX_KERNEL_VERSION < 0x031100] (__ASSUME_RENAMEAT2): Undefine. + * sysdeps/unix/sysv/linux/sh/kernel-features.h + [__LINUX_KERNEL_VERSION < 0x040800] (__ASSUME_RENAMEAT2): Undefine. + * sysdeps/unix/sysv/linux/sparc/kernel-features.h + [__LINUX_KERNEL_VERSION < 0x031000] (__ASSUME_RENAMEAT2): Undefine. + * include/stdio.h (__renameat): Add alias for renameat. + * stdio-common/renameat.c (__renameat): Rename from renameat. + Add hidden definition and alias. + * sysdeps/unix/sysv/linux/renameat.c: Likewise. + * sysdeps/mach/hurd/renameat.c: Likewise. + * sysdeps/**/libc*.abilist: Add renameat2. + 2018-07-04 Adhemerval Zanella * posix/bug-regex33.c: Fix build after regex sync. diff --git a/NEWS b/NEWS index b1ce067d27..5d253910b5 100644 --- a/NEWS +++ b/NEWS @@ -39,6 +39,15 @@ Major new features: * Building and running on GNU/Hurd systems now works without out-of-tree patches. +* The renameat2 function has been added, a variant of the renameat function + which has a flags argument. If the flags are zero, the renameat2 function + acts like renameat. If the flag is not zero and there is no kernel + support for renameat2, the function will fail with an errno value of + EINVAL. This is different from the existing gnulib function renameatu, + which performs a plain rename operation in case of a RENAME_NOREPLACE + flags and a non-existing destination (and therefore has a race condition + that can clobber the destination inadvertently). + * IDN domain names in getaddrinfo and getnameinfo now use the system libidn2 library if installed. libidn2 version 2.0.5 or later is recommended. If libidn2 is not available, internationalized domain names are not encoded diff --git a/include/stdio.h b/include/stdio.h index f140813ad6..3ba0edc924 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -237,5 +237,8 @@ __putc_unlocked (int __c, FILE *__stream) } # endif +extern __typeof (renameat) __renameat; +libc_hidden_proto (__renameat) + # endif /* not _ISOMAC */ #endif /* stdio.h */ diff --git a/libio/stdio.h b/libio/stdio.h index 731f8e56f4..739e08610d 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -153,6 +153,18 @@ extern int renameat (int __oldfd, const char *__old, int __newfd, const char *__new) __THROW; #endif +#ifdef __USE_GNU +/* Flags for renameat2. */ +# define RENAME_NOREPLACE (1 << 0) +# define RENAME_EXCHANGE (1 << 1) +# define RENAME_WHITEOUT (1 << 2) + +/* Rename file OLD relative to OLDFD to NEW relative to NEWFD, with + additional flags. */ +extern int renameat2 (int __oldfd, const char *__old, int __newfd, + const char *__new, unsigned int __flags) __THROW; +#endif + /* Create a temporary file and open it read/write. This function is a possible cancellation point and therefore not diff --git a/manual/filesys.texi b/manual/filesys.texi index cc70a6b7ee..db2f1041de 100644 --- a/manual/filesys.texi +++ b/manual/filesys.texi @@ -3552,6 +3552,7 @@ The @code{mkdtemp} function comes from OpenBSD. @c open_by_handle_at @c readlinkat @c renameat +@c renameat2 @c scandirat @c symlinkat @c unlinkat diff --git a/stdio-common/Makefile b/stdio-common/Makefile index 96bd7c303a..a10f12ab3c 100644 --- a/stdio-common/Makefile +++ b/stdio-common/Makefile @@ -35,7 +35,7 @@ routines := \ perror psignal \ tmpfile tmpfile64 tmpnam tmpnam_r tempnam tempname \ getline getw putw \ - remove rename renameat \ + remove rename renameat renameat2 \ flockfile ftrylockfile funlockfile \ isoc99_scanf isoc99_vscanf isoc99_fscanf isoc99_vfscanf isoc99_sscanf \ isoc99_vsscanf \ @@ -62,6 +62,7 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \ tst-vfprintf-user-type \ tst-vfprintf-mbs-prec \ tst-scanf-round \ + tst-renameat2 \ test-srcs = tst-unbputc tst-printf tst-printfsz-islongdouble diff --git a/stdio-common/Versions b/stdio-common/Versions index 5016f69c20..b8217578c8 100644 --- a/stdio-common/Versions +++ b/stdio-common/Versions @@ -57,6 +57,9 @@ libc { psiginfo; register_printf_modifier; register_printf_type; register_printf_specifier; } + GLIBC_2.28 { + renameat2; + } GLIBC_PRIVATE { # global variables _itoa_lower_digits; diff --git a/stdio-common/renameat.c b/stdio-common/renameat.c index 2180b87bdf..98c8f1d18b 100644 --- a/stdio-common/renameat.c +++ b/stdio-common/renameat.c @@ -22,7 +22,7 @@ /* Rename the file OLD relative to OLDFD to NEW relative to NEWFD. */ int -renameat (int oldfd, const char *old, int newfd, const char *new) +__renameat (int oldfd, const char *old, int newfd, const char *new) { if ((oldfd < 0 && oldfd != AT_FDCWD) || (newfd < 0 && newfd != AT_FDCWD)) { @@ -40,5 +40,6 @@ renameat (int oldfd, const char *old, int newfd, const char *new) return -1; } - +libc_hidden_def (__renameat) +weak_alias (__renameat, renameat) stub_warning (renameat) diff --git a/stdio-common/renameat2.c b/stdio-common/renameat2.c new file mode 100644 index 0000000000..c2cedcd2cb --- /dev/null +++ b/stdio-common/renameat2.c @@ -0,0 +1,30 @@ +/* Generic implementation of the renameat function. + Copyright (C) 2018 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 + +int +renameat2 (int oldfd, const char *old, int newfd, const char *new, + unsigned int flags) +{ + if (flags == 0) + return __renameat (oldfd, old, newfd, new); + __set_errno (EINVAL); + return -1; +} diff --git a/stdio-common/tst-renameat2.c b/stdio-common/tst-renameat2.c new file mode 100644 index 0000000000..958b0918d6 --- /dev/null +++ b/stdio-common/tst-renameat2.c @@ -0,0 +1,204 @@ +/* Linux implementation for renameat2 function. + Copyright (C) 2018 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 +#include +#include +#include +#include +#include +#include +#include + +/* Directory with the temporary files. */ +static char *directory; +static int directory_fd; + +/* Paths within that directory. */ +static char *old_path; /* File is called "old". */ +static char *new_path; /* File is called "new". */ + +/* Subdirectory within the directory above. */ +static char *subdirectory; +int subdirectory_fd; + +/* And a pathname in that directory (called "file"). */ +static char *subdir_path; + +static void +prepare (int argc, char **argv) +{ + directory = support_create_temp_directory ("tst-renameat2-"); + directory_fd = xopen (directory, O_RDONLY | O_DIRECTORY, 0); + old_path = xasprintf ("%s/old", directory); + add_temp_file (old_path); + new_path = xasprintf ("%s/new", directory); + add_temp_file (new_path); + subdirectory = xasprintf ("%s/subdir", directory); + xmkdir (subdirectory, 0777); + add_temp_file (subdirectory); + subdirectory_fd = xopen (subdirectory, O_RDONLY | O_DIRECTORY, 0); + subdir_path = xasprintf ("%s/file", subdirectory); + add_temp_file (subdir_path); +} + +/* Delete all files, preparing a clean slate for the next test. */ +static void +delete_all_files (void) +{ + char *files[] = { old_path, new_path, subdir_path }; + for (size_t i = 0; i < array_length (files); ++i) + if (unlink (files[i]) != 0 && errno != ENOENT) + FAIL_EXIT1 ("unlink (\"%s\"): %m", files[i]); +} + +/* Return true if PATH exists in the file system. */ +static bool +file_exists (const char *path) +{ + return access (path, F_OK) == 0; +} + +/* Check that PATH exists and has size EXPECTED_SIZE. */ +static void +check_size (const char *path, off64_t expected_size) +{ + struct stat64 st; + xstat (path, &st); + if (st.st_size != expected_size) + FAIL_EXIT1 ("file \"%s\": expected size %lld, actual size %lld", + path, (unsigned long long int) expected_size, + (unsigned long long int) st.st_size); +} + +/* Rename tests where the target does not exist. */ +static void +rename_without_existing_target (unsigned int flags) +{ + delete_all_files (); + support_write_file_string (old_path, ""); + TEST_COMPARE (renameat2 (AT_FDCWD, old_path, AT_FDCWD, new_path, flags), 0); + TEST_VERIFY (!file_exists (old_path)); + TEST_VERIFY (file_exists (new_path)); + + delete_all_files (); + support_write_file_string (old_path, ""); + TEST_COMPARE (renameat2 (directory_fd, "old", AT_FDCWD, new_path, flags), 0); + TEST_VERIFY (!file_exists (old_path)); + TEST_VERIFY (file_exists (new_path)); + + delete_all_files (); + support_write_file_string (old_path, ""); + TEST_COMPARE (renameat2 (directory_fd, "old", subdirectory_fd, "file", 0), + 0); + TEST_VERIFY (!file_exists (old_path)); + TEST_VERIFY (file_exists (subdir_path)); +} + +static int +do_test (void) +{ + /* Tests with zero flags argument. These are expected to succeed + because this renameat2 variant can be implemented with + renameat. */ + rename_without_existing_target (0); + + /* renameat2 without flags replaces an existing destination. */ + delete_all_files (); + support_write_file_string (old_path, "123"); + support_write_file_string (new_path, "1234"); + TEST_COMPARE (renameat2 (AT_FDCWD, old_path, AT_FDCWD, new_path, 0), 0); + TEST_VERIFY (!file_exists (old_path)); + check_size (new_path, 3); + + /* Now we need to check for kernel support of renameat2 with + flags. */ + delete_all_files (); + support_write_file_string (old_path, ""); + if (renameat2 (AT_FDCWD, old_path, AT_FDCWD, new_path, RENAME_NOREPLACE) + != 0) + { + if (errno == EINVAL) + puts ("warning: no support for renameat2 with flags"); + else + FAIL_EXIT1 ("renameat2 probe failed: %m"); + } + else + { + /* We have full renameat2 support. */ + rename_without_existing_target (RENAME_NOREPLACE); + + /* Now test RENAME_NOREPLACE with an existing target. */ + delete_all_files (); + support_write_file_string (old_path, "123"); + support_write_file_string (new_path, "1234"); + TEST_COMPARE (renameat2 (AT_FDCWD, old_path, AT_FDCWD, new_path, + RENAME_NOREPLACE), -1); + TEST_COMPARE (errno, EEXIST); + check_size (old_path, 3); + check_size (new_path, 4); + + delete_all_files (); + support_write_file_string (old_path, "123"); + support_write_file_string (new_path, "1234"); + TEST_COMPARE (renameat2 (directory_fd, "old", AT_FDCWD, new_path, + RENAME_NOREPLACE), -1); + TEST_COMPARE (errno, EEXIST); + check_size (old_path, 3); + check_size (new_path, 4); + + delete_all_files (); + support_write_file_string (old_path, "123"); + support_write_file_string (subdir_path, "1234"); + TEST_COMPARE (renameat2 (directory_fd, "old", subdirectory_fd, "file", + RENAME_NOREPLACE), -1); + TEST_COMPARE (errno, EEXIST); + check_size (old_path, 3); + check_size (subdir_path, 4); + + /* The flag combination of RENAME_NOREPLACE and RENAME_EXCHANGE + is invalid. */ + TEST_COMPARE (renameat2 (directory_fd, "ignored", + subdirectory_fd, "ignored", + RENAME_NOREPLACE | RENAME_EXCHANGE), -1); + TEST_COMPARE (errno, EINVAL); + } + + /* Create all the pathnames to avoid warnings from the test + harness. */ + support_write_file_string (old_path, ""); + support_write_file_string (new_path, ""); + support_write_file_string (subdir_path, ""); + + free (directory); + free (subdirectory); + free (old_path); + free (new_path); + free (subdir_path); + + xclose (directory_fd); + xclose (subdirectory_fd); + + return 0; +} + +#define PREPARE prepare +#include diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 57091fce00..a9089d9064 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2034,6 +2034,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/mach/hurd/renameat.c b/sysdeps/mach/hurd/renameat.c index 43609600d9..7985763f73 100644 --- a/sysdeps/mach/hurd/renameat.c +++ b/sysdeps/mach/hurd/renameat.c @@ -22,7 +22,7 @@ /* Rename the file OLD relative to OLDFD to NEW relative to NEWFD. */ int -renameat (int oldfd, const char *old, int newfd, const char *new) +__renameat (int oldfd, const char *old, int newfd, const char *new) { error_t err; file_t olddir, newdir; @@ -45,3 +45,5 @@ renameat (int oldfd, const char *old, int newfd, const char *new) return __hurd_fail (err); return 0; } +libc_hidden_def (__renameat) +weak_alias (__renameat, renameat) diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 884d0dfa95..7a272a19bb 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2132,3 +2132,4 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h index c2d4a9f55b..5781cffd5a 100644 --- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h +++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h @@ -35,6 +35,11 @@ #define __ASSUME_RECV_SYSCALL 1 #define __ASSUME_SEND_SYSCALL 1 +/* Support for the renameat2 syscall was added in 3.17. */ +#if __LINUX_KERNEL_VERSION < 0x031100 +# undef __ASSUME_RENAMEAT2 +#endif + /* Support for the execveat syscall was added in 4.2. */ #if __LINUX_KERNEL_VERSION < 0x040200 # undef __ASSUME_EXECVEAT diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 28d54b9794..23fec55d97 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2027,6 +2027,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index dfde3bd725..b203160889 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -117,6 +117,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 06b00f730a..64809ca403 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1874,6 +1874,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 1c1cc00d40..4a87f62ad9 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2039,6 +2039,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index f6e17a005f..6bdd0d0443 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1908,6 +1908,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index b90ea30195..86fc66574b 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -97,6 +97,11 @@ implementation based on p{read,write}v and returning an error for non supported flags. */ +/* Support for the renameat2 system call was added in kernel 3.15. */ +#if __LINUX_KERNEL_VERSION >= 0x030F00 +# define __ASSUME_RENAMEAT2 +#endif + /* Support for the execveat syscall was added in 3.19. */ #if __LINUX_KERNEL_VERSION >= 0x031300 # define __ASSUME_EXECVEAT 1 diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index ee054a618d..3226f916eb 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -118,6 +118,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 GLIBC_2.4 _IO_2_1_stdin_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 227a0581cb..b1074eeed1 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1983,6 +1983,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h index b13b863f06..7db3d05636 100644 --- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h +++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h @@ -48,6 +48,11 @@ # undef __ASSUME_SENDMMSG_SYSCALL #endif +/* Support for the renameat2 syscall was added in 3.17. */ +#if __LINUX_KERNEL_VERSION < 0x031100 +# undef __ASSUME_RENAMEAT2 +#endif + /* Support for the execveat syscall was added in 4.0. */ #if __LINUX_KERNEL_VERSION < 0x040000 # undef __ASSUME_EXECVEAT diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 18781b3017..b52fc7d6f7 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2124,3 +2124,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 2d86989cf2..718c74262a 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1961,6 +1961,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_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 b8b113e1a5..9b218a9435 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1959,6 +1959,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 6a3cd13e2d..5a90ab83e7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1967,6 +1967,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 596ec05379..3005fc9500 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1962,6 +1962,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 8da18eed57..a87fbbeb6b 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2165,3 +2165,4 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 555751eb12..d56f776a52 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1987,6 +1987,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_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 80324e41aa..2b5337aab6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1991,6 +1991,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 97b1d354af..d0dfde3897 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2222,3 +2222,4 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index 15be314921..d505ae0e7d 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -117,6 +117,7 @@ GLIBC_2.27 wcstof32x_l F GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 GLIBC_2.3 _IO_2_1_stdin_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/renameat.c b/sysdeps/unix/sysv/linux/renameat.c index 034432b934..f85c5ae0ec 100644 --- a/sysdeps/unix/sysv/linux/renameat.c +++ b/sysdeps/unix/sysv/linux/renameat.c @@ -22,7 +22,7 @@ #include int -renameat (int oldfd, const char *old, int newfd, const char *new) +__renameat (int oldfd, const char *old, int newfd, const char *new) { #ifdef __NR_renameat return INLINE_SYSCALL_CALL (renameat, oldfd, old, newfd, new); @@ -30,3 +30,5 @@ renameat (int oldfd, const char *old, int newfd, const char *new) return INLINE_SYSCALL_CALL (renameat2, oldfd, old, newfd, new, 0); #endif } +libc_hidden_def (__renameat) +weak_alias (__renameat, renameat) diff --git a/sysdeps/unix/sysv/linux/renameat2.c b/sysdeps/unix/sysv/linux/renameat2.c new file mode 100644 index 0000000000..919bb2a0d4 --- /dev/null +++ b/sysdeps/unix/sysv/linux/renameat2.c @@ -0,0 +1,44 @@ +/* Linux implementation for renameat2 function. + Copyright (C) 2018 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 + +int +renameat2 (int oldfd, const char *old, int newfd, const char *new, + unsigned int flags) +{ +#if !defined (__NR_renameat) || defined (__ASSUME_RENAMEAT2) + return INLINE_SYSCALL_CALL (renameat2, oldfd, old, newfd, new, flags); +#else + if (flags == 0) + return __renameat (oldfd, old, newfd, new); +# ifdef __NR_renameat2 + /* For non-zero flags, try the renameat2 system call. */ + int ret = INLINE_SYSCALL_CALL (renameat2, oldfd, old, newfd, new, flags); + if (ret != -1 || errno != ENOSYS) + /* Preserve non-error/non-ENOSYS return values. */ + return ret; +# endif + /* No kernel (header) support for renameat2. All flags are + unknown. */ + __set_errno (EINVAL); + return -1; +#endif +} diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 436b992251..33f751abc0 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2094,3 +2094,4 @@ GLIBC_2.27 xencrypt F GLIBC_2.27 xprt_register F GLIBC_2.27 xprt_unregister F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index f66715f0c9..c4ec93ff43 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1996,6 +1996,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index bd6242861b..2a6a0abde8 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1901,6 +1901,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h index b82d032e6b..05b7dcd037 100644 --- a/sysdeps/unix/sysv/linux/sh/kernel-features.h +++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h @@ -51,4 +51,9 @@ /* sh only supports ipc syscall. */ #undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS +/* Support for the renameat2 syscall was added in 4.8. */ +#if __LINUX_KERNEL_VERSION < 0x040800 +# undef __ASSUME_RENAMEAT2 +#endif + #endif diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index f2f070fbce..8de0d1711a 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1878,6 +1878,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h index 64d714036e..91990a716f 100644 --- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h +++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h @@ -41,6 +41,11 @@ /* sparc only supports ipc syscall. */ #undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS +/* Support for the renameat2 syscall was added in 3.16. */ +#if __LINUX_KERNEL_VERSION < 0x031000 +# undef __ASSUME_RENAMEAT2 +#endif + /* SPARC kernel Kconfig does not define CONFIG_CLONE_BACKWARDS, however it has the same ABI as if it did, implemented by sparc-specific code (sparc_do_fork). diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 265087f6a8..9858460c9f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1990,6 +1990,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 16a69812cb..a22b8fb7ca 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1931,6 +1931,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index fa8c198d13..d5d71cccba 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1889,6 +1889,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 2536971682..e6ad42440e 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2140,3 +2140,4 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F +GLIBC_2.28 renameat2 F -- cgit v1.2.3 From fd70af45528d59a00eb3190ef6706cb299488fcd Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Tue, 10 Jul 2018 16:14:45 +0200 Subject: Add the statx function --- ChangeLog | 26 ++++ NEWS | 5 + include/bits/statx.h | 1 + io/Makefile | 5 +- io/Versions | 1 + io/bits/statx.h | 91 ++++++++++++ io/fcntl.h | 4 + io/statx.c | 29 ++++ io/statx_generic.c | 81 +++++++++++ io/sys/stat.h | 4 + io/tst-statx.c | 157 +++++++++++++++++++++ manual/filesys.texi | 1 + sysdeps/mach/hurd/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/kernel-features.h | 5 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/libc.abilist | 1 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/kernel-features.h | 3 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/kernel-features.h | 5 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + .../unix/sysv/linux/microblaze/kernel-features.h | 5 + sysdeps/unix/sysv/linux/microblaze/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 1 + .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/statx.c | 41 ++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 44 files changed, 490 insertions(+), 1 deletion(-) create mode 100644 include/bits/statx.h create mode 100644 io/bits/statx.h create mode 100644 io/statx.c create mode 100644 io/statx_generic.c create mode 100644 io/tst-statx.c create mode 100644 sysdeps/unix/sysv/linux/statx.c (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index f21b5ad6ff..8a4f85efec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2018-07-10 Florian Weimer + + * io/Makefile (routines): Add statx. + (tests-internal): Add tst-statx. + * io/Versions (GLIBC_2.28): Export statx. + * io/bits/statx.h: New file. + * io/sys/stat.h [__USE_GNU]: Include it. + * io/fcntl.h [__USE_GNU] (AT_STATX_SYNC_TYPE) + (AT_STATX_SYNC_AS_STAT, AT_STATX_FORCE_SYNC, AT_STATX_DONT_SYNC): + Define. + * io/statx.c: New file. + * io/statx_generic.: Likewise. + * io/tst-statx.: Likewise. + * include/bits/statx.h: Likewise. + * sysdeps/unix/sysv/linux/kernel-features.h + [__LINUX_KERNEL_VERSION >= 0x040B00] (__ASSUME_STATX): Define. + * sysdeps/unix/sysv/linux/alpha/kernel-features.h + [__LINUX_KERNEL_VERSION < 0x040D00] (__ASSUME_STATX): Undefine. + * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_STATX): + Undefine. + * sysdeps/unix/sysv/linux/microblaze/kernel-features.h + [__LINUX_KERNEL_VERSION < 0x040C00] (__ASSUME_STATX): Undefine. + * sysdeps/unix/sysv/linux/statx.c: New file. + * manual/filesys.texi: Note that statx is undocumented. + * sysdeps/**/libc*.abilist: Update. + 2018-07-10 Adhemerval Zanella * sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c: Add a comment about diff --git a/NEWS b/NEWS index 716d11cda1..5de2c2816f 100644 --- a/NEWS +++ b/NEWS @@ -55,6 +55,11 @@ Major new features: flags and a non-existing destination (and therefore has a race condition that can clobber the destination inadvertently). +* The statx function has been added, a variant of the fstatat64 + function with an additional flags argument. If there is no direct + kernel support for statx, glibc provides basic stat support based on + the fstatat64 function. + * IDN domain names in getaddrinfo and getnameinfo now use the system libidn2 library if installed. libidn2 version 2.0.5 or later is recommended. If libidn2 is not available, internationalized domain names are not encoded diff --git a/include/bits/statx.h b/include/bits/statx.h new file mode 100644 index 0000000000..8ec78a4f37 --- /dev/null +++ b/include/bits/statx.h @@ -0,0 +1 @@ +#include diff --git a/io/Makefile b/io/Makefile index 4a0d8fea09..f5b1b61d4e 100644 --- a/io/Makefile +++ b/io/Makefile @@ -31,7 +31,7 @@ routines := \ utime \ mkfifo mkfifoat \ stat fstat lstat stat64 fstat64 lstat64 fstatat fstatat64 \ - xstat fxstat lxstat xstat64 fxstat64 lxstat64 \ + xstat fxstat lxstat xstat64 fxstat64 lxstat64 statx \ mknod mknodat xmknod xmknodat \ fxstatat fxstatat64 \ statfs fstatfs statfs64 fstatfs64 \ @@ -78,6 +78,9 @@ tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \ tests-static += tst-copy_file_range-compat tests-internal += tst-copy_file_range-compat +# Likewise for statx, but we do not need static linking here. +tests-internal += tst-statx + ifeq ($(run-built-tests),yes) tests-special += $(objpfx)ftwtest.out endif diff --git a/io/Versions b/io/Versions index 98037fbbfc..f7e5dbe49e 100644 --- a/io/Versions +++ b/io/Versions @@ -130,6 +130,7 @@ libc { } GLIBC_2.28 { fcntl64; + statx; } GLIBC_PRIVATE { __libc_fcntl64; diff --git a/io/bits/statx.h b/io/bits/statx.h new file mode 100644 index 0000000000..e31254e361 --- /dev/null +++ b/io/bits/statx.h @@ -0,0 +1,91 @@ +/* statx-related definitions and declarations. + Copyright (C) 2018 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 + . */ + +/* This interface is based on in Linux. */ + +#ifndef _SYS_STAT_H +# error Never include directly, include instead. +#endif + +struct statx_timestamp +{ + __int64_t tv_sec; + __uint32_t tv_nsec; + __int32_t __statx_timestamp_pad1[1]; +}; + +/* Warning: The kernel may add additional fields to this struct in the + future. Only use this struct for calling the statx function, not + for storing data. (Expansion will be controlled by the mask + argument of the statx function.) */ +struct statx +{ + __uint32_t stx_mask; + __uint32_t stx_blksize; + __uint64_t stx_attributes; + __uint32_t stx_nlink; + __uint32_t stx_uid; + __uint32_t stx_gid; + __uint16_t stx_mode; + __uint16_t __statx_pad1[1]; + __uint64_t stx_ino; + __uint64_t stx_size; + __uint64_t stx_blocks; + __uint64_t stx_attributes_mask; + struct statx_timestamp stx_atime; + struct statx_timestamp stx_btime; + struct statx_timestamp stx_ctime; + struct statx_timestamp stx_mtime; + __uint32_t stx_rdev_major; + __uint32_t stx_rdev_minor; + __uint32_t stx_dev_major; + __uint32_t stx_dev_minor; + __uint64_t __statx_pad2[14]; +}; + +#define STATX_TYPE 0x0001U +#define STATX_MODE 0x0002U +#define STATX_NLINK 0x0004U +#define STATX_UID 0x0008U +#define STATX_GID 0x0010U +#define STATX_ATIME 0x0020U +#define STATX_MTIME 0x0040U +#define STATX_CTIME 0x0080U +#define STATX_INO 0x0100U +#define STATX_SIZE 0x0200U +#define STATX_BLOCKS 0x0400U +#define STATX_BASIC_STATS 0x07ffU +#define STATX_ALL 0x0fffU +#define STATX_BTIME 0x0800U +#define STATX__RESERVED 0x80000000U + +#define STATX_ATTR_COMPRESSED 0x0004 +#define STATX_ATTR_IMMUTABLE 0x0010 +#define STATX_ATTR_APPEND 0x0020 +#define STATX_ATTR_NODUMP 0x0040 +#define STATX_ATTR_ENCRYPTED 0x0800 +#define STATX_ATTR_AUTOMOUNT 0x1000 + +__BEGIN_DECLS + +/* Fill *BUF with information about PATH in DIRFD. */ +int statx (int __dirfd, const char *__restrict __path, int __flags, + unsigned int __mask, struct statx *__restrict __buf) + __THROW __nonnull ((2, 5)); + +__END_DECLS diff --git a/io/fcntl.h b/io/fcntl.h index 3afc62011a..6b0e9fa1fa 100644 --- a/io/fcntl.h +++ b/io/fcntl.h @@ -157,6 +157,10 @@ typedef __pid_t pid_t; # define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal. */ # define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname. */ +# define AT_STATX_SYNC_TYPE 0x6000 +# define AT_STATX_SYNC_AS_STAT 0x0000 +# define AT_STATX_FORCE_SYNC 0x2000 +# define AT_STATX_DONT_SYNC 0x4000 # endif # define AT_EACCESS 0x200 /* Test access permitted for effective IDs, not real IDs. */ diff --git a/io/statx.c b/io/statx.c new file mode 100644 index 0000000000..0b90cd00d1 --- /dev/null +++ b/io/statx.c @@ -0,0 +1,29 @@ +/* Generic statx implementation. + Copyright (C) 2018 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 "statx_generic.c" + +int +statx (int fd, const char *path, int flags, + unsigned int mask, struct statx *buf) +{ + return statx_generic (fd, path, flags, mask, buf); +} diff --git a/io/statx_generic.c b/io/statx_generic.c new file mode 100644 index 0000000000..df327f8c52 --- /dev/null +++ b/io/statx_generic.c @@ -0,0 +1,81 @@ +/* Generic implementation of statx based on fstatat64. + Copyright (C) 2018 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 + +static inline struct statx_timestamp +statx_convert_timestamp (struct timespec tv) +{ + return (struct statx_timestamp) { tv.tv_sec, tv.tv_nsec }; +} + +/* Approximate emulation of statx. This will always fill in + POSIX-mandated attributes even if the underlying file system does + not actually support it (for example, GID and UID on file systems + without UNIX-style permissions). */ +static __attribute__ ((unused)) int +statx_generic (int fd, const char *path, int flags, + unsigned int mask, struct statx *buf) +{ + /* Flags which need to be cleared before passing them to + fstatat64. */ + static const int clear_flags = AT_STATX_SYNC_AS_STAT; + + /* Flags supported by our emulation. */ + static const int supported_flags + = AT_EMPTY_PATH | AT_NO_AUTOMOUNT | AT_SYMLINK_NOFOLLOW | clear_flags; + + if (__glibc_unlikely ((flags & ~supported_flags) != 0)) + { + __set_errno (EINVAL); + return -1; + } + + struct stat64 st; + int ret = __fstatat64 (fd, path, &st, flags & ~clear_flags); + if (ret != 0) + return ret; + + /* The interface is defined in such a way that unused (padding) + fields have to be cleared. STATX_BASIC_STATS corresponds to the + data which is available via fstatat64. */ + *buf = (struct statx) + { + .stx_mask = STATX_BASIC_STATS, + .stx_blksize = st.st_blksize, + .stx_nlink = st.st_nlink, + .stx_uid = st.st_uid, + .stx_gid = st.st_gid, + .stx_mode = st.st_mode, + .stx_ino = st.st_ino, + .stx_size = st.st_size, + .stx_blocks = st.st_blocks, + .stx_atime = statx_convert_timestamp (st.st_atim), + .stx_ctime = statx_convert_timestamp (st.st_ctim), + .stx_mtime = statx_convert_timestamp (st.st_mtim), + .stx_rdev_major = major (st.st_rdev), + .stx_rdev_minor = minor (st.st_rdev), + .stx_dev_major = major (st.st_dev), + .stx_dev_minor = minor (st.st_dev), + }; + + return 0; +} diff --git a/io/sys/stat.h b/io/sys/stat.h index 90c403cfd6..762c8538ba 100644 --- a/io/sys/stat.h +++ b/io/sys/stat.h @@ -442,6 +442,10 @@ extern int __xmknodat (int __ver, int __fd, const char *__path, __mode_t __mode, __dev_t *__dev) __THROW __nonnull ((3, 5)); +#ifdef __USE_GNU +# include +#endif + #ifdef __USE_EXTERN_INLINES /* Inlined versions of the real stat and mknod functions. */ diff --git a/io/tst-statx.c b/io/tst-statx.c new file mode 100644 index 0000000000..61bf31d177 --- /dev/null +++ b/io/tst-statx.c @@ -0,0 +1,157 @@ +/* Basic test of statx system call. + Copyright (C) 2018 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Ensure that the types have the kernel-expected layout. */ +_Static_assert (sizeof (struct statx_timestamp) == 16, "statx_timestamp size"); +_Static_assert (sizeof (struct statx) == 256, "statx size"); +_Static_assert (offsetof (struct statx, stx_nlink) == 16, "statx nlink"); +_Static_assert (offsetof (struct statx, stx_ino) == 32, "statx ino"); +_Static_assert (offsetof (struct statx, stx_atime) == 64, "statx atime"); +_Static_assert (offsetof (struct statx, stx_rdev_major) == 128, "statx rdev"); +_Static_assert (offsetof (struct statx, __statx_pad2) == 144, "statx pad2"); + +#include "statx_generic.c" + +typedef int (*statx_function) (int, const char *, int, unsigned int, + struct statx *); + +/* Return true if we have a real implementation of statx. */ +static bool +kernel_supports_statx (void) +{ +#ifdef __NR_statx + struct statx buf; + return syscall (__NR_statx, 0, "", AT_EMPTY_PATH, 0, &buf) == 0 + || errno != ENOSYS; +#else + return false; +#endif +} + +/* Tests which apply to both implementations. */ +static void +both_implementations_tests (statx_function impl, const char *path, int fd) +{ + uint64_t ino; + { + struct statx buf = { 0, }; + TEST_COMPARE (statx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &buf), 0); + TEST_COMPARE (buf.stx_size, 3); + ino = buf.stx_ino; + } + { + struct statx buf = { 0, }; + TEST_COMPARE (statx (AT_FDCWD, path, 0, STATX_BASIC_STATS, &buf), 0); + TEST_COMPARE (buf.stx_size, 3); + TEST_COMPARE (buf.stx_ino, ino); + } + { + struct statx stx = { 0, }; + TEST_COMPARE (statx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &stx), 0); + struct stat64 st; + xfstat (fd, &st); + TEST_COMPARE (stx.stx_mode, st.st_mode); + TEST_COMPARE (stx.stx_dev_major, major (st.st_dev)); + TEST_COMPARE (stx.stx_dev_minor, minor (st.st_dev)); + } + { + struct statx stx = { 0, }; + TEST_COMPARE (statx (AT_FDCWD, "/dev/null", 0, STATX_BASIC_STATS, &stx), + 0); + struct stat64 st; + xstat ("/dev/null", &st); + TEST_COMPARE (stx.stx_mode, st.st_mode); + TEST_COMPARE (stx.stx_dev_major, major (st.st_dev)); + TEST_COMPARE (stx.stx_dev_minor, minor (st.st_dev)); + TEST_COMPARE (stx.stx_rdev_major, major (st.st_rdev)); + TEST_COMPARE (stx.stx_rdev_minor, minor (st.st_rdev)); + } +} + +/* Tests which apply only to the non-kernel (generic) + implementation. */ +static void +non_kernel_tests (statx_function impl, int fd) +{ + /* The non-kernel implementation must always fail for explicit sync + flags. */ + struct statx buf; + errno = 0; + TEST_COMPARE (impl (fd, "", AT_EMPTY_PATH | AT_STATX_FORCE_SYNC, + STATX_BASIC_STATS, &buf), -1); + TEST_COMPARE (errno, EINVAL); + errno = 0; + TEST_COMPARE (impl (fd, "", AT_EMPTY_PATH | AT_STATX_DONT_SYNC, + STATX_BASIC_STATS, &buf), -1); + TEST_COMPARE (errno, EINVAL); +} + +static int +do_test (void) +{ + char *path; + int fd = create_temp_file ("tst-statx-", &path); + TEST_VERIFY_EXIT (fd >= 0); + support_write_file_string (path, "abc"); + + both_implementations_tests (&statx, path, fd); + both_implementations_tests (&statx_generic, path, fd); + + if (kernel_supports_statx ()) + { + puts ("info: kernel supports statx"); + struct statx buf; + buf.stx_size = 0; + TEST_COMPARE (statx (fd, "", AT_EMPTY_PATH | AT_STATX_FORCE_SYNC, + STATX_BASIC_STATS, &buf), + 0); + TEST_COMPARE (buf.stx_size, 3); + buf.stx_size = 0; + TEST_COMPARE (statx (fd, "", AT_EMPTY_PATH | AT_STATX_DONT_SYNC, + STATX_BASIC_STATS, &buf), + 0); + TEST_COMPARE (buf.stx_size, 3); + } + else + { + puts ("info: kernel does not support statx"); + non_kernel_tests (&statx, fd); + } + non_kernel_tests (&statx_generic, fd); + + xclose (fd); + free (path); + + return 0; +} + +#include diff --git a/manual/filesys.texi b/manual/filesys.texi index db2f1041de..ccda36cf84 100644 --- a/manual/filesys.texi +++ b/manual/filesys.texi @@ -3545,6 +3545,7 @@ The @code{mkdtemp} function comes from OpenBSD. @c fchownat @c futimesat @c fstatat (there's a commented-out safety assessment for this one) +@c statx @c mkdirat @c mkfifoat @c name_to_handle_at diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index a9089d9064..9a3aac7a92 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2035,6 +2035,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 7a272a19bb..e92cd0ab9e 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2133,3 +2133,4 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h index 5781cffd5a..f63be39d1b 100644 --- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h +++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h @@ -45,4 +45,9 @@ # undef __ASSUME_EXECVEAT #endif +/* Support for statx was added in kernel 4.13. */ +#if __LINUX_KERNEL_VERSION < 0x040D00 +# undef __ASSUME_STATX +#endif + #endif /* _KERNEL_FEATURES_H */ diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 23fec55d97..ba9473940a 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2028,6 +2028,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index b203160889..dc71f1bb7f 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -118,6 +118,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 64809ca403..6a34090733 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1875,6 +1875,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 4a87f62ad9..30f8ddc682 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2040,6 +2040,7 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/sysdeps/unix/sysv/linux/ia64/kernel-features.h index 04cdf43511..4fde73fba1 100644 --- a/sysdeps/unix/sysv/linux/ia64/kernel-features.h +++ b/sysdeps/unix/sysv/linux/ia64/kernel-features.h @@ -26,6 +26,9 @@ #define __ASSUME_SEND_SYSCALL 1 #define __ASSUME_ACCEPT4_SYSCALL 1 +/* No statx system call on ia64 yet. */ +#undef __ASSUME_STATX + #undef __ASSUME_CLONE_DEFAULT #define __ASSUME_CLONE2 diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 6bdd0d0443..8f7aaff388 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1909,6 +1909,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 86fc66574b..5543d92d7e 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -115,6 +115,11 @@ # define __ASSUME_COPY_FILE_RANGE 1 #endif +/* Support for statx was added in kernel 4.11. */ +#if __LINUX_KERNEL_VERSION >= 0x040B00 +# define __ASSUME_STATX 1 +#endif + /* Support for clone call used on fork. The signature varies across the architectures with current 4 different variants: diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 3226f916eb..1b057ec6a6 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -119,6 +119,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 GLIBC_2.4 _IO_2_1_stdin_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index b1074eeed1..70232f2d16 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1984,6 +1984,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h index 7db3d05636..e8e2ac6a87 100644 --- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h +++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h @@ -63,5 +63,10 @@ # undef __ASSUME_COPY_FILE_RANGE #endif +/* Support for statx was added in kernel 4.12. */ +#if __LINUX_KERNEL_VERSION < 0X040C00 +# undef __ASSUME_STATX +#endif + #undef __ASSUME_CLONE_DEFAULT #define __ASSUME_CLONE_BACKWARDS3 diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index b52fc7d6f7..6f295789c6 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2125,3 +2125,4 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 718c74262a..88f79b7d9d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1962,6 +1962,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_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 9b218a9435..563b3101b7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1960,6 +1960,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 5a90ab83e7..5cdf8c2232 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1968,6 +1968,7 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 3005fc9500..ce27832705 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1963,6 +1963,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index a87fbbeb6b..78cc9cfff3 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2166,3 +2166,4 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index d56f776a52..9ae40a9470 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1988,6 +1988,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_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 2b5337aab6..863f85b430 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1992,6 +1992,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index d0dfde3897..4cc5a4473b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2223,3 +2223,4 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index d505ae0e7d..a3cd3229c9 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -118,6 +118,7 @@ GLIBC_2.27 wcstof64 F GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 GLIBC_2.3 _IO_2_1_stdin_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 33f751abc0..f094b0f3cd 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2095,3 +2095,4 @@ GLIBC_2.27 xprt_register F GLIBC_2.27 xprt_unregister F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index c4ec93ff43..26a95e6fda 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1997,6 +1997,7 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 2a6a0abde8..650385b607 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1902,6 +1902,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index 8de0d1711a..cd349ccec1 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1879,6 +1879,7 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index 9858460c9f..e0438402b3 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1991,6 +1991,7 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index a22b8fb7ca..9f036ddf4b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1932,6 +1932,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/statx.c b/sysdeps/unix/sysv/linux/statx.c new file mode 100644 index 0000000000..76761d6ef2 --- /dev/null +++ b/sysdeps/unix/sysv/linux/statx.c @@ -0,0 +1,41 @@ +/* Linux statx implementation. + Copyright (C) 2018 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 "statx_generic.c" + +int +statx (int fd, const char *path, int flags, + unsigned int mask, struct statx *buf) +{ +#ifdef __NR_statx + int ret = INLINE_SYSCALL_CALL (statx, fd, path, flags, mask, buf); +# ifdef __ASSUME_STATX + return ret; +# else + if (ret == 0 || errno != ENOSYS) + /* Preserve non-error/non-ENOSYS return values. */ + return ret; +# endif +#endif +#ifndef __ASSUME_STATX + return statx_generic (fd, path, flags, mask, buf); +#endif +} diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index d5d71cccba..2df20ebafd 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1890,6 +1890,7 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index e6ad42440e..83e15f84fc 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2141,3 +2141,4 @@ GLIBC_2.27 wcstof64x F GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F +GLIBC_2.28 statx F -- cgit v1.2.3 From c6dd669bed2ebdd0303e880214f3907477fc72d1 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 27 Jun 2017 11:02:16 -0300 Subject: nptl: Add abilist symbols for C11 threads This patch adds the required abilist symbols for C11 thread support. Checked with a build for all major ABI (aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabi, i386-linux-gnu, ia64-linux-gnu, m68k-linux-gnu, microblaze-linux-gnu [1], mips{64}-linux-gnu, nios2-linux-gnu, powerpc{64le}-linux-gnu, s390{x}-linux-gnu, sparc{64}-linux-gnu, and x86_64-linux-gnu). Also ran a full check on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu, arm-linux-gnueabhf, and powerpc64le-linux-gnu. [BZ #14092] * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28] (thrd_current, thrd_equal, thrd_sleep, thrd_yield): Add C11 thread symbols. * 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/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/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/riscv/rv64/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/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/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist [[GLIBC_2.28] (call_once, cnd_broadcast, cnd_destroy, cnd_init, cnd_signal, cnd_timedwait, cnd_wait, mtx_destroy, mtx_init, mtx_lock, mtx_timedlock, mtx_trylock, mtx_unlokc, thrd_create, thrd_detach, thrd_exit, thrd_join, tss_create, tss_delete, tss_get, tss_set): Likewise. * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise. ikewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise. --- ChangeLog | 64 ++++++++++++++++++++++ sysdeps/unix/sysv/linux/aarch64/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/aarch64/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/alpha/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/alpha/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/arm/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/arm/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/hppa/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/i386/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/i386/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/ia64/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/ia64/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 4 ++ .../sysv/linux/m68k/coldfire/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 4 ++ .../unix/sysv/linux/m68k/m680x0/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/microblaze/libc.abilist | 4 ++ .../unix/sysv/linux/microblaze/libpthread.abilist | 21 +++++++ .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 4 ++ .../unix/sysv/linux/mips/mips32/libpthread.abilist | 21 +++++++ .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 4 ++ .../unix/sysv/linux/mips/mips64/libpthread.abilist | 21 +++++++ .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 4 ++ .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/nios2/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/nios2/libpthread.abilist | 21 +++++++ .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 4 ++ .../linux/powerpc/powerpc32/libpthread.abilist | 21 +++++++ .../linux/powerpc/powerpc32/nofpu/libc.abilist | 4 ++ .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 4 ++ .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 4 ++ .../linux/powerpc/powerpc64/libpthread-le.abilist | 21 +++++++ .../linux/powerpc/powerpc64/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 4 ++ .../unix/sysv/linux/riscv/rv64/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 4 ++ .../sysv/linux/s390/s390-32/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 4 ++ .../sysv/linux/s390/s390-64/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/sh/libc.abilist | 4 ++ sysdeps/unix/sysv/linux/sh/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 4 ++ .../sysv/linux/sparc/sparc32/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 4 ++ .../sysv/linux/sparc/sparc64/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 4 ++ .../unix/sysv/linux/x86_64/64/libpthread.abilist | 21 +++++++ sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 4 ++ .../unix/sysv/linux/x86_64/x32/libpthread.abilist | 21 +++++++ 50 files changed, 651 insertions(+) (limited to 'sysdeps/unix/sysv/linux/alpha/libc.abilist') diff --git a/ChangeLog b/ChangeLog index 8003d5fbf3..e24eac4d9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,69 @@ 2018-07-24 Adhemerval Zanella + [BZ #14092] + * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28] + (thrd_current, thrd_equal, thrd_sleep, thrd_yield): Add C11 thread + symbols. + * 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/mips64/n32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/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/riscv/rv64/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/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/x86_64/64/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist [[GLIBC_2.28] + (call_once, cnd_broadcast, cnd_destroy, cnd_init, cnd_signal, + cnd_timedwait, cnd_wait, mtx_destroy, mtx_init, mtx_lock, + mtx_timedlock, mtx_trylock, mtx_unlokc, thrd_create, thrd_detach, + thrd_exit, thrd_join, tss_create, tss_delete, tss_get, tss_set): + Likewise. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Likewise. + ikewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist: + Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Likewise. + [BZ #14092] * conform/data/threads.h-data (thread_local): New macro. (TSS_DTOR_ITERATIONS): Likewise. diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index e92cd0ab9e..15f966f841 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2134,3 +2134,7 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist index 3fd58aea0d..9a9e4cee85 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist @@ -222,3 +222,24 @@ GLIBC_2.17 waitpid F GLIBC_2.17 write F GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index ba9473940a..e22b91655d 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2029,6 +2029,10 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist index 858fc066ca..b413007ccb 100644 --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist @@ -206,6 +206,27 @@ GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/arm/libc.abilist b/sysdeps/unix/sysv/linux/arm/libc.abilist index dc71f1bb7f..a231812eea 100644 --- a/sysdeps/unix/sysv/linux/arm/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/libc.abilist @@ -119,6 +119,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0xa0 GLIBC_2.4 _IO_2_1_stdin_ D 0xa0 diff --git a/sysdeps/unix/sysv/linux/arm/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/libpthread.abilist index 85bb1dee63..af82a4c632 100644 --- a/sysdeps/unix/sysv/linux/arm/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/arm/libpthread.abilist @@ -6,6 +6,27 @@ GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.4 _IO_flockfile F GLIBC_2.4 _IO_ftrylockfile F GLIBC_2.4 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 6a34090733..24b11b15c0 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -1876,6 +1876,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist index 4d90640ea2..bcba07f575 100644 --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist @@ -198,6 +198,27 @@ GLIBC_2.2 waitpid F GLIBC_2.2 write F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 30f8ddc682..9762c81365 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2041,6 +2041,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist index a69bd8fdbe..bece86d246 100644 --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist @@ -206,6 +206,27 @@ GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index 8f7aaff388..50c94adff9 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -1910,6 +1910,10 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist index bac572c7fa..ccc9449826 100644 --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist @@ -198,6 +198,27 @@ GLIBC_2.2 waitpid F GLIBC_2.2 write F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index 1b057ec6a6..f57be98e49 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -120,6 +120,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.4 _Exit F GLIBC_2.4 _IO_2_1_stderr_ D 0x98 GLIBC_2.4 _IO_2_1_stdin_ D 0x98 diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist index 85bb1dee63..af82a4c632 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist @@ -6,6 +6,27 @@ GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.4 _IO_flockfile F GLIBC_2.4 _IO_ftrylockfile F GLIBC_2.4 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 70232f2d16..ddc7ebca67 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -1985,6 +1985,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist index a69bd8fdbe..bece86d246 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist @@ -206,6 +206,27 @@ GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 6f295789c6..daed511f00 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libc.abilist @@ -2126,3 +2126,7 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F diff --git a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist index 6f80530292..5067375d23 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist @@ -222,3 +222,24 @@ GLIBC_2.18 vfork F GLIBC_2.18 wait F GLIBC_2.18 waitpid F GLIBC_2.18 write F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 88f79b7d9d..dda9797e0e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -1963,6 +1963,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist index 2cb7741732..02144967c6 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist @@ -206,6 +206,27 @@ GLIBC_2.2 sem_unlink F GLIBC_2.2 sem_wait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 563b3101b7..42e930d565 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -1961,6 +1961,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist index 2cb7741732..02144967c6 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist @@ -206,6 +206,27 @@ GLIBC_2.2 sem_unlink F GLIBC_2.2 sem_wait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index 5cdf8c2232..f89b44f3a1 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -1969,6 +1969,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index ce27832705..1486af11d7 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -1964,6 +1964,10 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 78cc9cfff3..aab1c44e46 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2167,3 +2167,7 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist index 3807106f39..78cac2ae27 100644 --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist @@ -220,3 +220,24 @@ GLIBC_2.21 tcdrain F GLIBC_2.21 wait F GLIBC_2.21 waitpid F GLIBC_2.21 write F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 9ae40a9470..45839ed25b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -1989,6 +1989,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist index e51daee353..09e8447b06 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist @@ -206,6 +206,27 @@ GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 863f85b430..344e5ae87c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -1993,6 +1993,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist index 4cc5a4473b..e26930e728 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -2224,3 +2224,7 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist index a3cd3229c9..8c1781adf4 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -119,6 +119,10 @@ GLIBC_2.27 wcstof64_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 _Exit F GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 GLIBC_2.3 _IO_2_1_stdin_ D 0xe0 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist index 3fd58aea0d..9a9e4cee85 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist @@ -222,3 +222,24 @@ GLIBC_2.17 waitpid F GLIBC_2.17 write F GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist index 8705a42ef2..8300958d47 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist @@ -6,6 +6,27 @@ GLIBC_2.12 pthread_mutexattr_setrobust F GLIBC_2.12 pthread_setname_np F GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3 _IO_flockfile F GLIBC_2.3 _IO_ftrylockfile F GLIBC_2.3 _IO_funlockfile F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index f094b0f3cd..daacceebd6 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2096,3 +2096,7 @@ GLIBC_2.27 xprt_unregister F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist index 0217e5d0cd..c370fda73d 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist @@ -214,3 +214,24 @@ GLIBC_2.27 tcdrain F GLIBC_2.27 wait F GLIBC_2.27 waitpid F GLIBC_2.27 write F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index 26a95e6fda..3a5ec2a1e4 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -1998,6 +1998,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist index 5fad7fd12d..d05468f3b2 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist @@ -208,6 +208,27 @@ GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index 650385b607..3b5465558b 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -1903,6 +1903,10 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist index a0cc88e528..e8161aa747 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist @@ -200,6 +200,27 @@ GLIBC_2.2 waitpid F GLIBC_2.2 write F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/sh/libc.abilist b/sysdeps/unix/sysv/linux/sh/libc.abilist index cd349ccec1..1f4e648baa 100644 --- a/sysdeps/unix/sysv/linux/sh/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/libc.abilist @@ -1880,6 +1880,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sh/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/libpthread.abilist index 4d90640ea2..bcba07f575 100644 --- a/sysdeps/unix/sysv/linux/sh/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/sh/libpthread.abilist @@ -198,6 +198,27 @@ GLIBC_2.2 waitpid F GLIBC_2.2 write F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index e0438402b3..d308ac8b05 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -1992,6 +1992,10 @@ GLIBC_2.28 fcntl F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist index 858fc066ca..b413007ccb 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist @@ -206,6 +206,27 @@ GLIBC_2.2 pwrite64 F GLIBC_2.2 sem_timedwait F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 9f036ddf4b..6731ebfc28 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1933,6 +1933,10 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist index bac572c7fa..ccc9449826 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist @@ -198,6 +198,27 @@ GLIBC_2.2 waitpid F GLIBC_2.2 write F GLIBC_2.2.3 pthread_getattr_np F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 2df20ebafd..816e4a7426 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -1891,6 +1891,10 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F GLIBC_2.3 __ctype_b_loc F GLIBC_2.3 __ctype_tolower_loc F GLIBC_2.3 __ctype_toupper_loc F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist index 4407927e34..931c8277a8 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist @@ -198,6 +198,27 @@ GLIBC_2.2.5 wait F GLIBC_2.2.5 waitpid F GLIBC_2.2.5 write F GLIBC_2.2.6 __nanosleep F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F GLIBC_2.3.2 pthread_cond_broadcast F GLIBC_2.3.2 pthread_cond_destroy F GLIBC_2.3.2 pthread_cond_init F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 83e15f84fc..6fee16a850 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2142,3 +2142,7 @@ GLIBC_2.27 wcstof64x_l F GLIBC_2.28 fcntl64 F GLIBC_2.28 renameat2 F GLIBC_2.28 statx F +GLIBC_2.28 thrd_current F +GLIBC_2.28 thrd_equal F +GLIBC_2.28 thrd_sleep F +GLIBC_2.28 thrd_yield F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist index 7f818c82c2..c09c9b015a 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist @@ -222,3 +222,24 @@ GLIBC_2.16 waitpid F GLIBC_2.16 write F GLIBC_2.18 pthread_getattr_default_np F GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.28 call_once F +GLIBC_2.28 cnd_broadcast F +GLIBC_2.28 cnd_destroy F +GLIBC_2.28 cnd_init F +GLIBC_2.28 cnd_signal F +GLIBC_2.28 cnd_timedwait F +GLIBC_2.28 cnd_wait F +GLIBC_2.28 mtx_destroy F +GLIBC_2.28 mtx_init F +GLIBC_2.28 mtx_lock F +GLIBC_2.28 mtx_timedlock F +GLIBC_2.28 mtx_trylock F +GLIBC_2.28 mtx_unlock F +GLIBC_2.28 thrd_create F +GLIBC_2.28 thrd_detach F +GLIBC_2.28 thrd_exit F +GLIBC_2.28 thrd_join F +GLIBC_2.28 tss_create F +GLIBC_2.28 tss_delete F +GLIBC_2.28 tss_get F +GLIBC_2.28 tss_set F -- cgit v1.2.3