blob: fc9228277a9bb71334bea8c8ac2fce2a5e840265 [file] [log] [blame]
From 2101fb718935c7cf1cc2ad201bdeb1e635b54b0a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 11 May 2020 11:03:41 -0700
Subject: [PATCH] Revert "[AArch64] Use __getauxval instead of getauxval in LSE
detection code in libgcc"
This reverts commit 5a57016dd2758cc63a544f191f77635342397a72.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
libgcc/config/aarch64/lse-init.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/libgcc/config/aarch64/lse-init.c b/libgcc/config/aarch64/lse-init.c
index 00e9ab8cd1c..74acef25cce 100644
--- a/libgcc/config/aarch64/lse-init.c
+++ b/libgcc/config/aarch64/lse-init.c
@@ -29,20 +29,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
_Bool __aarch64_have_lse_atomics
__attribute__((visibility("hidden"), nocommon));
-/* Gate availability of __getauxval on glibc. All AArch64-supporting glibc
- versions support it. */
-#ifdef __gnu_linux__
+/* Disable initialization of __aarch64_have_lse_atomics during bootstrap. */
+#if !defined(inhibit_libc) && defined(HAVE_SYS_AUXV_H)
+# include <sys/auxv.h>
-# define AT_HWCAP 16
-# define HWCAP_ATOMICS (1 << 8)
-
-unsigned long int __getauxval (unsigned long int);
+/* Disable initialization if the system headers are too old. */
+# if defined(AT_HWCAP) && defined(HWCAP_ATOMICS)
static void __attribute__((constructor))
init_have_lse_atomics (void)
{
- unsigned long hwcap = __getauxval (AT_HWCAP);
+ unsigned long hwcap = getauxval (AT_HWCAP);
__aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0;
}
-#endif /* __gnu_linux__ */
+# endif /* HWCAP */
+#endif /* inhibit_libc */