From: Zack Weinberg Date: Thu, 28 Apr 2016 16:29:55 +0000 (-0400) Subject: Minimize sysdeps code involved in defining major/minor/makedev. X-Git-Tag: glibc-2.25~651 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=63eb8df85a17f7f966d4daa4cf44c8e956636a86;p=thirdparty%2Fglibc.git 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. --- diff --git a/ChangeLog b/ChangeLog index ceb28b5c747..d6a30781b4a 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 00000000000..e2c0bc2f65a --- /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 00000000000..87813c5b531 --- /dev/null +++ b/include/sys/sysmacros.h @@ -0,0 +1 @@ +#include diff --git a/misc/Makefile b/misc/Makefile index 56e20ce521d..3d2ebb8e456 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 671f4870e93..f2c90fffda5 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/sysdeps/unix/sysv/linux/makedev.c b/misc/makedev.c similarity index 62% rename from sysdeps/unix/sysv/linux/makedev.c rename to misc/makedev.c index 68c18ca3336..7303fb67a2d 100644 --- a/sysdeps/unix/sysv/linux/makedev.c +++ b/misc/makedev.c @@ -16,25 +16,15 @@ License along with the GNU C Library; if not, see . */ -#include -#include +#include -unsigned int -gnu_dev_major (unsigned long long int dev) -{ - return ((dev >> 8) & 0xfff) | ((unsigned int) (dev >> 32) & ~0xfff); -} +#undef __USE_EXTERN_INLINES +#define __SYSMACROS_NEED_IMPLEMENTATION +#include -unsigned int -gnu_dev_minor (unsigned long long int dev) -{ - return (dev & 0xff) | ((unsigned int) (dev >> 12) & ~0xff); -} +#define OUT_OF_LINE_IMPL_TEMPL(rtype, name, proto) \ + rtype gnu_dev_##name proto -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)); -} +__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 00000000000..dc2eb837a14 --- /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 00000000000..b330b5a0fa7 --- /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 5b0e298f754..3a7719e8c27 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 2f7751d167d..4d3b0b9fe32 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 4cc59616fb7..00000000000 --- 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 35e1ed48d25..f0b052dfe9a 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 9cdb623a5c2..2c2f49e85b3 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 f3f3c70ca6f..8afba471f72 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 a93803d1825..de3bdf46fc2 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 58ed1333853..3261b9395d1 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 61cbae0f580..6465a555b16 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 d40d264ef22..4536271b6e8 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 64432ae0e10..287d7a5df99 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 8086c3857eb..c9229fa94f5 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/microblaze/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/libc.abilist index 8c4c3bba457..04097919b67 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 db014edc510..f31653e5842 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 33ac881346b..a56bd992f74 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 b8b2c0eabbc..44552df7b04 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 07413015f49..8d2a09dc9c7 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 fa04825b2b0..0443b923611 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 3d633c09998..ba9a29a3bda 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 a6b164bc23f..f19534c7b8a 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 7200b762872..f8de1ab30b1 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 de62ecb0f36..6819133256d 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 8da0bc087fd..4cd5d85e421 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 59066a94024..8cdb9df0c86 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 01ca9e65ba6..69791b49110 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 245c1c6d221..fce58a8e883 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 4478d137103..16ce7399bfd 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 4c4a6978b51..00000000000 --- 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 c1a26134185..f99c2982118 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 35fbf8a9040..c601ab0ee21 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 c1a26134185..f99c2982118 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 c1054ce9d26..8e6fa579742 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 2fd6d60d388..1e12f48ec9d 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