Auto-sync with upstream branch master
Upstream commit: 4c38c1a229bc3628269ad98bd7e8d31d118d91f6 - Drop glibc-revert-fxstat-compat.patch; applied upstream. - Drop glibc-revert-mknod-compat.patch; applied upstream. - powerpc64le: Add glibc-hwcaps support - x86: Adjust tst-cpu-features-supports.c for GCC 11 - x86: Set RDRAND usable if CPU supports RDRAND - elf: Add missing <stddef.h> header to elf/dl-hwcaps.h - lowlevellock-futex: Remove not used macros - futex: Remove not used futex_reltimed_wait{_cancelable} - y2038: Convert gai_suspend to support 64 bit time - symbols: Add defines for libanl's libanl_hidden_{def|proto} - x86_64: Add glibc-hwcaps support - elf: Add glibc-hwcaps subdirectory support to ld.so cache processing - elf: Process glibc-hwcaps subdirectories in ldconfig - elf: Implement tail merging of strings in ldconfig - elf: Implement a string table for ldconfig, with tail merging - elf: Add extension mechanism to ld.so.cache - elf: Add endianness markup to ld.so.cache (bug 27008) - elf: Add glibc-hwcaps support for LD_LIBRARY_PATH - elf: Synchronize <elf.h> section header flags with binutils - x86: Fix THREAD_SELF definition to avoid ld.so crash (bug 27004) - htl: Add hidden def for __pthread_create/detach - manual: Clarify File Access Modes section and add O_PATH - htl: Add missing symbols - Revert "linux: Move xmknod{at} to compat symbols" - Revert "linux: Move {f}xstat{at} to compat symbols" - elf.h: Fix spelling of EM_TILE64 comment - nptl: Fix __futex_clocklock64 return error check [BZ #26964] - powerpc64le: ifunc select *f128 routines in multiarch mode - y2038: Convert aio_suspend to support 64 bit time - Fix typo in NEWS file - nptl: Add EOVERFLOW checks for futex calls - nptl: Fix PTHREAD_PRIO_PROTECT timed lock - sh: Add sh4 fpu Implies folder - io: nftw/ftw: Fix stack overflow with large nopenfd [BZ #26353] - elf: Introduce enum opt_format in the ldconfig implementation - support: Add support_copy_file - NEWS entry for commit b4f020c9b408fb3d1d3d4901c4a71839145f8791 - timezone: Change zdump installation to bin directory - nptl: Return EINVAL for invalid clock for pthread_clockjoin_np - nptl: Return EINVAL for pthread_mutex_clocklock/PI with CLOCK_MONOTONIC [BZ #26801] - nptl: Replace lll_futex_wake with futex-internal.h - nptl: Replace lll_futex_supported_clockid with futex-internal.h - nptl: Replace lll_futex_{timed_}wait by futex-internal.h - nptl: Replace lll_timedwait with __futex_abstimed_wait64 - nptl: Replace __futex_clocklock_wait64 with __futex_abstimed_wait64 - nptl: Remove _futex_clock_wait_bitset64 - nptl: Consolidate __futex_abstimed_wait_{cancelable}64 - nptl: Extend __futex_abstimed_wait_cancelable64 comment - nptl: Remove clockwait_tid - nptl: Remove futex_wait_cancelable - nptl: Remove unused internal futex functions - Mark mtrace tests UNSUPPORTED if bug-ga2.mtrace or tst-leaks2.mtrace are missing - elf: Fix uninitialized variable for _dl_write - powerpc: Make PT_THREAD_POINTER available to assembly code - Use libnss_files.so for tests posix/bug-ga2 and resolv/tst-leaks2 [BZ #26821] - hurd report-wait: Fix stpcpy usage - hurd S_msg_report_wait: Fix detecting fd ports - hurd S_msg_report_wait: Fix reporting ports - hurd: Fix strcpy calls - hurd: Fix _S_msg_get/set_env_variable prototype - hurd: Enable using ifunc - Add {,sysdep-}ld-library-path make variable - nptl: Move stack list variables into _rtld_global - hurd: let _dl_argv and __libc_stack_end be relro - hurd: Remove some remnants of cthreads - nanosleep: Pass NULL when rem == NULL on ports with __TIMESIZE != 64 - y2038: Convert thrd_sleep to support 64 bit time - y2038: Convert mtx_timedlock to support 64 bit time - y2038: Convert cnd_timedwait to support 64 bit time - hurd: Drop CLOCK_MONOTONIC change which slipped in - hurd: make ptsname fail with ENOTTY on non-master-pty - mach: Add missing assert.h include - hurd: break relocation loop between libc.so and lib{mach,hurd}user.so - Remove obsolete defines for HPUX support from fcntl.h and update O_NONBLOCK. - Remove tls.h inclusion from internal errno.h - nptl: Eliminate <smp.h> and __is_smp - powerpc: Eliminate UP macro conditionals - x86: Remove UP macro. Define LOCK_PREFIX unconditionally. - alpha: Remove UP preprocessor conditionals - hurd: Make sure signals get started - hurd: initialize libpthread before starting the signal thread - hurd: Make _hurd_libc_proc_init idempotent - powerpc: Add optimized stpncpy for POWER9 - powerpc: Add optimized strncpy for POWER9 - Don't use nested function in test-ffs - Use __builtin___stpncpy_chk when available - tests: Remove NULL check for an array - hurd: Move {,f,l}xstat{,at} and xmknod{at} to compat symbols - hurd: Notify the proc server later during initialization - htl: Initialize later - htl: Keep thread signals blocked during its initialization - htl: Fix spurious symbols in namespaces - Use O_CLOEXEC in sysconf [BZ #26791] - struct _Unwind_Exception alignment should not depend on compiler flags - hurd: keep only required PLTs in ld.so - hurd: Add missing startup calls - riscv: Get cache information through sysconf - RISC-V: Add _dl_start_user.
This commit is contained in:
parent
a3f3b637ae
commit
8f61d411e6
@ -1,667 +0,0 @@
|
||||
From d28b30ba10c1c7da38392e1759ae141d107f3640 Mon Sep 17 00:00:00 2001
|
||||
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
||||
Date: Wed, 21 Oct 2020 14:20:17 +0530
|
||||
Subject: [PATCH] Revert "linux: Move {f}xstat{at} to compat symbols"
|
||||
|
||||
This reverts commit 20b39d59467b0c1d858e89ded8b0cebe55e22f60.
|
||||
---
|
||||
sysdeps/unix/sysv/linux/alpha/fxstat64.c | 12 +----------
|
||||
sysdeps/unix/sysv/linux/alpha/fxstatat64.c | 9 +-------
|
||||
sysdeps/unix/sysv/linux/alpha/lxstat64.c | 12 +----------
|
||||
sysdeps/unix/sysv/linux/alpha/xstat64.c | 12 +----------
|
||||
sysdeps/unix/sysv/linux/fxstat.c | 8 -------
|
||||
sysdeps/unix/sysv/linux/fxstat64.c | 14 ++++---------
|
||||
sysdeps/unix/sysv/linux/fxstatat.c | 8 -------
|
||||
sysdeps/unix/sysv/linux/fxstatat64.c | 12 +----------
|
||||
sysdeps/unix/sysv/linux/lxstat.c | 8 -------
|
||||
sysdeps/unix/sysv/linux/lxstat64.c | 21 +++++++------------
|
||||
sysdeps/unix/sysv/linux/mips/fxstat.c | 8 -------
|
||||
sysdeps/unix/sysv/linux/mips/lxstat.c | 8 -------
|
||||
.../unix/sysv/linux/mips/mips64/fxstat64.c | 8 -------
|
||||
.../unix/sysv/linux/mips/mips64/fxstatat.c | 8 -------
|
||||
.../unix/sysv/linux/mips/mips64/fxstatat64.c | 8 -------
|
||||
.../unix/sysv/linux/mips/mips64/lxstat64.c | 8 -------
|
||||
sysdeps/unix/sysv/linux/mips/mips64/xstat64.c | 9 +-------
|
||||
sysdeps/unix/sysv/linux/mips/xstat.c | 8 -------
|
||||
.../unix/sysv/linux/riscv/rv32/libc.abilist | 8 +++++++
|
||||
sysdeps/unix/sysv/linux/xstat.c | 8 -------
|
||||
sysdeps/unix/sysv/linux/xstat64.c | 15 +++++--------
|
||||
21 files changed, 31 insertions(+), 181 deletions(-)
|
||||
|
||||
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstat64.c b/sysdeps/unix/sysv/linux/alpha/fxstat64.c
|
||||
index bcfb55050c..9d6b8eca32 100644
|
||||
--- a/sysdeps/unix/sysv/linux/alpha/fxstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/alpha/fxstat64.c
|
||||
@@ -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);
|
||||
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
|
||||
index fa3074eeca..997fb87ac6 100644
|
||||
--- a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
|
||||
@@ -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);
|
||||
diff --git a/sysdeps/unix/sysv/linux/alpha/lxstat64.c b/sysdeps/unix/sysv/linux/alpha/lxstat64.c
|
||||
index 7424b2f621..38f132f15e 100644
|
||||
--- a/sysdeps/unix/sysv/linux/alpha/lxstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/alpha/lxstat64.c
|
||||
@@ -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);
|
||||
diff --git a/sysdeps/unix/sysv/linux/alpha/xstat64.c b/sysdeps/unix/sysv/linux/alpha/xstat64.c
|
||||
index 59f7ddae7f..c856c95dc5 100644
|
||||
--- a/sysdeps/unix/sysv/linux/alpha/xstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/alpha/xstat64.c
|
||||
@@ -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);
|
||||
diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c
|
||||
index 649bb95252..f78497ea92 100644
|
||||
--- a/sysdeps/unix/sysv/linux/fxstat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/fxstat.c
|
||||
@@ -24,13 +24,9 @@
|
||||
#if !XSTAT_IS_XSTAT64
|
||||
# include <xstatconv.h>
|
||||
# include <xstatover.h>
|
||||
-# include <shlib-compat.h>
|
||||
-
|
||||
-# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
|
||||
|
||||
/* Get information about the file FD in BUF. */
|
||||
int
|
||||
-attribute_compat_text_section
|
||||
__fxstat (int vers, int fd, struct stat *buf)
|
||||
{
|
||||
switch (vers)
|
||||
@@ -61,8 +57,4 @@ __fxstat (int vers, int fd, struct stat *buf)
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
-compat_symbol (libc, __fxstat, __fxstat, GLIBC_2_0);
|
||||
-# endif /* SHLIB_COMPAT */
|
||||
-
|
||||
#endif /* XSTAT_IS_XSTAT64 */
|
||||
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
|
||||
index 4bd926bf01..dd7b752873 100644
|
||||
--- a/sysdeps/unix/sysv/linux/fxstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
|
||||
@@ -24,14 +24,10 @@
|
||||
#include <sysdep.h>
|
||||
#include <xstatconv.h>
|
||||
#include <statx_cp.h>
|
||||
-#include <shlib-compat.h>
|
||||
-
|
||||
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
|
||||
|
||||
/* 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
|
||||
@@ -67,18 +63,16 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf)
|
||||
#endif /* XSTAT_IS_XSTAT64 */
|
||||
}
|
||||
|
||||
+#include <shlib-compat.h>
|
||||
+
|
||||
#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 */
|
||||
diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
|
||||
index 2083e18eac..1a60fc10e3 100644
|
||||
--- a/sysdeps/unix/sysv/linux/fxstatat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/fxstatat.c
|
||||
@@ -24,13 +24,9 @@
|
||||
#if !XSTAT_IS_XSTAT64
|
||||
# include <xstatconv.h>
|
||||
# include <xstatover.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)
|
||||
{
|
||||
#if STAT_IS_KERNEL_STAT
|
||||
@@ -50,8 +46,4 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
|
||||
return r ?: __xstat32_conv (vers, &st64, st);
|
||||
#endif
|
||||
}
|
||||
-
|
||||
-compat_symbol (libc, __fxstatat, __fxstatat, GLIBC_2_4);
|
||||
-# endif /* SHLIB_COMPAT */
|
||||
-
|
||||
#endif /* XSTAT_IS_XSTAT64 */
|
||||
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
|
||||
index 8a505451d9..7fe034809c 100644
|
||||
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
|
||||
@@ -24,14 +24,10 @@
|
||||
#include <sysdep.h>
|
||||
#include <xstatconv.h>
|
||||
#include <statx_cp.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
|
||||
__fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
|
||||
{
|
||||
#if XSTAT_IS_XSTAT64
|
||||
@@ -65,12 +61,6 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
|
||||
#endif
|
||||
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) */
|
||||
diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
|
||||
index 913618eab9..9e7e02d298 100644
|
||||
--- a/sysdeps/unix/sysv/linux/lxstat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/lxstat.c
|
||||
@@ -20,17 +20,13 @@
|
||||
#include <fcntl.h>
|
||||
#include <kernel_stat.h>
|
||||
#include <sysdep.h>
|
||||
-#include <shlib-compat.h>
|
||||
|
||||
#if !XSTAT_IS_XSTAT64
|
||||
# include <xstatconv.h>
|
||||
# include <xstatover.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)
|
||||
@@ -62,8 +58,4 @@ __lxstat (int vers, const char *name, struct stat *buf)
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
-compat_symbol (libc, __lxstat, __lxstat, GLIBC_2_0);
|
||||
-# endif /* SHLIB_COMPAT */
|
||||
-
|
||||
#endif /* XSTAT_IS_XSTAT64 */
|
||||
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
|
||||
index 277b54b305..2b06133bf3 100644
|
||||
--- a/sysdeps/unix/sysv/linux/lxstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
|
||||
@@ -24,14 +24,10 @@
|
||||
#include <sysdep.h>
|
||||
#include <xstatconv.h>
|
||||
#include <statx_cp.h>
|
||||
-#include <shlib-compat.h>
|
||||
-
|
||||
-#if SHLIB_COMPAT(libc, GLIBC_2_1, 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)
|
||||
{
|
||||
#if XSTAT_IS_XSTAT64
|
||||
@@ -84,18 +80,17 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
|
||||
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
|
||||
}
|
||||
|
||||
+#if XSTAT_IS_XSTAT64
|
||||
+weak_alias (___lxstat64, __lxstat);
|
||||
+weak_alias (___lxstat64, __GI___lxstat);
|
||||
+#endif
|
||||
+
|
||||
+#include <shlib-compat.h>
|
||||
+
|
||||
#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);
|
||||
-#endif
|
||||
-
|
||||
-#endif /* SHLIB_COMPAT */
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/fxstat.c b/sysdeps/unix/sysv/linux/mips/fxstat.c
|
||||
index cb9f656628..4585c2362b 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/fxstat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/fxstat.c
|
||||
@@ -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
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/lxstat.c b/sysdeps/unix/sysv/linux/mips/lxstat.c
|
||||
index ebd05cca50..62a3b15b32 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/lxstat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/lxstat.c
|
||||
@@ -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
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
|
||||
index 855c650814..e6c1cacd4b 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
|
||||
@@ -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
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
|
||||
index 1c1fbb02c2..e384dbab8b 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
|
||||
@@ -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
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
|
||||
index f40a2c5aa8..cfd172d301 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
|
||||
@@ -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
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
|
||||
index 752c5284a7..0f3934f8c8 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
|
||||
@@ -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
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
|
||||
index a620ba2f1f..64d2952276 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
|
||||
@@ -20,20 +20,13 @@
|
||||
#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
|
||||
diff --git a/sysdeps/unix/sysv/linux/mips/xstat.c b/sysdeps/unix/sysv/linux/mips/xstat.c
|
||||
index 0748a3422d..d6ff5ccbe0 100644
|
||||
--- a/sysdeps/unix/sysv/linux/mips/xstat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/mips/xstat.c
|
||||
@@ -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
|
||||
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
|
||||
index 66459efdba..365a6b17cf 100644
|
||||
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
|
||||
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
|
||||
@@ -201,6 +201,10 @@ GLIBC_2.33 __fsetlocking F
|
||||
GLIBC_2.33 __fwprintf_chk F
|
||||
GLIBC_2.33 __fwritable F
|
||||
GLIBC_2.33 __fwriting F
|
||||
+GLIBC_2.33 __fxstat F
|
||||
+GLIBC_2.33 __fxstat64 F
|
||||
+GLIBC_2.33 __fxstatat F
|
||||
+GLIBC_2.33 __fxstatat64 F
|
||||
GLIBC_2.33 __getauxval F
|
||||
GLIBC_2.33 __getcwd_chk F
|
||||
GLIBC_2.33 __getdelim F
|
||||
@@ -283,6 +287,8 @@ GLIBC_2.33 __libc_start_main F
|
||||
GLIBC_2.33 __libc_valloc F
|
||||
GLIBC_2.33 __longjmp_chk F
|
||||
GLIBC_2.33 __lseek F
|
||||
+GLIBC_2.33 __lxstat F
|
||||
+GLIBC_2.33 __lxstat64 F
|
||||
GLIBC_2.33 __malloc_hook D 0x4
|
||||
GLIBC_2.33 __mbrlen F
|
||||
GLIBC_2.33 __mbrtowc F
|
||||
@@ -481,6 +487,8 @@ GLIBC_2.33 __wunderflow F
|
||||
GLIBC_2.33 __xpg_basename F
|
||||
GLIBC_2.33 __xpg_sigpause F
|
||||
GLIBC_2.33 __xpg_strerror_r F
|
||||
+GLIBC_2.33 __xstat F
|
||||
+GLIBC_2.33 __xstat64 F
|
||||
GLIBC_2.33 _dl_mcount_wrapper F
|
||||
GLIBC_2.33 _dl_mcount_wrapper_check F
|
||||
GLIBC_2.33 _environ D 0x4
|
||||
diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
|
||||
index 3eb2d8c51b..a971e8cf6a 100644
|
||||
--- a/sysdeps/unix/sysv/linux/xstat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/xstat.c
|
||||
@@ -20,17 +20,13 @@
|
||||
#include <fcntl.h>
|
||||
#include <kernel_stat.h>
|
||||
#include <sysdep.h>
|
||||
-#include <shlib-compat.h>
|
||||
|
||||
#if !XSTAT_IS_XSTAT64
|
||||
# include <xstatconv.h>
|
||||
# include <xstatover.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)
|
||||
@@ -61,8 +57,4 @@ __xstat (int vers, const char *name, struct stat *buf)
|
||||
}
|
||||
}
|
||||
}
|
||||
-
|
||||
-compat_symbol (libc, __xstat, __xstat, GLIBC_2_0);
|
||||
-# endif /* SHLIB_COMPAT */
|
||||
-
|
||||
#endif /* XSTAT_IS_XSTAT64 */
|
||||
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
|
||||
index dd4f808c7a..9d368d5841 100644
|
||||
--- a/sysdeps/unix/sysv/linux/xstat64.c
|
||||
+++ b/sysdeps/unix/sysv/linux/xstat64.c
|
||||
@@ -24,14 +24,10 @@
|
||||
#include <sysdep.h>
|
||||
#include <xstatconv.h>
|
||||
#include <statx_cp.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
|
||||
___xstat64 (int vers, const char *name, struct stat64 *buf)
|
||||
{
|
||||
#if XSTAT_IS_XSTAT64
|
||||
@@ -82,17 +78,16 @@ ___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);
|
||||
+weak_alias (___xstat64, __xstat);
|
||||
+weak_alias (___xstat64, __GI___xstat);
|
||||
#endif
|
||||
|
||||
+#include <shlib-compat.h>
|
||||
+
|
||||
#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 */
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,278 +0,0 @@
|
||||
From 9036019b09f0e6fd9d66721f4d6bbc856bb27da2 Mon Sep 17 00:00:00 2001
|
||||
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
|
||||
Date: Wed, 21 Oct 2020 14:51:39 +0530
|
||||
Subject: [PATCH] Revert "linux: Move xmknod{at} to compat symbols"
|
||||
|
||||
This reverts commit 81b83ff61f95f30ad53d6075247af0ea61a0b16e.
|
||||
---
|
||||
include/sys/stat.h | 4 +--
|
||||
sysdeps/mach/hurd/xmknod.c | 17 +++------
|
||||
sysdeps/mach/hurd/xmknodat.c | 12 +------
|
||||
sysdeps/unix/sysv/linux/mknod.c | 28 ---------------
|
||||
sysdeps/unix/sysv/linux/mknodat.c | 35 -------------------
|
||||
.../unix/sysv/linux/riscv/rv32/libc.abilist | 2 ++
|
||||
sysdeps/unix/sysv/linux/xmknod.c | 20 +++++++----
|
||||
sysdeps/unix/sysv/linux/xmknodat.c | 23 ++++++++----
|
||||
8 files changed, 40 insertions(+), 101 deletions(-)
|
||||
delete mode 100644 sysdeps/unix/sysv/linux/mknod.c
|
||||
delete mode 100644 sysdeps/unix/sysv/linux/mknodat.c
|
||||
|
||||
diff --git a/include/sys/stat.h b/include/sys/stat.h
|
||||
index 108cb0c9bf..9a4a8f62cc 100644
|
||||
--- a/include/sys/stat.h
|
||||
+++ b/include/sys/stat.h
|
||||
@@ -79,8 +79,10 @@ libc_hidden_proto (__mknod);
|
||||
|
||||
extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
|
||||
__dev_t *__dev);
|
||||
+libc_hidden_proto (__xmknod)
|
||||
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);
|
||||
int __xstat (int __ver, const char *__filename,
|
||||
@@ -106,8 +108,6 @@ hidden_proto (__xstat64);
|
||||
hidden_proto (__lxstat64);
|
||||
hidden_proto (__fxstatat64);
|
||||
# endif
|
||||
-libc_hidden_proto (__xmknod)
|
||||
-libc_hidden_proto (__xmknodat)
|
||||
# define stat(fname, buf) __xstat (_STAT_VER, fname, buf)
|
||||
# define lstat(fname, buf) __lxstat (_STAT_VER, fname, buf)
|
||||
# define __lstat(fname, buf) __lxstat (_STAT_VER, fname, buf)
|
||||
diff --git a/sysdeps/mach/hurd/xmknod.c b/sysdeps/mach/hurd/xmknod.c
|
||||
index a1b5af086d..0ab4f1b719 100644
|
||||
--- a/sysdeps/mach/hurd/xmknod.c
|
||||
+++ b/sysdeps/mach/hurd/xmknod.c
|
||||
@@ -15,9 +15,12 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
-#include <sys/stat.h>
|
||||
+#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
-#include <shlib-compat.h>
|
||||
+#include <stddef.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+
|
||||
|
||||
/* Create a device file named FILE_NAME, with permission and special bits MODE
|
||||
and device number DEV (which can be constructed from major and minor
|
||||
@@ -28,13 +31,3 @@ __xmknod (int vers, const char *file_name, mode_t mode, dev_t *dev)
|
||||
return __xmknodat (vers, AT_FDCWD, file_name, mode, dev);
|
||||
}
|
||||
libc_hidden_def (__xmknod)
|
||||
-
|
||||
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
|
||||
-int
|
||||
-__xmknod_compat (int vers, const char *file_name, mode_t mode, dev_t *dev)
|
||||
-{
|
||||
- return __xmknod (vers, file_name, mode, dev);
|
||||
-}
|
||||
-
|
||||
-compat_symbol (libc, __xmknod_compat, __xmknod, GLIBC_2_0);
|
||||
-#endif
|
||||
diff --git a/sysdeps/mach/hurd/xmknodat.c b/sysdeps/mach/hurd/xmknodat.c
|
||||
index 90724694d5..4239d1ea91 100644
|
||||
--- a/sysdeps/mach/hurd/xmknodat.c
|
||||
+++ b/sysdeps/mach/hurd/xmknodat.c
|
||||
@@ -26,7 +26,6 @@
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/sysmacros.h>
|
||||
-#include <shlib-compat.h>
|
||||
|
||||
/* Create a device file named PATH relative to FD, with permission and
|
||||
special bits MODE and device number DEV (which can be constructed
|
||||
@@ -117,14 +116,5 @@ __xmknodat (int vers, int fd, const char *path, mode_t mode, dev_t *dev)
|
||||
return __hurd_fail (err);
|
||||
return 0;
|
||||
}
|
||||
-libc_hidden_def (__xmknodat)
|
||||
-
|
||||
-#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33)
|
||||
-int
|
||||
-__xmknodat_compat (int vers, int fd, const char *path, mode_t mode, dev_t *dev)
|
||||
-{
|
||||
- return __xmknodat (vers, fd, path, mode, dev);
|
||||
-}
|
||||
|
||||
-compat_symbol (libc, __xmknodat_compat, __xmknodat, GLIBC_2_4);
|
||||
-#endif
|
||||
+libc_hidden_def (__xmknodat)
|
||||
diff --git a/sysdeps/unix/sysv/linux/mknod.c b/sysdeps/unix/sysv/linux/mknod.c
|
||||
deleted file mode 100644
|
||||
index 7e290ddc8b..0000000000
|
||||
--- a/sysdeps/unix/sysv/linux/mknod.c
|
||||
+++ /dev/null
|
||||
@@ -1,28 +0,0 @@
|
||||
-/* Create a special or ordinary file. Linux version.
|
||||
- Copyright (C) 2020 Free Software Foundation, Inc.
|
||||
- This file is part of the GNU C Library.
|
||||
-
|
||||
- The GNU C Library is free software; you can redistribute it and/or
|
||||
- modify it under the terms of the GNU Lesser General Public
|
||||
- License as published by the Free Software Foundation; either
|
||||
- version 2.1 of the License, or (at your option) any later version.
|
||||
-
|
||||
- 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
|
||||
- Lesser General Public License for more details.
|
||||
-
|
||||
- You should have received a copy of the GNU Lesser General Public
|
||||
- License along with the GNU C Library; if not, see
|
||||
- <https://www.gnu.org/licenses/>. */
|
||||
-
|
||||
-#include <sys/stat.h>
|
||||
-#include <fcntl.h>
|
||||
-
|
||||
-int
|
||||
-__mknod (const char *path, mode_t mode, dev_t dev)
|
||||
-{
|
||||
- return __mknodat (AT_FDCWD, path, mode, dev);
|
||||
-}
|
||||
-libc_hidden_def (__mknod)
|
||||
-weak_alias (__mknod, mknod)
|
||||
diff --git a/sysdeps/unix/sysv/linux/mknodat.c b/sysdeps/unix/sysv/linux/mknodat.c
|
||||
deleted file mode 100644
|
||||
index fdb8f1951a..0000000000
|
||||
--- a/sysdeps/unix/sysv/linux/mknodat.c
|
||||
+++ /dev/null
|
||||
@@ -1,35 +0,0 @@
|
||||
-/* Create a special or ordinary file. Linux version.
|
||||
- Copyright (C) 2020 Free Software Foundation, Inc.
|
||||
- This file is part of the GNU C Library.
|
||||
-
|
||||
- The GNU C Library is free software; you can redistribute it and/or
|
||||
- modify it under the terms of the GNU Lesser General Public
|
||||
- License as published by the Free Software Foundation; either
|
||||
- version 2.1 of the License, or (at your option) any later version.
|
||||
-
|
||||
- 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
|
||||
- Lesser General Public License for more details.
|
||||
-
|
||||
- You should have received a copy of the GNU Lesser General Public
|
||||
- License along with the GNU C Library; if not, see
|
||||
- <https://www.gnu.org/licenses/>. */
|
||||
-
|
||||
-#include <sys/types.h>
|
||||
-#include <sys/stat.h>
|
||||
-#include <errno.h>
|
||||
-
|
||||
-int
|
||||
-__mknodat (int fd, const char *path, mode_t mode, dev_t dev)
|
||||
-{
|
||||
- /* The user-exported dev_t is 64-bit while the kernel interface is
|
||||
- 32-bit. */
|
||||
- unsigned int k_dev = dev;
|
||||
- if (k_dev != dev)
|
||||
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
|
||||
-
|
||||
- return INLINE_SYSCALL_CALL (mknodat, fd, path, mode, k_dev);
|
||||
-}
|
||||
-libc_hidden_def (__mknodat)
|
||||
-weak_alias (__mknodat, mknodat)
|
||||
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
|
||||
index 365a6b17cf..d984c02492 100644
|
||||
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
|
||||
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
|
||||
@@ -484,6 +484,8 @@ GLIBC_2.33 __wprintf_chk F
|
||||
GLIBC_2.33 __write F
|
||||
GLIBC_2.33 __wuflow F
|
||||
GLIBC_2.33 __wunderflow F
|
||||
+GLIBC_2.33 __xmknod F
|
||||
+GLIBC_2.33 __xmknodat F
|
||||
GLIBC_2.33 __xpg_basename F
|
||||
GLIBC_2.33 __xpg_sigpause F
|
||||
GLIBC_2.33 __xpg_strerror_r F
|
||||
diff --git a/sysdeps/unix/sysv/linux/xmknod.c b/sysdeps/unix/sysv/linux/xmknod.c
|
||||
index 82bb0bd953..42809d4c57 100644
|
||||
--- a/sysdeps/unix/sysv/linux/xmknod.c
|
||||
+++ b/sysdeps/unix/sysv/linux/xmknod.c
|
||||
@@ -17,23 +17,29 @@
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <sys/stat.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
#include <fcntl.h>
|
||||
-#include <errno.h>
|
||||
-#include <shlib-compat.h>
|
||||
+#include <sysdep.h>
|
||||
|
||||
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_33)
|
||||
/* Create a device file named PATH, with permission and special bits MODE
|
||||
and device number DEV (which can be constructed from major and minor
|
||||
device numbers with the `makedev' macro above). */
|
||||
int
|
||||
-attribute_compat_text_section
|
||||
__xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
|
||||
{
|
||||
+ unsigned long long int k_dev;
|
||||
+
|
||||
if (vers != _MKNOD_VER)
|
||||
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
|
||||
|
||||
- return __mknodat (AT_FDCWD, path, mode, *dev);
|
||||
+ /* We must convert the value to dev_t type used by the kernel. */
|
||||
+ k_dev = (*dev) & ((1ULL << 32) - 1);
|
||||
+ if (k_dev != *dev)
|
||||
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
|
||||
+
|
||||
+ return INLINE_SYSCALL_CALL (mknodat, AT_FDCWD, path, mode,
|
||||
+ (unsigned int) k_dev);
|
||||
}
|
||||
|
||||
-compat_symbol (libc, __xmknod, __xmknod, GLIBC_2_0);
|
||||
-#endif
|
||||
+weak_alias (__xmknod, _xmknod)
|
||||
+libc_hidden_def (__xmknod)
|
||||
diff --git a/sysdeps/unix/sysv/linux/xmknodat.c b/sysdeps/unix/sysv/linux/xmknodat.c
|
||||
index fae3fe54d1..5640a499aa 100644
|
||||
--- a/sysdeps/unix/sysv/linux/xmknodat.c
|
||||
+++ b/sysdeps/unix/sysv/linux/xmknodat.c
|
||||
@@ -15,11 +15,18 @@
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
-#include <sys/stat.h>
|
||||
#include <errno.h>
|
||||
-#include <shlib-compat.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <stdio.h>
|
||||
+#include <string.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <sys/sysmacros.h>
|
||||
+
|
||||
+#include <sysdep.h>
|
||||
+#include <sys/syscall.h>
|
||||
+
|
||||
|
||||
-#if SHLIB_COMPAT(libc, GLIBC_2_4, GLIBC_2_33)
|
||||
/* Create a device file named PATH relative to FD, with permission and
|
||||
special bits MODE and device number DEV (which can be constructed
|
||||
from major and minor device numbers with the `makedev' macro above). */
|
||||
@@ -29,8 +36,12 @@ __xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev)
|
||||
if (vers != _MKNOD_VER)
|
||||
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
|
||||
|
||||
- return __mknodat (fd, file, mode, *dev);
|
||||
+ /* We must convert the value to dev_t type used by the kernel. */
|
||||
+ unsigned long long int k_dev = (*dev) & ((1ULL << 32) - 1);
|
||||
+ if (k_dev != *dev)
|
||||
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
|
||||
+
|
||||
+ return INLINE_SYSCALL (mknodat, 4, fd, file, mode, (unsigned int) k_dev);
|
||||
}
|
||||
|
||||
-compat_symbol (libc, __xmknodat, __xmknodat, GLIBC_2_4);
|
||||
-#endif
|
||||
+libc_hidden_def (__xmknodat)
|
||||
--
|
||||
2.26.2
|
||||
|
108
glibc.spec
108
glibc.spec
@ -1,4 +1,4 @@
|
||||
%define glibcsrcdir glibc-2.32.9000-270-g75a193b761
|
||||
%define glibcsrcdir glibc-2.32.9000-366-g4c38c1a229
|
||||
%define glibcversion 2.32.9000
|
||||
# Pre-release tarballs are pulled in from git using a command that is
|
||||
# effectively:
|
||||
@ -100,7 +100,7 @@
|
||||
Summary: The GNU libc libraries
|
||||
Name: glibc
|
||||
Version: %{glibcversion}
|
||||
Release: 17%{?dist}
|
||||
Release: 18%{?dist}
|
||||
|
||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||
# libraries.
|
||||
@ -161,8 +161,6 @@ Patch23: glibc-python3.patch
|
||||
Patch29: glibc-fedora-nsswitch.patch
|
||||
Patch30: glibc-deprecated-selinux-makedb.patch
|
||||
Patch31: glibc-deprecated-selinux-nscd.patch
|
||||
Patch33: glibc-revert-fxstat-compat.patch
|
||||
Patch34: glibc-revert-mknod-compat.patch
|
||||
|
||||
##############################################################################
|
||||
# Continued list of core "glibc" package information:
|
||||
@ -2260,6 +2258,108 @@ fi
|
||||
%files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
|
||||
|
||||
%changelog
|
||||
* Fri Dec 04 2020 Arjun Shankar <arjun@redhat.com> - 2.32.9000-18
|
||||
- Drop glibc-revert-fxstat-compat.patch; applied upstream.
|
||||
- Drop glibc-revert-mknod-compat.patch; applied upstream.
|
||||
- Auto-sync with upstream branch master,
|
||||
commit 4c38c1a229bc3628269ad98bd7e8d31d118d91f6:
|
||||
- powerpc64le: Add glibc-hwcaps support
|
||||
- x86: Adjust tst-cpu-features-supports.c for GCC 11
|
||||
- x86: Set RDRAND usable if CPU supports RDRAND
|
||||
- elf: Add missing <stddef.h> header to elf/dl-hwcaps.h
|
||||
- lowlevellock-futex: Remove not used macros
|
||||
- futex: Remove not used futex_reltimed_wait{_cancelable}
|
||||
- y2038: Convert gai_suspend to support 64 bit time
|
||||
- symbols: Add defines for libanl's libanl_hidden_{def|proto}
|
||||
- x86_64: Add glibc-hwcaps support
|
||||
- elf: Add glibc-hwcaps subdirectory support to ld.so cache processing
|
||||
- elf: Process glibc-hwcaps subdirectories in ldconfig
|
||||
- elf: Implement tail merging of strings in ldconfig
|
||||
- elf: Implement a string table for ldconfig, with tail merging
|
||||
- elf: Add extension mechanism to ld.so.cache
|
||||
- elf: Add endianness markup to ld.so.cache (bug 27008)
|
||||
- elf: Add glibc-hwcaps support for LD_LIBRARY_PATH
|
||||
- elf: Synchronize <elf.h> section header flags with binutils
|
||||
- x86: Fix THREAD_SELF definition to avoid ld.so crash (bug 27004)
|
||||
- htl: Add hidden def for __pthread_create/detach
|
||||
- manual: Clarify File Access Modes section and add O_PATH
|
||||
- htl: Add missing symbols
|
||||
- Revert "linux: Move xmknod{at} to compat symbols"
|
||||
- Revert "linux: Move {f}xstat{at} to compat symbols"
|
||||
- elf.h: Fix spelling of EM_TILE64 comment
|
||||
- nptl: Fix __futex_clocklock64 return error check [BZ #26964]
|
||||
- powerpc64le: ifunc select *f128 routines in multiarch mode
|
||||
- y2038: Convert aio_suspend to support 64 bit time
|
||||
- Fix typo in NEWS file
|
||||
- nptl: Add EOVERFLOW checks for futex calls
|
||||
- nptl: Fix PTHREAD_PRIO_PROTECT timed lock
|
||||
- sh: Add sh4 fpu Implies folder
|
||||
- io: nftw/ftw: Fix stack overflow with large nopenfd [BZ #26353]
|
||||
- elf: Introduce enum opt_format in the ldconfig implementation
|
||||
- support: Add support_copy_file
|
||||
- NEWS entry for commit b4f020c9b408fb3d1d3d4901c4a71839145f8791
|
||||
- timezone: Change zdump installation to bin directory
|
||||
- nptl: Return EINVAL for invalid clock for pthread_clockjoin_np
|
||||
- nptl: Return EINVAL for pthread_mutex_clocklock/PI with CLOCK_MONOTONIC [BZ #26801]
|
||||
- nptl: Replace lll_futex_wake with futex-internal.h
|
||||
- nptl: Replace lll_futex_supported_clockid with futex-internal.h
|
||||
- nptl: Replace lll_futex_{timed_}wait by futex-internal.h
|
||||
- nptl: Replace lll_timedwait with __futex_abstimed_wait64
|
||||
- nptl: Replace __futex_clocklock_wait64 with __futex_abstimed_wait64
|
||||
- nptl: Remove _futex_clock_wait_bitset64
|
||||
- nptl: Consolidate __futex_abstimed_wait_{cancelable}64
|
||||
- nptl: Extend __futex_abstimed_wait_cancelable64 comment
|
||||
- nptl: Remove clockwait_tid
|
||||
- nptl: Remove futex_wait_cancelable
|
||||
- nptl: Remove unused internal futex functions
|
||||
- Mark mtrace tests UNSUPPORTED if bug-ga2.mtrace or tst-leaks2.mtrace are missing
|
||||
- elf: Fix uninitialized variable for _dl_write
|
||||
- powerpc: Make PT_THREAD_POINTER available to assembly code
|
||||
- Use libnss_files.so for tests posix/bug-ga2 and resolv/tst-leaks2 [BZ #26821]
|
||||
- hurd report-wait: Fix stpcpy usage
|
||||
- hurd S_msg_report_wait: Fix detecting fd ports
|
||||
- hurd S_msg_report_wait: Fix reporting ports
|
||||
- hurd: Fix strcpy calls
|
||||
- hurd: Fix _S_msg_get/set_env_variable prototype
|
||||
- hurd: Enable using ifunc
|
||||
- Add {,sysdep-}ld-library-path make variable
|
||||
- nptl: Move stack list variables into _rtld_global
|
||||
- hurd: let _dl_argv and __libc_stack_end be relro
|
||||
- hurd: Remove some remnants of cthreads
|
||||
- nanosleep: Pass NULL when rem == NULL on ports with __TIMESIZE != 64
|
||||
- y2038: Convert thrd_sleep to support 64 bit time
|
||||
- y2038: Convert mtx_timedlock to support 64 bit time
|
||||
- y2038: Convert cnd_timedwait to support 64 bit time
|
||||
- hurd: Drop CLOCK_MONOTONIC change which slipped in
|
||||
- hurd: make ptsname fail with ENOTTY on non-master-pty
|
||||
- mach: Add missing assert.h include
|
||||
- hurd: break relocation loop between libc.so and lib{mach,hurd}user.so
|
||||
- Remove obsolete defines for HPUX support from fcntl.h and update O_NONBLOCK.
|
||||
- Remove tls.h inclusion from internal errno.h
|
||||
- nptl: Eliminate <smp.h> and __is_smp
|
||||
- powerpc: Eliminate UP macro conditionals
|
||||
- x86: Remove UP macro. Define LOCK_PREFIX unconditionally.
|
||||
- alpha: Remove UP preprocessor conditionals
|
||||
- hurd: Make sure signals get started
|
||||
- hurd: initialize libpthread before starting the signal thread
|
||||
- hurd: Make _hurd_libc_proc_init idempotent
|
||||
- powerpc: Add optimized stpncpy for POWER9
|
||||
- powerpc: Add optimized strncpy for POWER9
|
||||
- Don't use nested function in test-ffs
|
||||
- Use __builtin___stpncpy_chk when available
|
||||
- tests: Remove NULL check for an array
|
||||
- hurd: Move {,f,l}xstat{,at} and xmknod{at} to compat symbols
|
||||
- hurd: Notify the proc server later during initialization
|
||||
- htl: Initialize later
|
||||
- htl: Keep thread signals blocked during its initialization
|
||||
- htl: Fix spurious symbols in namespaces
|
||||
- Use O_CLOEXEC in sysconf [BZ #26791]
|
||||
- struct _Unwind_Exception alignment should not depend on compiler flags
|
||||
- hurd: keep only required PLTs in ld.so
|
||||
- hurd: Add missing startup calls
|
||||
- riscv: Get cache information through sysconf
|
||||
- RISC-V: Add _dl_start_user.
|
||||
|
||||
* Thu Nov 26 2020 Florian Weimer <fweimer@redhat.com> - 2.32.9000-17
|
||||
- s390x: Do not rewrite program interpreter symlink (make install is enough)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user