mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 11:43:34 +08:00
Revert "linux: Move {f}xstat{at} to compat symbols"
This reverts commit 20b39d5946
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.
This commit is contained in:
parent
be5365e87b
commit
22edf4d4b2
@ -22,11 +22,9 @@
|
||||
#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);
|
||||
|
@ -22,18 +22,11 @@
|
||||
#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);
|
||||
|
@ -23,11 +23,9 @@
|
||||
#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);
|
||||
|
@ -23,11 +23,9 @@
|
||||
#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);
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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) */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -21,13 +21,9 @@
|
||||
#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
|
||||
|
@ -21,13 +21,9 @@
|
||||
#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
|
||||
|
@ -20,14 +20,10 @@
|
||||
#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
|
||||
|
@ -21,20 +21,12 @@
|
||||
#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
|
||||
|
@ -19,14 +19,10 @@
|
||||
#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
|
||||
|
@ -20,20 +20,12 @@
|
||||
#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
|
||||
|
@ -20,20 +20,12 @@
|
||||
#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
|
||||
|
@ -21,13 +21,9 @@
|
||||
#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
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user