[10/16] Remove mknod wrapper functions, move them to symbols
Commit Message
This patch removes the mknod and mknodat static wrapper and add the
symbols on the libc with the expected names.
Both the prototypes of the internal symbol linked by the static
wrappers and the inline redirectors are also removed from the installed
sys/stat.h header file. The wrapper implementation license is also
change from LGPL to GPL.
Internally the _STAT_VER* definitions are moved to the arch-specific
xstatver.h file.
Checked with a build for all affected Linux ABIs and Hurd. I checked
also on x86_64-linux-gnu and i686-linux-gnu.
---
include/sys/stat.h | 13 ++++---
io/Makefile | 5 ---
io/Versions | 1 +
io/mknod.c | 35 +++----------------
io/mknodat.c | 35 +++----------------
io/sys/stat.h | 30 ----------------
sysdeps/generic/xstatver.h | 1 +
sysdeps/mach/hurd/i386/libc.abilist | 2 ++
sysdeps/posix/mkfifo.c | 3 +-
sysdeps/posix/mkfifoat.c | 3 +-
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/bits/stat.h | 4 ---
sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/alpha/xstatver.h | 5 +++
sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/bits/stat.h | 7 ----
sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/generic/bits/stat.h | 3 --
sysdeps/unix/sysv/linux/generic/xstatver.h | 5 +++
sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/bits/stat.h | 3 --
sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/ia64/xstatver.h | 5 +++
sysdeps/unix/sysv/linux/m68k/bits/stat.h | 6 ----
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/m68k/xstatver.h | 6 ++++
.../sysv/linux/microblaze/be/libc.abilist | 2 ++
.../unix/sysv/linux/microblaze/bits/stat.h | 5 ---
sysdeps/unix/sysv/linux/microblaze/xstatver.h | 6 ++++
sysdeps/unix/sysv/linux/mips/bits/stat.h | 5 ---
.../sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/mips/xstatver.h | 6 ++++
sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/bits/stat.h | 5 ---
.../linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 2 ++
.../linux/powerpc/powerpc64/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/powerpc/xstatver.h | 6 ++++
.../unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/bits/stat.h | 10 ------
.../unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
.../unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/s390/xstatver.h | 6 +++-
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/bits/stat.h | 6 ----
.../sysv/linux/sparc/sparc32/libc.abilist | 2 ++
.../sysv/linux/sparc/sparc64/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/sparc/xstatver.h | 6 ++++
sysdeps/unix/sysv/linux/x86/bits/stat.h | 11 ------
sysdeps/unix/sysv/linux/x86/xstatver.h | 5 ++-
.../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
.../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
sysdeps/unix/sysv/linux/xstatver.h | 6 ++++
57 files changed, 133 insertions(+), 172 deletions(-)
Comments
On Thu, 23 Jul 2020, Adhemerval Zanella via Libc-alpha wrote:
> Both the prototypes of the internal symbol linked by the static
> wrappers and the inline redirectors are also removed from the installed
> sys/stat.h header file. The wrapper implementation license is also
> change from LGPL to GPL.
That's not an accurate description. The license remains LGPL with the
exception for objects that get statically linked in when dynamically
linking with libc (*_nonshared.a and crt*.o) removed. Likewise for other
patches with a similar description.
On 23/07/2020 17:53, Joseph Myers wrote:
> On Thu, 23 Jul 2020, Adhemerval Zanella via Libc-alpha wrote:
>
>> Both the prototypes of the internal symbol linked by the static
>> wrappers and the inline redirectors are also removed from the installed
>> sys/stat.h header file. The wrapper implementation license is also
>> change from LGPL to GPL.
>
> That's not an accurate description. The license remains LGPL with the
> exception for objects that get statically linked in when dynamically
> linking with libc (*_nonshared.a and crt*.o) removed. Likewise for other
> patches with a similar description.
>
So should we revert the License change or just rewrite the description?
On Thu, 23 Jul 2020, Adhemerval Zanella via Libc-alpha wrote:
> On 23/07/2020 17:53, Joseph Myers wrote:
> > On Thu, 23 Jul 2020, Adhemerval Zanella via Libc-alpha wrote:
> >
> >> Both the prototypes of the internal symbol linked by the static
> >> wrappers and the inline redirectors are also removed from the installed
> >> sys/stat.h header file. The wrapper implementation license is also
> >> change from LGPL to GPL.
> >
> > That's not an accurate description. The license remains LGPL with the
> > exception for objects that get statically linked in when dynamically
> > linking with libc (*_nonshared.a and crt*.o) removed. Likewise for other
> > patches with a similar description.
> >
>
> So should we revert the License change or just rewrite the description?
Rewrite the description. Once an object is no longer in *_nonshared.a (or
crt*.o, or sources shared with libgcc in the case of soft-fp), there is no
need for the LGPL exception and the file should be plain LGPL with no
exception.
On Thu, 23 Jul 2020 16:46:35 -0300
Adhemerval Zanella <adhemerval.zanella@linaro.org> wrote:
> This patch removes the mknod and mknodat static wrapper and add the
> symbols on the libc with the expected names.
>
> Both the prototypes of the internal symbol linked by the static
> wrappers and the inline redirectors are also removed from the
> installed sys/stat.h header file. The wrapper implementation license
> is also change from LGPL to GPL.
>
> Internally the _STAT_VER* definitions are moved to the arch-specific
> xstatver.h file.
>
> Checked with a build for all affected Linux ABIs and Hurd. I checked
> also on x86_64-linux-gnu and i686-linux-gnu.
Reviewed-by: Lukasz Majewski <lukma@denx.de>
> ---
> include/sys/stat.h | 13 ++++---
> io/Makefile | 5 ---
> io/Versions | 1 +
> io/mknod.c | 35
> +++---------------- io/mknodat.c |
> 35 +++---------------- io/sys/stat.h
> | 30 ---------------- sysdeps/generic/xstatver.h |
> 1 + sysdeps/mach/hurd/i386/libc.abilist | 2 ++
> sysdeps/posix/mkfifo.c | 3 +-
> sysdeps/posix/mkfifoat.c | 3 +-
> sysdeps/unix/sysv/linux/aarch64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/alpha/bits/stat.h | 4 ---
> sysdeps/unix/sysv/linux/alpha/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/alpha/xstatver.h | 5 +++
> sysdeps/unix/sysv/linux/arc/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/arm/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/bits/stat.h | 7 ----
> sysdeps/unix/sysv/linux/csky/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/generic/bits/stat.h | 3 --
> sysdeps/unix/sysv/linux/generic/xstatver.h | 5 +++
> sysdeps/unix/sysv/linux/hppa/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/i386/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/ia64/bits/stat.h | 3 --
> sysdeps/unix/sysv/linux/ia64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/ia64/xstatver.h | 5 +++
> sysdeps/unix/sysv/linux/m68k/bits/stat.h | 6 ----
> .../unix/sysv/linux/m68k/m680x0/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/m68k/xstatver.h | 6 ++++
> .../sysv/linux/microblaze/be/libc.abilist | 2 ++
> .../unix/sysv/linux/microblaze/bits/stat.h | 5 ---
> sysdeps/unix/sysv/linux/microblaze/xstatver.h | 6 ++++
> sysdeps/unix/sysv/linux/mips/bits/stat.h | 5 ---
> .../sysv/linux/mips/mips32/fpu/libc.abilist | 2 ++
> .../sysv/linux/mips/mips64/n32/libc.abilist | 2 ++
> .../sysv/linux/mips/mips64/n64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/mips/xstatver.h | 6 ++++
> sysdeps/unix/sysv/linux/nios2/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/bits/stat.h | 5 ---
> .../linux/powerpc/powerpc32/fpu/libc.abilist | 2 ++
> .../linux/powerpc/powerpc64/be/libc.abilist | 2 ++
> .../linux/powerpc/powerpc64/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/powerpc/xstatver.h | 6 ++++
> .../unix/sysv/linux/riscv/rv64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/bits/stat.h | 10 ------
> .../unix/sysv/linux/s390/s390-32/libc.abilist | 2 ++
> .../unix/sysv/linux/s390/s390-64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/s390/xstatver.h | 6 +++-
> sysdeps/unix/sysv/linux/sh/le/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/bits/stat.h | 6 ----
> .../sysv/linux/sparc/sparc32/libc.abilist | 2 ++
> .../sysv/linux/sparc/sparc64/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/sparc/xstatver.h | 6 ++++
> sysdeps/unix/sysv/linux/x86/bits/stat.h | 11 ------
> sysdeps/unix/sysv/linux/x86/xstatver.h | 5 ++-
> .../unix/sysv/linux/x86_64/64/libc.abilist | 2 ++
> .../unix/sysv/linux/x86_64/x32/libc.abilist | 2 ++
> sysdeps/unix/sysv/linux/xstatver.h | 6 ++++
> 57 files changed, 133 insertions(+), 172 deletions(-)
>
> diff --git a/include/sys/stat.h b/include/sys/stat.h
> index 0be918a7a7..04b825df4a 100644
> --- a/include/sys/stat.h
> +++ b/include/sys/stat.h
> @@ -30,14 +30,17 @@ extern __mode_t __umask (__mode_t __mask);
> extern int __mkdir (const char *__path, __mode_t __mode);
> libc_hidden_proto (__mkdir)
>
> +extern int __mknodat (int fd, const char *path, mode_t mode, dev_t
> dev); +libc_hidden_proto (__mknodat);
> extern int __mknod (const char *__path,
> __mode_t __mode, __dev_t __dev);
> +libc_hidden_proto (__mknod);
> +
> +extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
> + __dev_t *__dev);
> libc_hidden_proto (__xmknod)
> -extern __inline__ int __mknod (const char *__path, __mode_t __mode,
> - __dev_t __dev)
> -{
> - return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
> -}
> +extern int __xmknodat (int __ver, int __fd, const char *__path,
> + __mode_t __mode, __dev_t *__dev);
> libc_hidden_proto (__xmknodat)
>
> int __fxstat (int __ver, int __fildes, struct stat *__stat_buf);
> diff --git a/io/Makefile b/io/Makefile
> index cee356b666..2ed86c530e 100644
> --- a/io/Makefile
> +++ b/io/Makefile
> @@ -57,11 +57,6 @@ routines :=
> \ sendfile sendfile64 copy_file_range
> \ utimensat futimens file_change_detection
>
> -# These routines will be omitted from the libc shared object.
> -# Instead the static object files will be included in a special
> archive -# linked against when the shared library will be used.
> -static-only-routines = mknod mknodat
> -
> others := pwd
> test-srcs := ftwtest
> tests := test-utime test-stat test-stat2 test-lfs
> tst-getcwd \ diff --git a/io/Versions b/io/Versions
> index f6db0e84ad..49c4d2d40a 100644
> --- a/io/Versions
> +++ b/io/Versions
> @@ -134,6 +134,7 @@ libc {
> }
> GLIBC_2.33 {
> stat; stat64; fstat; fstat64; lstat; lstat64; fstatat; fstatat64;
> + mknod; mknodat;
> }
> GLIBC_PRIVATE {
> __libc_fcntl64;
> diff --git a/io/mknod.c b/io/mknod.c
> index ac96829230..7f88633198 100644
> --- a/io/mknod.c
> +++ b/io/mknod.c
> @@ -1,4 +1,5 @@
> -/* Copyright (C) 1995-2020 Free Software Foundation, Inc.
> +/* Create a special or ordinary file.
> + Copyright (C) 1995-2020 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
> @@ -6,23 +7,6 @@
> License as published by the Free Software Foundation; either
> version 2.1 of the License, or (at your option) any later version.
>
> - In addition to the permissions in the GNU Lesser General Public
> - License, the Free Software Foundation gives you unlimited
> - permission to link the compiled version of this file with other
> - programs, and to distribute those programs without any restriction
> - coming from the use of this file. (The GNU Lesser General Public
> - License restrictions do apply in other respects; for example, they
> - cover modification of the file, and distribution when not linked
> - into another program.)
> -
> - Note that people who make modified versions of this file are not
> - obligated to grant this special exception for their modified
> - versions; it is their choice whether to do so. The GNU Lesser
> - General Public License gives permission to release a modified
> - version without this exception; this exception also makes it
> - possible to release a modified version which carries forward this
> - exception.
> -
> 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
> @@ -32,24 +16,13 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -
> #include <sys/types.h>
> #include <sys/stat.h>
>
> -/* This definition is only used if inlining fails for this function;
> see
> - the last page of <sys/stat.h>. The real work is done by the `x'
> - function which is passed a version number argument. We arrange
> in the
> - makefile that when not inlined this function is always statically
> - linked; that way a dynamically-linked executable always encodes
> the
> - version number corresponding to the data structures it uses, so
> the `x'
> - functions in the shared library can adapt without needing to
> recompile
> - all callers. */
> -
> int
> -attribute_hidden
> __mknod (const char *path, mode_t mode, dev_t dev)
> {
> return __xmknod (_MKNOD_VER, path, mode, &dev);
> }
> -
> -weak_hidden_alias (__mknod, mknod)
> +libc_hidden_def (__mknod)
> +weak_alias (__mknod, mknod)
> diff --git a/io/mknodat.c b/io/mknodat.c
> index 65c9f1aa9c..6ec1c1648c 100644
> --- a/io/mknodat.c
> +++ b/io/mknodat.c
> @@ -1,4 +1,5 @@
> -/* Copyright (C) 1995-2020 Free Software Foundation, Inc.
> +/* Create a special or ordinary file.
> + Copyright (C) 1995-2020 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
> @@ -6,23 +7,6 @@
> License as published by the Free Software Foundation; either
> version 2.1 of the License, or (at your option) any later version.
>
> - In addition to the permissions in the GNU Lesser General Public
> - License, the Free Software Foundation gives you unlimited
> - permission to link the compiled version of this file with other
> - programs, and to distribute those programs without any restriction
> - coming from the use of this file. (The GNU Lesser General Public
> - License restrictions do apply in other respects; for example, they
> - cover modification of the file, and distribution when not linked
> - into another program.)
> -
> - Note that people who make modified versions of this file are not
> - obligated to grant this special exception for their modified
> - versions; it is their choice whether to do so. The GNU Lesser
> - General Public License gives permission to release a modified
> - version without this exception; this exception also makes it
> - possible to release a modified version which carries forward this
> - exception.
> -
> 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
> @@ -32,22 +16,13 @@
> License along with the GNU C Library; if not, see
> <https://www.gnu.org/licenses/>. */
>
> -
> #include <sys/types.h>
> #include <sys/stat.h>
>
> -/* This definition is only used if inlining fails for this function;
> see
> - the last page of <sys/stat.h>. The real work is done by the `x'
> - function which is passed a version number argument. We arrange
> in the
> - makefile that when not inlined this function is always statically
> - linked; that way a dynamically-linked executable always encodes
> the
> - version number corresponding to the data structures it uses, so
> the `x'
> - functions in the shared library can adapt without needing to
> recompile
> - all callers. */
> -
> int
> -attribute_hidden
> -mknodat (int fd, const char *path, mode_t mode, dev_t dev)
> +__mknodat (int fd, const char *path, mode_t mode, dev_t dev)
> {
> return __xmknodat (_MKNOD_VER, fd, path, mode, &dev);
> }
> +libc_hidden_def (__mknodat)
> +weak_alias (__mknodat, mknodat)
> diff --git a/io/sys/stat.h b/io/sys/stat.h
> index 83cf253c72..58c3770622 100644
> --- a/io/sys/stat.h
> +++ b/io/sys/stat.h
> @@ -367,41 +367,11 @@ extern int utimensat (int __fd, const char
> *__path, /* Set file access and modification times of the file
> associated with FD. */ extern int futimens (int __fd, const struct
> timespec __times[2]) __THROW; #endif
> -
> -#ifndef _MKNOD_VER
> -# define _MKNOD_VER 0
> -#endif
> -
> -extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
> - __dev_t *__dev) __THROW __nonnull ((2, 4));
> -
> -extern int __xmknodat (int __ver, int __fd, const char *__path,
> - __mode_t __mode, __dev_t *__dev)
> - __THROW __nonnull ((3, 5));
>
> #ifdef __USE_GNU
> # include <bits/statx.h>
> #endif
>
> -#ifdef __USE_EXTERN_INLINES
> -# ifdef __USE_MISC
> -__extern_inline int
> -__NTH (mknod (const char *__path, __mode_t __mode, __dev_t __dev))
> -{
> - return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
> -}
> -# endif
> -
> -# ifdef __USE_ATFILE
> -__extern_inline int
> -__NTH (mknodat (int __fd, const char *__path, __mode_t __mode,
> - __dev_t __dev))
> -{
> - return __xmknodat (_MKNOD_VER, __fd, __path, __mode, &__dev);
> -}
> -# endif
> -#endif
> -
> __END_DECLS
>
>
> diff --git a/sysdeps/generic/xstatver.h b/sysdeps/generic/xstatver.h
> index d727c98a16..281013b2f1 100644
> --- a/sysdeps/generic/xstatver.h
> +++ b/sysdeps/generic/xstatver.h
> @@ -1,3 +1,4 @@
> /* Versions of the 'struct stat' data structure used in
> compatibility xstat functions. */
> #define _STAT_VER 0
> +#define _MKNOD_VER 0
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist
> b/sysdeps/mach/hurd/i386/libc.abilist index 74a4ed5c1d..b4e39285d0
> 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2198,6 +2198,8 @@ GLIBC_2.33 fstatat F
> GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/posix/mkfifo.c b/sysdeps/posix/mkfifo.c
> index 61f62e2e96..0b89f6c291 100644
> --- a/sysdeps/posix/mkfifo.c
> +++ b/sysdeps/posix/mkfifo.c
> @@ -24,6 +24,5 @@
> int
> mkfifo (const char *path, mode_t mode)
> {
> - dev_t dev = 0;
> - return __xmknod (_MKNOD_VER, path, mode | S_IFIFO, &dev);
> + return __mknod (path, mode | S_IFIFO, 0);
> }
> diff --git a/sysdeps/posix/mkfifoat.c b/sysdeps/posix/mkfifoat.c
> index 5287fe8782..d1e0977ba1 100644
> --- a/sysdeps/posix/mkfifoat.c
> +++ b/sysdeps/posix/mkfifoat.c
> @@ -23,6 +23,5 @@
> int
> mkfifoat (int fd, const char *file, mode_t mode)
> {
> - dev_t dev = 0;
> - return __xmknodat (_MKNOD_VER, fd, file, mode | S_IFIFO, &dev);
> + return __mknodat (fd, file, mode | S_IFIFO, 0);
> }
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index
> 03e4ae9296..54b707b9cc 100644 ---
> a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2166,5 +2166,7 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/alpha/bits/stat.h
> b/sysdeps/unix/sysv/linux/alpha/bits/stat.h index
> 1fc27936b9..d20fb5a4b0 100644 ---
> a/sysdeps/unix/sysv/linux/alpha/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/alpha/bits/stat.h @@ -22,10 +22,6 @@
> #ifndef _BITS_STAT_H
> #define _BITS_STAT_H 1
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 0
> -
> -
> /* Nanosecond resolution timestamps are stored in a format
> equivalent to 'struct timespec'. This is the type used whenever
> possible but the Unix namespace rules do not allow the identifier
> 'timespec' to appear diff --git
> a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> b/sysdeps/unix/sysv/linux/alpha/libc.abilist index
> 5b752ef4a8..9b429fd28f 100644 ---
> a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++
> b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2248,6 +2248,8 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/alpha/xstatver.h
> b/sysdeps/unix/sysv/linux/alpha/xstatver.h index
> bbb9469617..1cb5d26bb1 100644 ---
> a/sysdeps/unix/sysv/linux/alpha/xstatver.h +++
> b/sysdeps/unix/sysv/linux/alpha/xstatver.h @@ -7,3 +7,8 @@
> #define _STAT_VER_GLIBC2_3_4 3
> #define _STAT_VER_LINUX 3
> #define _STAT_VER _STAT_VER_LINUX
> +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 0
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist
> b/sysdeps/unix/sysv/linux/arc/libc.abilist index
> 925b532383..7ed5340364 100644 ---
> a/sysdeps/unix/sysv/linux/arc/libc.abilist +++
> b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -1926,5 +1926,7 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index
> a4c1a7c03c..3ec1cbdfbc 100644 ---
> a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -147,6 +147,8 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 _Exit F
> diff --git a/sysdeps/unix/sysv/linux/bits/stat.h
> b/sysdeps/unix/sysv/linux/bits/stat.h index b542623208..0669451f69
> 100644 --- a/sysdeps/unix/sysv/linux/bits/stat.h
> +++ b/sysdeps/unix/sysv/linux/bits/stat.h
> @@ -22,13 +22,6 @@
> #ifndef _BITS_STAT_H
> #define _BITS_STAT_H 1
>
> -/* Versions of the `struct stat' data structure. */
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 1
> -#define _MKNOD_VER_SVR4 2
> -#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits
> defined below. */ -
> -
> struct stat
> {
> __dev_t st_dev; /* Device. */
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist
> b/sysdeps/unix/sysv/linux/csky/libc.abilist index
> 799873e189..301fd728d7 100644 ---
> a/sysdeps/unix/sysv/linux/csky/libc.abilist +++
> b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2110,5 +2110,7 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/generic/bits/stat.h
> b/sysdeps/unix/sysv/linux/generic/bits/stat.h index
> 35e14a47c6..1b586d72fa 100644 ---
> a/sysdeps/unix/sysv/linux/generic/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/generic/bits/stat.h @@ -26,9 +26,6 @@
> #include <bits/endian.h>
> #include <bits/wordsize.h>
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 0
> -
> #if defined __USE_FILE_OFFSET64
> # define __field64(type, type64, name) type64 name
> #elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
> diff --git a/sysdeps/unix/sysv/linux/generic/xstatver.h
> b/sysdeps/unix/sysv/linux/generic/xstatver.h index
> 8675db494c..d8fd35beb6 100644 ---
> a/sysdeps/unix/sysv/linux/generic/xstatver.h +++
> b/sysdeps/unix/sysv/linux/generic/xstatver.h @@ -3,3 +3,8 @@
> #define _STAT_VER_KERNEL 0
> #define _STAT_VER_LINUX 0
> #define _STAT_VER _STAT_VER_KERNEL
> +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 0
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> b/sysdeps/unix/sysv/linux/hppa/libc.abilist index
> 95c7bf4f06..84834052e1 100644 ---
> a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++
> b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2069,6 +2069,8 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist
> b/sysdeps/unix/sysv/linux/i386/libc.abilist index
> e7cf5cdb98..b82debaba4 100644 ---
> a/sysdeps/unix/sysv/linux/i386/libc.abilist +++
> b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2235,6 +2235,8 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/ia64/bits/stat.h
> b/sysdeps/unix/sysv/linux/ia64/bits/stat.h index
> 8ec2e4c81f..6937f3227a 100644 ---
> a/sysdeps/unix/sysv/linux/ia64/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/ia64/bits/stat.h @@ -22,9 +22,6 @@
> #ifndef _BITS_STAT_H
> #define _BITS_STAT_H 1
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 0
> -
> struct stat
> {
> __dev_t st_dev; /* Device. */
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> b/sysdeps/unix/sysv/linux/ia64/libc.abilist index
> beeb905efd..475b7af1a5 100644 ---
> a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -2101,6 +2101,8 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/ia64/xstatver.h
> b/sysdeps/unix/sysv/linux/ia64/xstatver.h index
> 4f02f697ad..f24ab4a9ee 100644 ---
> a/sysdeps/unix/sysv/linux/ia64/xstatver.h +++
> b/sysdeps/unix/sysv/linux/ia64/xstatver.h @@ -3,3 +3,8 @@
> #define _STAT_VER_KERNEL 0
> #define _STAT_VER_LINUX 1
> #define _STAT_VER _STAT_VER_LINUX
> +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 0
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/m68k/bits/stat.h
> b/sysdeps/unix/sysv/linux/m68k/bits/stat.h index
> bf41776e6c..c6f761fcc0 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/m68k/bits/stat.h @@ -22,12 +22,6 @@
> #ifndef _BITS_STAT_H
> #define _BITS_STAT_H 1
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 1
> -#define _MKNOD_VER_SVR4 2
> -#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits
> defined below. */ -
> -
> struct stat
> {
> __dev_t st_dev; /* Device. */
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index
> ed34e1fc82..29127e1341 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2181,6 +2181,8
> @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/m68k/xstatver.h
> b/sysdeps/unix/sysv/linux/m68k/xstatver.h index
> 59dba71dd1..8e1801b603 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/xstatver.h +++
> b/sysdeps/unix/sysv/linux/m68k/xstatver.h @@ -5,3 +5,9 @@
> #define _STAT_VER_SVR4 2
> #define _STAT_VER_LINUX 3
> #define _STAT_VER _STAT_VER_LINUX
> +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 1
> +#define _MKNOD_VER_SVR4 2
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index
> e00f5115b2..e5b4cecacd 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2161,5
> +2161,7 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
> b/sysdeps/unix/sysv/linux/microblaze/bits/stat.h index
> 51316a8c1b..b3068e5c98 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/microblaze/bits/stat.h @@ -23,11 +23,6 @@
> #ifndef _BITS_STAT_H
> #define _BITS_STAT_H 1
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 1
> -#define _MKNOD_VER_SVR4 2
> -#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined
> below. */ -
> #ifndef __USE_FILE_OFFSET64
> struct stat
> {
> diff --git a/sysdeps/unix/sysv/linux/microblaze/xstatver.h
> b/sysdeps/unix/sysv/linux/microblaze/xstatver.h index
> bddaa0d5ec..790cc834d2 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/xstatver.h +++
> b/sysdeps/unix/sysv/linux/microblaze/xstatver.h @@ -5,3 +5,9 @@
> #define _STAT_VER_SVR4 2
> #define _STAT_VER_LINUX 3
> #define _STAT_VER _STAT_VER_LINUX /* The one defined
> below. */ +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 1
> +#define _MKNOD_VER_SVR4 2
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/mips/bits/stat.h
> b/sysdeps/unix/sysv/linux/mips/bits/stat.h index
> cfeb4ce6a4..f229c58013 100644 ---
> a/sysdeps/unix/sysv/linux/mips/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/mips/bits/stat.h @@ -24,11 +24,6 @@
>
> #include <sgidefs.h>
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 1
> -#define _MKNOD_VER_SVR4 2
> -#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits
> defined below. */ -
>
> #if _MIPS_SIM == _ABIO32
> /* Structure describing file characteristics. */
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index
> fe9ba4e982..b9f56007a2 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2152,6
> +2152,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index
> e67591e710..c161ef11b5 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2158,6
> +2158,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index
> e4eb9e6bbf..d4b1528e7a 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2152,6
> +2152,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/xstatver.h
> b/sysdeps/unix/sysv/linux/mips/xstatver.h index
> 59dba71dd1..8e1801b603 100644 ---
> a/sysdeps/unix/sysv/linux/mips/xstatver.h +++
> b/sysdeps/unix/sysv/linux/mips/xstatver.h @@ -5,3 +5,9 @@
> #define _STAT_VER_SVR4 2
> #define _STAT_VER_LINUX 3
> #define _STAT_VER _STAT_VER_LINUX
> +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 1
> +#define _MKNOD_VER_SVR4 2
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> b/sysdeps/unix/sysv/linux/nios2/libc.abilist index
> 0878998441..68fca4e650 100644 ---
> a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++
> b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2199,5 +2199,7 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
> b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h index
> 40ea9a96d4..80c9dc23ac 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h @@ -24,11 +24,6 @@
>
> #include <bits/wordsize.h>
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 1
> -#define _MKNOD_VER_SVR4 2
> -#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits
> defined below. */ -
>
> #if __WORDSIZE == 32
>
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index
> 993c957e8e..bec34b2128 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@
> -2208,6 +2208,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 _IO_fprintf F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index
> 25a8e828e9..35bd161c79 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@
> -2071,6 +2071,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 _IO_fprintf F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index
> 46ae28e552..f1c8ad9cc5 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@
> -2361,5 +2361,7 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/xstatver.h
> b/sysdeps/unix/sysv/linux/powerpc/xstatver.h index
> 1656e2f7e4..aa61dfd678 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/xstatver.h +++
> b/sysdeps/unix/sysv/linux/powerpc/xstatver.h @@ -9,3 +9,9 @@
> #else
> # define _STAT_VER _STAT_VER_KERNEL
> #endif
> +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 1
> +#define _MKNOD_VER_SVR4 2
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index
> 1044aa6be2..fdfc373871 100644 ---
> a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2128,5 +2128,7
> @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/s390/bits/stat.h
> b/sysdeps/unix/sysv/linux/s390/bits/stat.h index
> d12055529a..75fa871a1d 100644 ---
> a/sysdeps/unix/sysv/linux/s390/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/s390/bits/stat.h @@ -24,16 +24,6 @@
>
> #include <bits/wordsize.h>
>
> -#if __WORDSIZE == 64
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 0
> -#else
> -/* Versions of the `xmknod' interface. */
> -# define _MKNOD_VER_LINUX 1
> -# define _MKNOD_VER_SVR4 2
> -# define _MKNOD_VER _MKNOD_VER_LINUX
> -#endif
> -
> #if __WORDSIZE == 64
> struct stat
> {
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index
> 6b1fa7e67f..47591dc5b5 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2206,6
> +2206,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index
> 0aec094e7b..bd96aeaff7 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2107,6
> +2107,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/xstatver.h
> b/sysdeps/unix/sysv/linux/s390/xstatver.h index
> 5ad0db2797..aeaf852ee5 100644 ---
> a/sysdeps/unix/sysv/linux/s390/xstatver.h +++
> b/sysdeps/unix/sysv/linux/s390/xstatver.h @@ -7,10 +7,14 @@
> # define _STAT_VER_KERNEL 0
> # define _STAT_VER_LINUX 1
> # define _STAT_VER _STAT_VER_LINUX
> +# define _MKNOD_VER_LINUX 0
> #else
> # define _STAT_VER_LINUX_OLD 1
> # define _STAT_VER_KERNEL 1
> # define _STAT_VER_SVR4 2
> # define _STAT_VER_LINUX 3
> -# define _STAT_VER _STAT_VER_LINUX
> +# define _MKNOD_VER_LINUX 1
> +# define _MKNOD_VER_SVR4 2
> #endif
> +#define _STAT_VER _STAT_VER_LINUX
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index
> e2ae13d4fa..b4cebb11dd 100644 ---
> a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2073,6 +2073,8 @@
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/stat.h
> b/sysdeps/unix/sysv/linux/sparc/bits/stat.h index
> 7af17b5c40..d10ebb1a9a 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/sparc/bits/stat.h @@ -22,12 +22,6 @@
> #ifndef _BITS_STAT_H
> #define _BITS_STAT_H 1
>
> -/* Versions of the `xmknod' interface. */
> -#define _MKNOD_VER_LINUX 1
> -#define _MKNOD_VER_SVR4 2
> -#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits
> defined below. */ -
> -
> struct stat
> {
> __dev_t st_dev; /* Device. */
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index
> 886e01960f..f208405859 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2197,6
> +2197,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 _IO_fprintf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index
> 33b068201a..44e68aded2 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2124,6
> +2124,8 @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/sparc/xstatver.h
> b/sysdeps/unix/sysv/linux/sparc/xstatver.h index
> ae92b530e7..693b41c3ac 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/xstatver.h +++
> b/sysdeps/unix/sysv/linux/sparc/xstatver.h @@ -5,3 +5,9 @@
> #define _STAT_VER_SVR4 2
> #define _STAT_VER_LINUX 3
> #define _STAT_VER _STAT_VER_LINUX /* The one
> defined below. */ +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 1
> +#define _MKNOD_VER_SVR4 2
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/x86/bits/stat.h
> b/sysdeps/unix/sysv/linux/x86/bits/stat.h index
> f132569e9d..2c0a3f120b 100644 ---
> a/sysdeps/unix/sysv/linux/x86/bits/stat.h +++
> b/sysdeps/unix/sysv/linux/x86/bits/stat.h @@ -22,17 +22,6 @@
> #ifndef _BITS_STAT_H
> #define _BITS_STAT_H 1
>
> -/* Versions of the `struct stat' data structure. */
> -#ifndef __x86_64__
> -/* i386 versions of the `xmknod' interface. */
> -# define _MKNOD_VER_LINUX 1
> -# define _MKNOD_VER_SVR4 2
> -# define _MKNOD_VER _MKNOD_VER_LINUX /* The bits
> defined below. */ -#else
> -/* x86-64 versions of the `xmknod' interface. */
> -# define _MKNOD_VER_LINUX 0
> -#endif
> -
> struct stat
> {
> __dev_t st_dev; /* Device. */
> diff --git a/sysdeps/unix/sysv/linux/x86/xstatver.h
> b/sysdeps/unix/sysv/linux/x86/xstatver.h index 6f047a346d..678d5bc022
> 100644 --- a/sysdeps/unix/sysv/linux/x86/xstatver.h
> +++ b/sysdeps/unix/sysv/linux/x86/xstatver.h
> @@ -5,9 +5,12 @@
> # define _STAT_VER_KERNEL 1
> # define _STAT_VER_SVR4 2
> # define _STAT_VER_LINUX 3
> +# define _MKNOD_VER_LINUX 1
> +# define _MKNOD_VER_SVR4 2
> #else
> # define _STAT_VER_KERNEL 0
> # define _STAT_VER_LINUX 1
> +# define _MKNOD_VER_LINUX 0
> #endif
> #define _STAT_VER _STAT_VER_LINUX
> -
> +#define _MKNOD_VER _MKNOD_VER_LINUX
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index
> f767bdde24..51e76861f6 100644 ---
> a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2082,6 +2082,8
> @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> GLIBC_2.4 __confstr_chk F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index
> 535862a51e..f83473c11f 100644 ---
> a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2179,5 +2179,7
> @@ GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> GLIBC_2.33 lstat F
> GLIBC_2.33 lstat64 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> GLIBC_2.33 stat F
> GLIBC_2.33 stat64 F
> diff --git a/sysdeps/unix/sysv/linux/xstatver.h
> b/sysdeps/unix/sysv/linux/xstatver.h index 59dba71dd1..8e1801b603
> 100644 --- a/sysdeps/unix/sysv/linux/xstatver.h
> +++ b/sysdeps/unix/sysv/linux/xstatver.h
> @@ -5,3 +5,9 @@
> #define _STAT_VER_SVR4 2
> #define _STAT_VER_LINUX 3
> #define _STAT_VER _STAT_VER_LINUX
> +
> +/* Versions of the 'xmknod' interface used in compatibility xmknod
> + functions. */
> +#define _MKNOD_VER_LINUX 1
> +#define _MKNOD_VER_SVR4 2
> +#define _MKNOD_VER _MKNOD_VER_LINUX
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
It appears this and related changes have recently been committed and
introduced ABI test regressions.
FAIL: glibcs-armeb-linux-gnueabi check
FAIL: glibcs-armeb-linux-gnueabi-be8 check
FAIL: glibcs-armeb-linux-gnueabihf check
FAIL: glibcs-armeb-linux-gnueabihf-be8 check
FAIL: glibcs-m68k-linux-gnu-coldfire check
FAIL: glibcs-m68k-linux-gnu-coldfire-soft check
FAIL: glibcs-microblazeel-linux-gnu check
FAIL: glibcs-mips-linux-gnu-nan2008-soft check
FAIL: glibcs-mips-linux-gnu-soft check
FAIL: glibcs-mipsel-linux-gnu-nan2008-soft check
FAIL: glibcs-mipsel-linux-gnu-soft check
FAIL: glibcs-powerpc-linux-gnu-soft check
FAIL: glibcs-sh3eb-linux-gnu check
FAIL: glibcs-sh4eb-linux-gnu check
FAIL: glibcs-sh4eb-linux-gnu-soft check
https://sourceware.org/pipermail/libc-testresults/2020q4/006880.html
Sample test output (check-abi-libc fails, for armeb-linux-gnueabi):
@@ -146,0 +147,6 @@ GLIBC_2.32 strerrorname_np F
+GLIBC_2.33 fstat F
+GLIBC_2.33 fstat64 F
+GLIBC_2.33 fstatat F
+GLIBC_2.33 fstatat64 F
+GLIBC_2.33 lstat F
+GLIBC_2.33 lstat64 F
@@ -147,0 +154,4 @@ GLIBC_2.33 mallinfo2 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
+GLIBC_2.33 stat F
+GLIBC_2.33 stat64 F
On 12/10/2020 19:27, Joseph Myers wrote:
> It appears this and related changes have recently been committed and
> introduced ABI test regressions.
>
> FAIL: glibcs-armeb-linux-gnueabi check
> FAIL: glibcs-armeb-linux-gnueabi-be8 check
> FAIL: glibcs-armeb-linux-gnueabihf check
> FAIL: glibcs-armeb-linux-gnueabihf-be8 check
> FAIL: glibcs-m68k-linux-gnu-coldfire check
> FAIL: glibcs-m68k-linux-gnu-coldfire-soft check
> FAIL: glibcs-microblazeel-linux-gnu check
> FAIL: glibcs-mips-linux-gnu-nan2008-soft check
> FAIL: glibcs-mips-linux-gnu-soft check
> FAIL: glibcs-mipsel-linux-gnu-nan2008-soft check
> FAIL: glibcs-mipsel-linux-gnu-soft check
> FAIL: glibcs-powerpc-linux-gnu-soft check
> FAIL: glibcs-sh3eb-linux-gnu check
> FAIL: glibcs-sh4eb-linux-gnu check
> FAIL: glibcs-sh4eb-linux-gnu-soft check
>
> https://sourceware.org/pipermail/libc-testresults/2020q4/006880.html
>
> Sample test output (check-abi-libc fails, for armeb-linux-gnueabi):
>
> @@ -146,0 +147,6 @@ GLIBC_2.32 strerrorname_np F
> +GLIBC_2.33 fstat F
> +GLIBC_2.33 fstat64 F
> +GLIBC_2.33 fstatat F
> +GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 lstat F
> +GLIBC_2.33 lstat64 F
> @@ -147,0 +154,4 @@ GLIBC_2.33 mallinfo2 F
> +GLIBC_2.33 mknod F
> +GLIBC_2.33 mknodat F
> +GLIBC_2.33 stat F
> +GLIBC_2.33 stat64 F
>
I will sort this out, thanks (I need to update my own script to
handle these abi variants as well).
@@ -30,14 +30,17 @@ extern __mode_t __umask (__mode_t __mask);
extern int __mkdir (const char *__path, __mode_t __mode);
libc_hidden_proto (__mkdir)
+extern int __mknodat (int fd, const char *path, mode_t mode, dev_t dev);
+libc_hidden_proto (__mknodat);
extern int __mknod (const char *__path,
__mode_t __mode, __dev_t __dev);
+libc_hidden_proto (__mknod);
+
+extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
+ __dev_t *__dev);
libc_hidden_proto (__xmknod)
-extern __inline__ int __mknod (const char *__path, __mode_t __mode,
- __dev_t __dev)
-{
- return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
-}
+extern int __xmknodat (int __ver, int __fd, const char *__path,
+ __mode_t __mode, __dev_t *__dev);
libc_hidden_proto (__xmknodat)
int __fxstat (int __ver, int __fildes, struct stat *__stat_buf);
@@ -57,11 +57,6 @@ routines := \
sendfile sendfile64 copy_file_range \
utimensat futimens file_change_detection
-# These routines will be omitted from the libc shared object.
-# Instead the static object files will be included in a special archive
-# linked against when the shared library will be used.
-static-only-routines = mknod mknodat
-
others := pwd
test-srcs := ftwtest
tests := test-utime test-stat test-stat2 test-lfs tst-getcwd \
@@ -134,6 +134,7 @@ libc {
}
GLIBC_2.33 {
stat; stat64; fstat; fstat64; lstat; lstat64; fstatat; fstatat64;
+ mknod; mknodat;
}
GLIBC_PRIVATE {
__libc_fcntl64;
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995-2020 Free Software Foundation, Inc.
+/* Create a special or ordinary file.
+ Copyright (C) 1995-2020 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
@@ -6,23 +7,6 @@
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
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
@@ -32,24 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-
#include <sys/types.h>
#include <sys/stat.h>
-/* This definition is only used if inlining fails for this function; see
- the last page of <sys/stat.h>. The real work is done by the `x'
- function which is passed a version number argument. We arrange in the
- makefile that when not inlined this function is always statically
- linked; that way a dynamically-linked executable always encodes the
- version number corresponding to the data structures it uses, so the `x'
- functions in the shared library can adapt without needing to recompile
- all callers. */
-
int
-attribute_hidden
__mknod (const char *path, mode_t mode, dev_t dev)
{
return __xmknod (_MKNOD_VER, path, mode, &dev);
}
-
-weak_hidden_alias (__mknod, mknod)
+libc_hidden_def (__mknod)
+weak_alias (__mknod, mknod)
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995-2020 Free Software Foundation, Inc.
+/* Create a special or ordinary file.
+ Copyright (C) 1995-2020 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
@@ -6,23 +7,6 @@
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
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
@@ -32,22 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-
#include <sys/types.h>
#include <sys/stat.h>
-/* This definition is only used if inlining fails for this function; see
- the last page of <sys/stat.h>. The real work is done by the `x'
- function which is passed a version number argument. We arrange in the
- makefile that when not inlined this function is always statically
- linked; that way a dynamically-linked executable always encodes the
- version number corresponding to the data structures it uses, so the `x'
- functions in the shared library can adapt without needing to recompile
- all callers. */
-
int
-attribute_hidden
-mknodat (int fd, const char *path, mode_t mode, dev_t dev)
+__mknodat (int fd, const char *path, mode_t mode, dev_t dev)
{
return __xmknodat (_MKNOD_VER, fd, path, mode, &dev);
}
+libc_hidden_def (__mknodat)
+weak_alias (__mknodat, mknodat)
@@ -367,41 +367,11 @@ extern int utimensat (int __fd, const char *__path,
/* Set file access and modification times of the file associated with FD. */
extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
#endif
-
-#ifndef _MKNOD_VER
-# define _MKNOD_VER 0
-#endif
-
-extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
- __dev_t *__dev) __THROW __nonnull ((2, 4));
-
-extern int __xmknodat (int __ver, int __fd, const char *__path,
- __mode_t __mode, __dev_t *__dev)
- __THROW __nonnull ((3, 5));
#ifdef __USE_GNU
# include <bits/statx.h>
#endif
-#ifdef __USE_EXTERN_INLINES
-# ifdef __USE_MISC
-__extern_inline int
-__NTH (mknod (const char *__path, __mode_t __mode, __dev_t __dev))
-{
- return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
-}
-# endif
-
-# ifdef __USE_ATFILE
-__extern_inline int
-__NTH (mknodat (int __fd, const char *__path, __mode_t __mode,
- __dev_t __dev))
-{
- return __xmknodat (_MKNOD_VER, __fd, __path, __mode, &__dev);
-}
-# endif
-#endif
-
__END_DECLS
@@ -1,3 +1,4 @@
/* Versions of the 'struct stat' data structure used in compatibility xstat
functions. */
#define _STAT_VER 0
+#define _MKNOD_VER 0
@@ -2198,6 +2198,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -24,6 +24,5 @@
int
mkfifo (const char *path, mode_t mode)
{
- dev_t dev = 0;
- return __xmknod (_MKNOD_VER, path, mode | S_IFIFO, &dev);
+ return __mknod (path, mode | S_IFIFO, 0);
}
@@ -23,6 +23,5 @@
int
mkfifoat (int fd, const char *file, mode_t mode)
{
- dev_t dev = 0;
- return __xmknodat (_MKNOD_VER, fd, file, mode | S_IFIFO, &dev);
+ return __mknodat (fd, file, mode | S_IFIFO, 0);
}
@@ -2166,5 +2166,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -22,10 +22,6 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 0
-
-
/* Nanosecond resolution timestamps are stored in a format equivalent to
'struct timespec'. This is the type used whenever possible but the
Unix namespace rules do not allow the identifier 'timespec' to appear
@@ -2248,6 +2248,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 _IO_fprintf F
@@ -7,3 +7,8 @@
#define _STAT_VER_GLIBC2_3_4 3
#define _STAT_VER_LINUX 3
#define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 0
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -1926,5 +1926,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -147,6 +147,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 _Exit F
@@ -22,13 +22,6 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-/* Versions of the `struct stat' data structure. */
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 1
-#define _MKNOD_VER_SVR4 2
-#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-
-
struct stat
{
__dev_t st_dev; /* Device. */
@@ -2110,5 +2110,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -26,9 +26,6 @@
#include <bits/endian.h>
#include <bits/wordsize.h>
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 0
-
#if defined __USE_FILE_OFFSET64
# define __field64(type, type64, name) type64 name
#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
@@ -3,3 +3,8 @@
#define _STAT_VER_KERNEL 0
#define _STAT_VER_LINUX 0
#define _STAT_VER _STAT_VER_KERNEL
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 0
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -2069,6 +2069,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -2235,6 +2235,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -22,9 +22,6 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 0
-
struct stat
{
__dev_t st_dev; /* Device. */
@@ -2101,6 +2101,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -3,3 +3,8 @@
#define _STAT_VER_KERNEL 0
#define _STAT_VER_LINUX 1
#define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 0
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -22,12 +22,6 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 1
-#define _MKNOD_VER_SVR4 2
-#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-
-
struct stat
{
__dev_t st_dev; /* Device. */
@@ -2181,6 +2181,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -5,3 +5,9 @@
#define _STAT_VER_SVR4 2
#define _STAT_VER_LINUX 3
#define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -2161,5 +2161,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -23,11 +23,6 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 1
-#define _MKNOD_VER_SVR4 2
-#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-
#ifndef __USE_FILE_OFFSET64
struct stat
{
@@ -5,3 +5,9 @@
#define _STAT_VER_SVR4 2
#define _STAT_VER_LINUX 3
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -24,11 +24,6 @@
#include <sgidefs.h>
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 1
-#define _MKNOD_VER_SVR4 2
-#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-
#if _MIPS_SIM == _ABIO32
/* Structure describing file characteristics. */
@@ -2152,6 +2152,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -2158,6 +2158,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -2152,6 +2152,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -5,3 +5,9 @@
#define _STAT_VER_SVR4 2
#define _STAT_VER_LINUX 3
#define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -2199,5 +2199,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -24,11 +24,6 @@
#include <bits/wordsize.h>
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 1
-#define _MKNOD_VER_SVR4 2
-#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-
#if __WORDSIZE == 32
@@ -2208,6 +2208,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 _IO_fprintf F
@@ -2071,6 +2071,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 _IO_fprintf F
@@ -2361,5 +2361,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -9,3 +9,9 @@
#else
# define _STAT_VER _STAT_VER_KERNEL
#endif
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -2128,5 +2128,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -24,16 +24,6 @@
#include <bits/wordsize.h>
-#if __WORDSIZE == 64
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 0
-#else
-/* Versions of the `xmknod' interface. */
-# define _MKNOD_VER_LINUX 1
-# define _MKNOD_VER_SVR4 2
-# define _MKNOD_VER _MKNOD_VER_LINUX
-#endif
-
#if __WORDSIZE == 64
struct stat
{
@@ -2206,6 +2206,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 _IO_fprintf F
@@ -2107,6 +2107,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 _IO_fprintf F
@@ -7,10 +7,14 @@
# define _STAT_VER_KERNEL 0
# define _STAT_VER_LINUX 1
# define _STAT_VER _STAT_VER_LINUX
+# define _MKNOD_VER_LINUX 0
#else
# define _STAT_VER_LINUX_OLD 1
# define _STAT_VER_KERNEL 1
# define _STAT_VER_SVR4 2
# define _STAT_VER_LINUX 3
-# define _STAT_VER _STAT_VER_LINUX
+# define _MKNOD_VER_LINUX 1
+# define _MKNOD_VER_SVR4 2
#endif
+#define _STAT_VER _STAT_VER_LINUX
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -2073,6 +2073,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -22,12 +22,6 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX 1
-#define _MKNOD_VER_SVR4 2
-#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-
-
struct stat
{
__dev_t st_dev; /* Device. */
@@ -2197,6 +2197,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 _IO_fprintf F
@@ -2124,6 +2124,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -5,3 +5,9 @@
#define _STAT_VER_SVR4 2
#define _STAT_VER_LINUX 3
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -22,17 +22,6 @@
#ifndef _BITS_STAT_H
#define _BITS_STAT_H 1
-/* Versions of the `struct stat' data structure. */
-#ifndef __x86_64__
-/* i386 versions of the `xmknod' interface. */
-# define _MKNOD_VER_LINUX 1
-# define _MKNOD_VER_SVR4 2
-# define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
-#else
-/* x86-64 versions of the `xmknod' interface. */
-# define _MKNOD_VER_LINUX 0
-#endif
-
struct stat
{
__dev_t st_dev; /* Device. */
@@ -5,9 +5,12 @@
# define _STAT_VER_KERNEL 1
# define _STAT_VER_SVR4 2
# define _STAT_VER_LINUX 3
+# define _MKNOD_VER_LINUX 1
+# define _MKNOD_VER_SVR4 2
#else
# define _STAT_VER_KERNEL 0
# define _STAT_VER_LINUX 1
+# define _MKNOD_VER_LINUX 0
#endif
#define _STAT_VER _STAT_VER_LINUX
-
+#define _MKNOD_VER _MKNOD_VER_LINUX
@@ -2082,6 +2082,8 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
GLIBC_2.4 __confstr_chk F
@@ -2179,5 +2179,7 @@ GLIBC_2.33 fstatat F
GLIBC_2.33 fstatat64 F
GLIBC_2.33 lstat F
GLIBC_2.33 lstat64 F
+GLIBC_2.33 mknod F
+GLIBC_2.33 mknodat F
GLIBC_2.33 stat F
GLIBC_2.33 stat64 F
@@ -5,3 +5,9 @@
#define _STAT_VER_SVR4 2
#define _STAT_VER_LINUX 3
#define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the 'xmknod' interface used in compatibility xmknod
+ functions. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX