From: Adhemerval Zanella Date: Thu, 16 Jul 2020 19:46:52 +0000 (-0300) Subject: Remove mknod wrapper functions, move them to symbols X-Git-Tag: glibc-2.33~404 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=589260cef8c2090d67d3deaa0a9ffa61c96de951;p=thirdparty%2Fglibc.git Remove mknod wrapper functions, move them to symbols 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 LGPL exception is also removed since it is no longer statically linked to binaries. Internally the _STAT_VER* definitions are moved to the arch-specific xstatver.h file. Checked with a build for all affected ABIs. I also checked on x86_64, i686, powerpc, powerpc64le, sparcv9, sparc64, s390, and s390x. Reviewed-by: Lukasz Majewski --- diff --git a/include/sys/stat.h b/include/sys/stat.h index 061204b1fc0..1f832f6ce8c 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 69b2468d645..6dd2c33fcff 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 f6db0e84ade..49c4d2d40a2 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 ac968292303..9eb4a2af7f2 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 . */ - #include #include -/* This definition is only used if inlining fails for this function; see - the last page of . 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 65c9f1aa9c2..63a8068ad60 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 . */ - #include #include -/* This definition is only used if inlining fails for this function; see - the last page of . 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 eb9cf5d5aff..58c3770622d 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 #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 d727c98a166..281013b2f12 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 f37ce0e8ae2..e2ff0e8b9e1 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 61f62e2e967..0b89f6c291f 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 5287fe87821..d1e0977ba1e 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 9666cd11c08..4cc1c6a5918 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 1fc27936b90..d20fb5a4b0c 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 e2b33b4b314..26ad9845e41 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 bbb9469617a..1cb5d26bb1e 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 29351ead807..bb9dfd4daf6 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 ee9786f0dc2..9ab39248881 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 b5426232088..0669451f69c 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 290297631f8..14a84dac8fb 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 35e14a47c6c..1b586d72fa0 100644 --- a/sysdeps/unix/sysv/linux/generic/bits/stat.h +++ b/sysdeps/unix/sysv/linux/generic/bits/stat.h @@ -26,9 +26,6 @@ #include #include -/* 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 8675db494c3..d8fd35beb69 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 5e370562293..5c8502f3d3b 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 de9cbc278c6..4f0d3c1eb59 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 8ec2e4c81f7..6937f3227aa 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 b21a3192dc1..e3b345b803c 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 4f02f697adc..f24ab4a9ee1 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 bf41776e6ca..c6f761fcc0b 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 e0e01175dc9..c4891479d36 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 59dba71dd15..8e1801b6037 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 eb8b9ce9333..143b0163b4a 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 51316a8c1bb..b3068e5c982 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 bddaa0d5ecc..790cc834d20 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 cfeb4ce6a4c..f229c580139 100644 --- a/sysdeps/unix/sysv/linux/mips/bits/stat.h +++ b/sysdeps/unix/sysv/linux/mips/bits/stat.h @@ -24,11 +24,6 @@ #include -/* 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 23f77798d02..b2295f19378 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 abfbe855617..aa9c6a4dcaf 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 3d9ad1907f6..5939588ad59 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 59dba71dd15..8e1801b6037 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 c1d74383613..92556c42373 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 40ea9a96d49..80c9dc23ac6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h @@ -24,11 +24,6 @@ #include -/* 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 18f4f3e91d1..26c93dff054 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 965ef6abc12..c2ca00709e3 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 9dbbd435677..0ea50dc8511 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 1656e2f7e43..aa61dfd6785 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 9e5e1c084c1..22169f2c742 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 495d1f5f40a..1626c5351f6 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 d12055529a3..75fa871a1db 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/stat.h +++ b/sysdeps/unix/sysv/linux/s390/bits/stat.h @@ -24,16 +24,6 @@ #include -#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 a87fb8676ad..a66426eb4d8 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 25dfdcb21fd..ab351873ae0 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 5ad0db2797a..9923199e407 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 ac918a324e7..d36f228192f 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 7af17b5c400..d10ebb1a9a4 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 db1e1137275..59b4313280c 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 0d3901e38ab..266dcdfa08b 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 ae92b530e75..693b41c3aca 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 f132569e9d6..2c0a3f120b2 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 44472128940..678d5bc0227 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 a982db4601a..4fff61818ba 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 8662f51c1a4..102ed47a9c9 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 59dba71dd15..8e1801b6037 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