Revert "linux: Move {f}xstat{at} to compat symbols"
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 2 Dec 2020 16:51:57 +0000 (13:51 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 2 Dec 2020 17:45:22 +0000 (14:45 -0300)
This reverts commit 20b39d59467b0c1d858e89ded8b0cebe55e22f60 to move
{f}xstat{at} back to default symbols.  ABIs with default symbol version
of 2.33 or newer (such as riscv32) continue to just provide the stat
symbols.

The idea is to not force static libraries built against old glibc
to update against new glibcs (since they reference the old
{f}xstat{at} symbols).

Checked on x86_64-linux-gnu and i686-linux-gnu.

20 files changed:
sysdeps/unix/sysv/linux/alpha/fxstat64.c
sysdeps/unix/sysv/linux/alpha/fxstatat64.c
sysdeps/unix/sysv/linux/alpha/lxstat64.c
sysdeps/unix/sysv/linux/alpha/xstat64.c
sysdeps/unix/sysv/linux/fxstat.c
sysdeps/unix/sysv/linux/fxstat64.c
sysdeps/unix/sysv/linux/fxstatat.c
sysdeps/unix/sysv/linux/fxstatat64.c
sysdeps/unix/sysv/linux/lxstat.c
sysdeps/unix/sysv/linux/lxstat64.c
sysdeps/unix/sysv/linux/mips/fxstat.c
sysdeps/unix/sysv/linux/mips/lxstat.c
sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
sysdeps/unix/sysv/linux/mips/xstat.c
sysdeps/unix/sysv/linux/xstat.c
sysdeps/unix/sysv/linux/xstat64.c

index bcfb55050c2d22221a8225864f5b45b539808855..9d6b8eca32a404612070f32de0bbc0fa24e494b8 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __fxstat64 (int vers, int fd, struct stat64 *buf)
 {
   switch (vers)
@@ -44,12 +42,4 @@ __fxstat64 (int vers, int fd, struct stat64 *buf)
       }
     }
 }
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
-strong_alias (__fxstat64, __fxstat_compat)
-compat_symbol (libc, __fxstat_compat, __fxstat, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_33)
-compat_symbol (libc, __fxstat64, __fxstat64, GLIBC_2_1);
-#endif
+strong_alias (__fxstat64, __fxstat);
index fa3074eecae8f230e2a09851cda31538a572d01c..997fb87ac66019a57a8fca50cff93f3830fcb0ab 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
 
-#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33)
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
 {
   return INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag);
 }
-strong_alias (__fxstatat64, __fxstatat_compat)
-compat_symbol (libc, __fxstatat_compat, __fxstatat, GLIBC_2_4);
-
-compat_symbol (libc, __fxstatat64, __fxstatat64, GLIBC_2_4);
-#endif
+strong_alias (__fxstatat64, __fxstatat);
index 7424b2f621a286bfd6d42176252b34b5eb4010b0..38f132f15ecab852bc59ed08bb267245164aa51f 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __lxstat64 (int vers, const char *name, struct stat64 *buf)
 {
   switch (vers)
@@ -45,12 +43,4 @@ __lxstat64 (int vers, const char *name, struct stat64 *buf)
       }
     }
 }
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
-strong_alias (__lxstat64, __lxstat_compat)
-compat_symbol (libc, __lxstat_compat, __lxstat, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_33)
-compat_symbol (libc, __lxstat64, __lxstat64, GLIBC_2_1);
-#endif
+weak_alias (__lxstat64, __lxstat);
index 59f7ddae7f1a50d6bb76c4451b75831441d18fba..c856c95dc5bdbf85377f1f7d9699e78d1a2fccaa 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __xstat64 (int vers, const char *name, struct stat64 *buf)
 {
   switch (vers)
@@ -45,12 +43,4 @@ __xstat64 (int vers, const char *name, struct stat64 *buf)
       }
     }
 }
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
-strong_alias (__xstat64, __xstat_compat)
-compat_symbol (libc, __xstat_compat, __xstat, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_33)
-compat_symbol (libc, __xstat64, __xstat64, GLIBC_2_1);
-#endif
+weak_alias (__xstat64, __xstat);
index 649bb952520a9d2e0af36661112fa8687d7a5098..528eedc2726fbbc333c27d4cc7a2ec1195c17811 100644 (file)
@@ -30,7 +30,6 @@
 
 /* Get information about the file FD in BUF.  */
 int
-attribute_compat_text_section
 __fxstat (int vers, int fd, struct stat *buf)
 {
   switch (vers)
@@ -62,7 +61,6 @@ __fxstat (int vers, int fd, struct stat *buf)
     }
 }
 
-compat_symbol (libc, __fxstat, __fxstat, GLIBC_2_0);
 # endif /* SHLIB_COMPAT  */
 
 #endif /* XSTAT_IS_XSTAT64  */
index 4bd926bf01bd1e9b96204e5556c3d2b685bbb6a9..9471d0be45957dcfd1c2c745f9c79dc5048a081f 100644 (file)
@@ -31,7 +31,6 @@
 /* Get information about the file FD in BUF.  */
 
 int
-attribute_compat_text_section
 ___fxstat64 (int vers, int fd, struct stat64 *buf)
 {
 #if XSTAT_IS_XSTAT64
@@ -68,17 +67,15 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf)
 }
 
 #if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-compat_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2);
+versioned_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2);
 strong_alias (___fxstat64, __old__fxstat64)
 compat_symbol (libc, __old__fxstat64, __fxstat64, GLIBC_2_1);
 #else
 strong_alias (___fxstat64, __fxstat64)
-compat_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2);
 #endif
 
 #if XSTAT_IS_XSTAT64
-strong_alias (___fxstat64, __fxstat_compat)
-compat_symbol (libc, __fxstat_compat, __fxstat, GLIBC_2_2);
+strong_alias (___fxstat64, __fxstat)
 #endif
 
 #endif /* SHLIB_COMPAT  */
index 2083e18eac0a9d1971fcdb7ffd358519ba856566..bd78971dea2003938278926dcb34917815854b5c 100644 (file)
@@ -30,7 +30,6 @@
 
 /* Get information about the file FD in BUF.  */
 int
-attribute_compat_text_section
 __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 {
 #if STAT_IS_KERNEL_STAT
@@ -51,7 +50,6 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 #endif
 }
 
-compat_symbol (libc, __fxstatat, __fxstatat, GLIBC_2_4);
 # endif /* SHLIB_COMPAT  */
 
 #endif /* XSTAT_IS_XSTAT64  */
index 8a505451d9870f26e89c8de4f6bc404525a827f5..091da83f1f8fb48e5ceddb2b7379ca363e8fc7fd 100644 (file)
@@ -31,7 +31,6 @@
 /* Get information about the file FD in BUF.  */
 
 int
-attribute_compat_text_section
 __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
 {
 #if XSTAT_IS_XSTAT64
@@ -66,11 +65,8 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
   return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
 }
 
-compat_symbol (libc, __fxstatat64, __fxstatat64, GLIBC_2_4);
-
 #if XSTAT_IS_XSTAT64
-strong_alias (__fxstatat64, __fxstatat_compat)
-compat_symbol (libc, __fxstatat_compat, __fxstatat, GLIBC_2_4);
+strong_alias (__fxstatat64, __fxstatat)
 #endif
 
 #endif /* SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33)  */
index 913618eab95d96048d8b8a838fd2085cffcbf2c2..c7d4507d7c3e46cc65c2dee2026e9abe91d7bb47 100644 (file)
@@ -30,7 +30,6 @@
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __lxstat (int vers, const char *name, struct stat *buf)
 {
   switch (vers)
@@ -63,7 +62,6 @@ __lxstat (int vers, const char *name, struct stat *buf)
     }
 }
 
-compat_symbol (libc, __lxstat, __lxstat, GLIBC_2_0);
 # endif /* SHLIB_COMPAT  */
 
 #endif /* XSTAT_IS_XSTAT64  */
index 277b54b305b0babd985fb73876b0f41f9691588b..74e11f3467f40399958da9ed8f141924e80643fa 100644 (file)
@@ -31,7 +31,6 @@
 /* Get information about the file NAME in BUF.  */
 
 int
-attribute_compat_text_section
 ___lxstat64 (int vers, const char *name, struct stat64 *buf)
 {
 #if XSTAT_IS_XSTAT64
@@ -85,17 +84,15 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
 }
 
 #if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-compat_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2);
+versioned_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2);
 strong_alias (___lxstat64, __old__lxstat64)
 compat_symbol (libc, __old__lxstat64, __lxstat64, GLIBC_2_1);
 #else
 strong_alias (___lxstat64, __lxstat64);
-compat_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2);
 #endif
 
 #if XSTAT_IS_XSTAT64
-strong_alias (___lxstat64,__lxstat_compat)
-compat_symbol (libc, __lxstat_compat, __lxstat, GLIBC_2_2);
+strong_alias (___lxstat64,__lxstat)
 #endif
 
 #endif /* SHLIB_COMPAT  */
index cb9f656628927800f3070a675fbd4f7a6945f900..4585c2362bb382a92ee5874cfed634139ea13598 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __fxstat (int vers, int fd, struct stat *buf)
 {
   switch (vers)
@@ -43,7 +39,3 @@ __fxstat (int vers, int fd, struct stat *buf)
       }
     }
 }
-
-compat_symbol (libc, __fxstat, __fxstat, GLIBC_2_0);
-
-#endif
index ebd05cca509ac789d19069b698e482198cf95de3..62a3b15b32ee9f25c6ababf813fea7b57225d937 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __lxstat (int vers, const char *name, struct stat *buf)
 {
   switch (vers)
@@ -43,7 +39,3 @@ __lxstat (int vers, const char *name, struct stat *buf)
       }
     }
 }
-
-compat_symbol (libc, __lxstat, __lxstat, GLIBC_2_0);
-
-#endif
index 855c650814cc59893ac54eebaa13f36af85d2b1a..e6c1cacd4b7c7769ee3ef43c8c34802d8ca68701 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_33)
 
 /* Get information about the file FD in BUF.  */
 
 int
-attribute_compat_text_section
 __fxstat64 (int vers, int fd, struct stat64 *buf)
 {
   struct kernel_stat kbuf;
@@ -35,7 +31,3 @@ __fxstat64 (int vers, int fd, struct stat64 *buf)
   return r ?: __xstat64_conv (vers, &kbuf, buf);
 
 }
-
-compat_symbol (libc, __fxstat64, __fxstat64, GLIBC_2_2);
-
-#endif
index 1c1fbb02c29433679e3fcf9b8bc3dd836de2964e..e384dbab8b6eed636292acfa985eec9f5d8a0ef0 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33)
 
 /* Get information about the file FD in BUF.  */
 int
-attribute_compat_text_section
 __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 {
   struct kernel_stat kst;
   int r = INLINE_SYSCALL_CALL (newfstatat, fd, file, &kst, flag);
   return r ?: __xstat_conv (vers, &kst, st);
 }
-
-compat_symbol (libc, __fxstatat, __fxstatat, GLIBC_2_4);
-
-#endif
index f40a2c5aa8af98b50a6e4cdca202ddc65e27bf51..cfd172d3018c37407be02d0fe1d2a42f417010dd 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33)
 
 /* Get information about the file NAME in BUF.  */
 
 int
-attribute_compat_text_section
 __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
 {
   if (vers == _STAT_VER_LINUX)
@@ -37,7 +33,3 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
     }
   return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
 }
-
-compat_symbol (libc, __fxstatat64, __fxstatat64, GLIBC_2_4);
-
-#endif
index 752c5284a713d2c6b41d54a1b7ebf4a8213184d2..0f3934f8c8b37aa34a11f5dfb678cd1de736894c 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_33)
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __lxstat64 (int vers, const char *name, struct stat64 *buf)
 {
   struct kernel_stat kbuf;
   int r = INLINE_SYSCALL_CALL (lstat, name, &kbuf);
   return r ?: __xstat64_conv (vers, &kbuf, buf);
 }
-
-compat_symbol (libc, __lxstat64, __lxstat64, GLIBC_2_2);
-
-#endif
index a620ba2f1f2f2ab37310f11de9a4b22d5b900269..699df60740f0feeba148a998af04afd7ed2cf88b 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_33)
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __xstat64 (int vers, const char *name, struct stat64 *buf)
 {
   struct kernel_stat kbuf;
   int r = INLINE_SYSCALL_CALL (stat, name, &kbuf);
   return r ?: __xstat64_conv (vers, &kbuf, buf);
 }
-
-compat_symbol (libc, __xstat64, __xstat64, GLIBC_2_2);
-
-#endif
index 0748a3422dfa4c4a59a297df1e5a215fee659992..d6ff5ccbe06412ea55fd915679df2e8340b48846 100644 (file)
 #include <kernel_stat.h>
 #include <sysdep.h>
 #include <xstatconv.h>
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __xstat (int vers, const char *name, struct stat *buf)
 {
   switch (vers)
@@ -43,7 +39,3 @@ __xstat (int vers, const char *name, struct stat *buf)
       }
     }
 }
-
-compat_symbol (libc, __xstat, __xstat, GLIBC_2_0);
-
-#endif
index 3eb2d8c51b4c91af6dcec4be0c7eaefee10b7583..87556af616f1dc76566f71f5e0e7b78600a7e0fe 100644 (file)
@@ -30,7 +30,6 @@
 
 /* Get information about the file NAME in BUF.  */
 int
-attribute_compat_text_section
 __xstat (int vers, const char *name, struct stat *buf)
 {
   switch (vers)
@@ -62,7 +61,6 @@ __xstat (int vers, const char *name, struct stat *buf)
     }
 }
 
-compat_symbol (libc, __xstat, __xstat, GLIBC_2_0);
 # endif /* SHLIB_COMPAT  */
 
 #endif /* XSTAT_IS_XSTAT64  */
index dd4f808c7ab732aa98e266b0bfd4d1a6f165c42c..ec912fd2b9c75da27a07614a057e1d5b50eb458c 100644 (file)
@@ -31,7 +31,6 @@
 /* Get information about the file NAME in BUF.  */
 
 int
-attribute_compat_text_section
 ___xstat64 (int vers, const char *name, struct stat64 *buf)
 {
 #if XSTAT_IS_XSTAT64
@@ -82,17 +81,15 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)
 }
 
 #if XSTAT_IS_XSTAT64
-strong_alias (___xstat64, __xstat_compat)
-compat_symbol (libc, __xstat_compat, __xstat, GLIBC_2_2);
+strong_alias (___xstat64, __xstat)
 #endif
 
 #if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-compat_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2);
+versioned_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2);
 strong_alias (___xstat64, __old__xstat64)
 compat_symbol (libc, __old__xstat64, __xstat64, GLIBC_2_1);
 #else
 strong_alias (___xstat64, __xstat64)
-compat_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2);
 #endif
 
 #endif /* SHLIB_COMPAT  */