diff options
58 files changed, 132 insertions, 172 deletions
diff --git a/include/sys/stat.h b/include/sys/stat.h index 061204b1fc..1f832f6ce8 100644 --- a/include/sys/stat.h +++ b/include/sys/stat.h @@ -29,14 +29,18 @@ libc_hidden_proto (fchmodat) 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 69b2468d64..6dd2c33fcf 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..9eb4a2af7f 100644 --- a/io/mknod.c +++ b/io/mknod.c @@ -6,23 +6,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 +15,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..63a8068ad6 100644 --- a/io/mknodat.c +++ b/io/mknodat.c @@ -6,23 +6,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 +15,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 eb9cf5d5af..58c3770622 100644 --- a/io/sys/stat.h +++ b/io/sys/stat.h @@ -367,43 +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 - -# if defined __USE_MISC || defined __USE_XOPEN_EXTENDED -# 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 -#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 f37ce0e8ae..e2ff0e8b9e 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2198,6 +2198,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 9666cd11c0..4cc1c6a591 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2167,5 +2167,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 e2b33b4b31..26ad9845e4 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2249,6 +2249,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 29351ead80..bb9dfd4daf 100644 --- a/sysdeps/unix/sysv/linux/arc/libc.abilist +++ b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -1927,5 +1927,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index ee9786f0dc..9ab3924888 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -148,6 +148,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 290297631f..14a84dac8f 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2111,5 +2111,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 5e37056229..5c8502f3d3 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2070,6 +2070,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 de9cbc278c..4f0d3c1eb5 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2236,6 +2236,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 b21a3192dc..e3b345b803 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -2102,6 +2102,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 e0e01175dc..c4891479d3 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2182,6 +2182,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 eb8b9ce933..143b0163b4 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2162,5 +2162,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 23f77798d0..b2295f1937 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2153,6 +2153,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 abfbe85561..aa9c6a4dca 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2159,6 +2159,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 3d9ad1907f..5939588ad5 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2153,6 +2153,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 c1d7438361..92556c4237 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2200,5 +2200,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 18f4f3e91d..26c93dff05 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2209,6 +2209,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 965ef6abc1..c2ca00709e 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -2072,6 +2072,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 9dbbd43567..0ea50dc851 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2362,5 +2362,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist index 9e5e1c084c..22169f2c74 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist @@ -1213,6 +1213,8 @@ GLIBC_2.33 mkdirat F GLIBC_2.33 mkdtemp F GLIBC_2.33 mkfifo F GLIBC_2.33 mkfifoat F +GLIBC_2.33 mknod F +GLIBC_2.33 mknodat F GLIBC_2.33 mkostemp F GLIBC_2.33 mkostemp64 F GLIBC_2.33 mkostemps F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 495d1f5f40..1626c5351f 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2129,5 +2129,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 @@ -25,16 +25,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 { __dev_t st_dev; /* Device. */ diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index a87fb8676a..a66426eb4d 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2207,6 +2207,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 25dfdcb21f..ab351873ae 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2108,6 +2108,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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..9923199e40 100644 --- a/sysdeps/unix/sysv/linux/s390/xstatver.h +++ b/sysdeps/unix/sysv/linux/s390/xstatver.h @@ -6,11 +6,14 @@ #if __WORDSIZE == 64 # 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 ac918a324e..d36f228192 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2074,6 +2074,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 db1e113727..59b4313280 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2198,6 +2198,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 0d3901e38a..266dcdfa08 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2125,6 +2125,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 4447212894..678d5bc022 100644 --- a/sysdeps/unix/sysv/linux/x86/xstatver.h +++ b/sysdeps/unix/sysv/linux/x86/xstatver.h @@ -5,8 +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 a982db4601..4fff61818b 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2083,6 +2083,8 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 8662f51c1a..102ed47a9c 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2180,5 +2180,7 @@ GLIBC_2.33 fstatat64 F GLIBC_2.33 lstat F GLIBC_2.33 lstat64 F 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 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 |