!724 io: Do not implement fstat with fstatat, use the upstream's implementation
From: @lijianglin6 Reviewed-by: @liqingqing_1229 Signed-off-by: @liqingqing_1229
This commit is contained in:
commit
fd09f7374f
41
Fix-ununsed-fstatat64_time64_statx.patch
Normal file
41
Fix-ununsed-fstatat64_time64_statx.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From c7f05bd5342517f3f751e6ea8dec1916b80bee8a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
Date: Wed, 9 Mar 2022 18:35:39 -0300
|
||||||
|
Subject: [PATCH] Fix ununsed fstatat64_time64_statx
|
||||||
|
|
||||||
|
It is only called for legacy ABIs.
|
||||||
|
---
|
||||||
|
sysdeps/unix/sysv/linux/fstatat64.c | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
index a82d3dd4df..2ab914380d 100644
|
||||||
|
--- a/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
@@ -40,6 +40,11 @@ _Static_assert (sizeof (__blkcnt_t) == sizeof (__blkcnt64_t),
|
||||||
|
"__blkcnt_t and __blkcnt64_t must match");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if (__WORDSIZE == 32 \
|
||||||
|
+ && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \
|
||||||
|
+ || defined STAT_HAS_TIME32
|
||||||
|
+# define FSTATAT_USE_STATX 1
|
||||||
|
+
|
||||||
|
static inline int
|
||||||
|
fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
|
||||||
|
int flag)
|
||||||
|
@@ -73,11 +78,6 @@ fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-#if (__WORDSIZE == 32 \
|
||||||
|
- && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \
|
||||||
|
- || defined STAT_HAS_TIME32
|
||||||
|
-# define FSTATAT_USE_STATX 1
|
||||||
|
#else
|
||||||
|
# define FSTATAT_USE_STATX 0
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
From 3b1ee2b0be6ef6a78ae86482eb336f3ac2976fc8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: lijianglin <lijianglin2@huawei.com>
|
|
||||||
Date: Tue, 13 Jun 2023 11:12:22 +0800
|
|
||||||
Subject: [PATCH] display declaration fstat function, make fstat call the
|
|
||||||
system fstat function
|
|
||||||
|
|
||||||
the patch(commit 8ed005daf0ab03e142500324a34087ce179ae78) changed the implementation
|
|
||||||
process of interface fstat and used a new system call newfstatat, which resulted in a
|
|
||||||
decrease in the performance of fstat.this patch make fstat call the original system
|
|
||||||
call to restore performance.
|
|
||||||
---
|
|
||||||
sysdeps/unix/sysv/linux/fxstat64.c | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
|
|
||||||
index be127982..52775f7e 100644
|
|
||||||
--- a/sysdeps/unix/sysv/linux/fxstat64.c
|
|
||||||
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
|
|
||||||
@@ -76,6 +76,10 @@ strong_alias (___fxstat64, __fxstat64)
|
|
||||||
|
|
||||||
#if XSTAT_IS_XSTAT64
|
|
||||||
strong_alias (___fxstat64, __fxstat)
|
|
||||||
+int fstat (int __fd, struct stat *__statbuf)
|
|
||||||
+{
|
|
||||||
+ return __fxstat (_STAT_VER, __fd, (struct stat64 *)__statbuf);
|
|
||||||
+}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* LIB_COMPAT */
|
|
||||||
--
|
|
||||||
2.33.0
|
|
||||||
|
|
||||||
19
glibc.spec
19
glibc.spec
@ -70,7 +70,7 @@
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: 2.34
|
Version: 2.34
|
||||||
Release: 137
|
Release: 138
|
||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
License: %{all_license}
|
License: %{all_license}
|
||||||
URL: http://www.gnu.org/software/glibc/
|
URL: http://www.gnu.org/software/glibc/
|
||||||
@ -278,6 +278,10 @@ Patch187: backport-CVE-2023-4813.patch
|
|||||||
Patch188: backport-CVE-2023-4806.patch
|
Patch188: backport-CVE-2023-4806.patch
|
||||||
Patch189: backport-CVE-2023-5156.patch
|
Patch189: backport-CVE-2023-5156.patch
|
||||||
Patch190: backport-CVE-2023-4911.patch
|
Patch190: backport-CVE-2023-4911.patch
|
||||||
|
Patch191: linux-Only-build-fstatat-fallback-if-required.patch
|
||||||
|
Patch192: Fix-ununsed-fstatat64_time64_statx.patch
|
||||||
|
Patch193: linux-use-statx-for-fstat-if-neither-newfstatat-nor-.patch
|
||||||
|
Patch194: io-Do-not-implement-fstat-with-fstatat.patch
|
||||||
|
|
||||||
Patch9000: turn-default-value-of-x86_rep_stosb_threshold_form_2K_to_1M.patch
|
Patch9000: turn-default-value-of-x86_rep_stosb_threshold_form_2K_to_1M.patch
|
||||||
Patch9001: delete-no-hard-link-to-avoid-all_language-package-to.patch
|
Patch9001: delete-no-hard-link-to-avoid-all_language-package-to.patch
|
||||||
@ -330,12 +334,10 @@ Patch9043: add-GB18030-2022-charmap-BZ-30243.patch
|
|||||||
Patch9044: add-Wl-z-noseparate-code-for-so.patch
|
Patch9044: add-Wl-z-noseparate-code-for-so.patch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Patch9045: display-declaration-fstat-function-make-fstat-call-t.patch
|
Patch9045: fix-Segmentation-fault-in-nss-module.patch
|
||||||
Patch9046: fix-Segmentation-fault-in-nss-module.patch
|
Patch9046: fix_nss_database_check_reload_and_get_memleak.patch
|
||||||
Patch9047: fix_nss_database_check_reload_and_get_memleak.patch
|
Patch9047: inet-fix-warn-unused-result.patch
|
||||||
Patch9048: inet-fix-warn-unused-result.patch
|
Patch9048: backport-resolv_conf-release-lock-on-allocation-failure-bug-30527.patch
|
||||||
|
|
||||||
Patch9049: backport-resolv_conf-release-lock-on-allocation-failure-bug-30527.patch
|
|
||||||
|
|
||||||
Provides: ldconfig rtld(GNU_HASH) bundled(gnulib)
|
Provides: ldconfig rtld(GNU_HASH) bundled(gnulib)
|
||||||
|
|
||||||
@ -1501,6 +1503,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Oct 16 2023 lijianglin <lijianglin2@huawei.com> - 2.34-138
|
||||||
|
- io: Do not implement fstat with fstatat
|
||||||
|
|
||||||
* Sat Oct 7 2023 liningjie <liningjie@xfusion.com> - 2.34-137
|
* Sat Oct 7 2023 liningjie <liningjie@xfusion.com> - 2.34-137
|
||||||
- fix CVE-2023-4911
|
- fix CVE-2023-4911
|
||||||
|
|
||||||
|
|||||||
165
io-Do-not-implement-fstat-with-fstatat.patch
Normal file
165
io-Do-not-implement-fstat-with-fstatat.patch
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
From 551101e8240b7514fc646d1722f8b79c90362b8f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
Date: Mon, 11 Sep 2023 10:25:48 -0300
|
||||||
|
Subject: [PATCH] io: Do not implement fstat with fstatat
|
||||||
|
|
||||||
|
AT_EMPTY_PATH is a requirement to implement fstat over fstatat,
|
||||||
|
however it does not prevent the kernel to read the path argument.
|
||||||
|
It is not an issue, but on x86-64 with SMAP-capable CPUs the kernel is
|
||||||
|
forced to perform expensive user memory access. After that regular
|
||||||
|
lookup is performed which adds even more overhead.
|
||||||
|
|
||||||
|
Instead, issue the fstat syscall directly on LFS fstat implementation
|
||||||
|
(32 bit architectures will still continue to use statx, which is
|
||||||
|
required to have 64 bit time_t support). it should be even a
|
||||||
|
small performance gain on non x86_64, since there is no need
|
||||||
|
to handle the path argument.
|
||||||
|
|
||||||
|
Checked on x86_64-linux-gnu.
|
||||||
|
---
|
||||||
|
sysdeps/unix/sysv/linux/fstat64.c | 37 +++++++++++++++++++++++--
|
||||||
|
sysdeps/unix/sysv/linux/fstatat64.c | 12 ++------
|
||||||
|
sysdeps/unix/sysv/linux/internal-stat.h | 31 +++++++++++++++++++++
|
||||||
|
3 files changed, 68 insertions(+), 12 deletions(-)
|
||||||
|
create mode 100644 sysdeps/unix/sysv/linux/internal-stat.h
|
||||||
|
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/fstat64.c b/sysdeps/unix/sysv/linux/fstat64.c
|
||||||
|
index 124384e57f..a291f0825b 100644
|
||||||
|
--- a/sysdeps/unix/sysv/linux/fstat64.c
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/fstat64.c
|
||||||
|
@@ -19,20 +19,53 @@
|
||||||
|
#define __fstat __redirect___fstat
|
||||||
|
#define fstat __redirect_fstat
|
||||||
|
#include <sys/stat.h>
|
||||||
|
+#undef __fstat
|
||||||
|
+#undef fstat
|
||||||
|
#include <fcntl.h>
|
||||||
|
-#include <kernel_stat.h>
|
||||||
|
-#include <stat_t64_cp.h>
|
||||||
|
+#include <internal-stat.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
__fstat64_time64 (int fd, struct __stat64_t64 *buf)
|
||||||
|
{
|
||||||
|
+#if !FSTATAT_USE_STATX
|
||||||
|
+# if XSTAT_IS_XSTAT64
|
||||||
|
+# ifdef __NR_fstat
|
||||||
|
+ /* 64-bit kABI, e.g. aarch64, ia64, powerpc64*, s390x, riscv64, and
|
||||||
|
+ x86_64. */
|
||||||
|
+ return INLINE_SYSCALL_CALL (fstat, fd, buf);
|
||||||
|
+# elif defined __NR_fstat64
|
||||||
|
+# if STAT64_IS_KERNEL_STAT64
|
||||||
|
+ /* 64-bit kABI outlier, e.g. alpha */
|
||||||
|
+ return INLINE_SYSCALL_CALL (fstat64, fd, buf);
|
||||||
|
+# else
|
||||||
|
+ /* 64-bit kABI outlier, e.g. sparc64. */
|
||||||
|
+ struct kernel_stat64 kst64;
|
||||||
|
+ int r = INLINE_SYSCALL_CALL (fstat64, fd, &kst64);
|
||||||
|
+ if (r == 0)
|
||||||
|
+ __cp_stat64_kstat64 (buf, &kst64);
|
||||||
|
+ return r;
|
||||||
|
+# endif /* STAT64_IS_KERNEL_STAT64 */
|
||||||
|
+# endif
|
||||||
|
+# else /* XSTAT_IS_XSTAT64 */
|
||||||
|
+ /* 64-bit kabi outlier, e.g. mips64 and mips64-n32. */
|
||||||
|
+ struct kernel_stat kst;
|
||||||
|
+ int r = INLINE_SYSCALL_CALL (fstat, fd, &kst);
|
||||||
|
+ if (r == 0)
|
||||||
|
+ __cp_kstat_stat64_t64 (&kst, buf);
|
||||||
|
+ return r;
|
||||||
|
+# endif
|
||||||
|
+#else /* !FSTATAT_USE_STATX */
|
||||||
|
+ /* All kABIs with non-LFS support and with old 32-bit time_t support
|
||||||
|
+ e.g. arm, csky, i386, hppa, m68k, microblaze, nios2, sh, powerpc32,
|
||||||
|
+ and sparc32. */
|
||||||
|
if (fd < 0)
|
||||||
|
{
|
||||||
|
__set_errno (EBADF);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return __fstatat64_time64 (fd, "", buf, AT_EMPTY_PATH);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
#if __TIMESIZE != 64
|
||||||
|
hidden_def (__fstat64_time64)
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
index 3509d3ca6d..127c6ff601 100644
|
||||||
|
--- a/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
@@ -21,12 +21,10 @@
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <string.h>
|
||||||
|
-#include <kernel_stat.h>
|
||||||
|
#include <sysdep.h>
|
||||||
|
#include <time.h>
|
||||||
|
-#include <kstat_cp.h>
|
||||||
|
-#include <stat_t64_cp.h>
|
||||||
|
#include <sys/sysmacros.h>
|
||||||
|
+#include <internal-stat.h>
|
||||||
|
|
||||||
|
#if __TIMESIZE == 64 \
|
||||||
|
&& (__WORDSIZE == 32 \
|
||||||
|
@@ -40,11 +38,7 @@ _Static_assert (sizeof (__blkcnt_t) == sizeof (__blkcnt64_t),
|
||||||
|
"__blkcnt_t and __blkcnt64_t must match");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if (__WORDSIZE == 32 \
|
||||||
|
- && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \
|
||||||
|
- || defined STAT_HAS_TIME32 \
|
||||||
|
- || (!defined __NR_newfstatat && !defined __NR_fstatat64)
|
||||||
|
-# define FSTATAT_USE_STATX 1
|
||||||
|
+#if FSTATAT_USE_STATX
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
|
||||||
|
@@ -79,8 +73,6 @@ fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
-#else
|
||||||
|
-# define FSTATAT_USE_STATX 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Only statx supports 64-bit timestamps for 32-bit architectures with
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/internal-stat.h b/sysdeps/unix/sysv/linux/internal-stat.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..e3b0569853
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/internal-stat.h
|
||||||
|
@@ -0,0 +1,31 @@
|
||||||
|
+/* Internal stat definitions.
|
||||||
|
+ Copyright (C) 2023 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 <sysdep.h>
|
||||||
|
+#include <stat_t64_cp.h>
|
||||||
|
+#include <kernel_stat.h>
|
||||||
|
+#include <kstat_cp.h>
|
||||||
|
+
|
||||||
|
+#if (__WORDSIZE == 32 \
|
||||||
|
+ && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \
|
||||||
|
+ || defined STAT_HAS_TIME32 \
|
||||||
|
+ || (!defined __NR_newfstatat && !defined __NR_fstatat64)
|
||||||
|
+# define FSTATAT_USE_STATX 1
|
||||||
|
+#else
|
||||||
|
+# define FSTATAT_USE_STATX 0
|
||||||
|
+#endif
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
52
linux-Only-build-fstatat-fallback-if-required.patch
Normal file
52
linux-Only-build-fstatat-fallback-if-required.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
From c3b023a7822185c9176cfb96eeca4ada3d662c4b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
Date: Wed, 24 Nov 2021 12:57:57 -0300
|
||||||
|
Subject: [PATCH] linux: Only build fstatat fallback if required
|
||||||
|
|
||||||
|
For 32-bit architecture with __ASSUME_STATX there is no need to
|
||||||
|
build fstatat64_time64_stat.
|
||||||
|
|
||||||
|
Checked on i686-linux-gnu.
|
||||||
|
---
|
||||||
|
sysdeps/unix/sysv/linux/fstatat64.c | 18 +++++++++++-------
|
||||||
|
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
index f968e4ef05..50ae5ad748 100644
|
||||||
|
--- a/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
@@ -74,6 +74,17 @@ fstatat64_time64_statx (int fd, const char *file, struct __stat64_t64 *buf,
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if (__WORDSIZE == 32 \
|
||||||
|
+ && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \
|
||||||
|
+ || defined STAT_HAS_TIME32
|
||||||
|
+# define FSTATAT_USE_STATX 1
|
||||||
|
+#else
|
||||||
|
+# define FSTATAT_USE_STATX 0
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+/* Only statx supports 64-bit timestamps for 32-bit architectures with
|
||||||
|
+ __ASSUME_STATX, so there is no point in building the fallback. */
|
||||||
|
+#if !FSTATAT_USE_STATX || (FSTATAT_USE_STATX && !defined __ASSUME_STATX)
|
||||||
|
static inline int
|
||||||
|
fstatat64_time64_stat (int fd, const char *file, struct __stat64_t64 *buf,
|
||||||
|
int flag)
|
||||||
|
@@ -134,13 +145,6 @@ fstatat64_time64_stat (int fd, const char *file, struct __stat64_t64 *buf,
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-#if (__WORDSIZE == 32 \
|
||||||
|
- && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \
|
||||||
|
- || defined STAT_HAS_TIME32
|
||||||
|
-# define FSTATAT_USE_STATX 1
|
||||||
|
-#else
|
||||||
|
-# define FSTATAT_USE_STATX 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
36
linux-use-statx-for-fstat-if-neither-newfstatat-nor-.patch
Normal file
36
linux-use-statx-for-fstat-if-neither-newfstatat-nor-.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From e6547d635b991651600fab31f788ed5facd77610 Mon Sep 17 00:00:00 2001
|
||||||
|
From: WANG Xuerui <git@xen0n.name>
|
||||||
|
Date: Wed, 1 Jun 2022 10:12:28 +0800
|
||||||
|
Subject: [PATCH] linux: use statx for fstat if neither newfstatat nor
|
||||||
|
fstatat64 is present
|
||||||
|
|
||||||
|
LoongArch is going to be the first architecture supported by Linux that
|
||||||
|
has neither fstat* nor newfstatat [1], instead exclusively relying on
|
||||||
|
statx. So in fstatat64's implementation, we need to also enable statx
|
||||||
|
usage if neither fstatat64 nor newfstatat is present, to prepare for
|
||||||
|
this new case of kernel ABI.
|
||||||
|
|
||||||
|
[1]: https://lore.kernel.org/all/20220518092619.1269111-1-chenhuacai@loongson.cn/
|
||||||
|
|
||||||
|
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||||
|
---
|
||||||
|
sysdeps/unix/sysv/linux/fstatat64.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
index 2ab914380d..8b1a1a290d 100644
|
||||||
|
--- a/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
|
||||||
|
@@ -42,7 +42,8 @@ _Static_assert (sizeof (__blkcnt_t) == sizeof (__blkcnt64_t),
|
||||||
|
|
||||||
|
#if (__WORDSIZE == 32 \
|
||||||
|
&& (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32)) \
|
||||||
|
- || defined STAT_HAS_TIME32
|
||||||
|
+ || defined STAT_HAS_TIME32 \
|
||||||
|
+ || (!defined __NR_newfstatat && !defined __NR_fstatat64)
|
||||||
|
# define FSTATAT_USE_STATX 1
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user