[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