[PATCH 10/16] Remove mknod wrapper functions, move them to symbols
Lukasz Majewski
lukma@denx.de
Fri Jul 24 09:25:03 GMT 2020
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20200724/05ad90d3/attachment-0001.sig>
More information about the Libc-alpha
mailing list