[compiler-rt] 7b820b2 - [builtins][AArch64] Clean up the sys/auxv.h header handling (#161751)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 8 11:17:46 PDT 2025
Author: Brad Smith
Date: 2025-10-08T14:17:42-04:00
New Revision: 7b820b28353e788603e56698035db42bb3327713
URL: https://github.com/llvm/llvm-project/commit/7b820b28353e788603e56698035db42bb3327713
DIFF: https://github.com/llvm/llvm-project/commit/7b820b28353e788603e56698035db42bb3327713.diff
LOG: [builtins][AArch64] Clean up the sys/auxv.h header handling (#161751)
glibc 2.17 added AArch64 support and already had getauxval().
Added:
Modified:
compiler-rt/lib/builtins/cpu_model/aarch64.c
compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/android.inc
compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/getauxval.inc
Removed:
################################################################################
diff --git a/compiler-rt/lib/builtins/cpu_model/aarch64.c b/compiler-rt/lib/builtins/cpu_model/aarch64.c
index be29c90390876..06bc7c4a8190a 100644
--- a/compiler-rt/lib/builtins/cpu_model/aarch64.c
+++ b/compiler-rt/lib/builtins/cpu_model/aarch64.c
@@ -32,19 +32,21 @@ typedef struct __ifunc_arg_t {
_Bool __aarch64_have_lse_atomics
__attribute__((visibility("hidden"), nocommon)) = false;
+// The formatter wants to re-order these includes, but doing so is incorrect:
+// clang-format off
#if defined(__FreeBSD__) || defined(__OpenBSD__)
-// clang-format off: should not reorder sys/auxv.h alphabetically
#include <sys/auxv.h>
-// clang-format on
#include "aarch64/hwcap.inc"
#include "aarch64/lse_atomics/elf_aux_info.inc"
#elif defined(__Fuchsia__)
#include "aarch64/hwcap.inc"
#include "aarch64/lse_atomics/fuchsia.inc"
#elif defined(__ANDROID__)
+#include <sys/auxv.h>
#include "aarch64/hwcap.inc"
#include "aarch64/lse_atomics/android.inc"
-#elif defined(__linux__) && __has_include(<sys/auxv.h>)
+#elif defined(__linux__)
+#include <sys/auxv.h>
#include "aarch64/hwcap.inc"
#include "aarch64/lse_atomics/getauxval.inc"
#elif defined(_WIN32)
@@ -52,6 +54,7 @@ _Bool __aarch64_have_lse_atomics
#else
// When unimplemented, we leave __aarch64_have_lse_atomics initialized to false.
#endif
+// clang-format on
#if !defined(DISABLE_AARCH64_FMV)
@@ -74,7 +77,7 @@ struct {
#elif defined(__ANDROID__)
#include "aarch64/fmv/hwcap.inc"
#include "aarch64/fmv/android.inc"
-#elif defined(__linux__) && __has_include(<sys/auxv.h>)
+#elif defined(__linux__)
#include "aarch64/fmv/hwcap.inc"
#include "aarch64/fmv/getauxval.inc"
#elif defined(_WIN32)
diff --git a/compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc b/compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
index 159c617521f11..1c53191b84cf0 100644
--- a/compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
+++ b/compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc
@@ -1,8 +1,3 @@
-#if __has_include(<sys/hwcap.h>)
-#include <sys/hwcap.h>
-#define HAVE_SYS_HWCAP_H
-#endif
-
#ifndef _IFUNC_ARG_HWCAP
#define _IFUNC_ARG_HWCAP (1ULL << 62)
#endif
diff --git a/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/android.inc b/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/android.inc
index 94bf64a5b0b0f..8d8a9133e6770 100644
--- a/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/android.inc
+++ b/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/android.inc
@@ -1,5 +1,4 @@
#include <string.h>
-#include <sys/auxv.h>
#include <sys/system_properties.h>
static bool __isExynos9810(void) {
diff --git a/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/getauxval.inc b/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/getauxval.inc
index 6642c1f5b60b3..670aba5d6899c 100644
--- a/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/getauxval.inc
+++ b/compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/getauxval.inc
@@ -1,5 +1,3 @@
-#include <sys/auxv.h>
-
static void CONSTRUCTOR_ATTRIBUTE init_have_lse_atomics(void) {
unsigned long hwcap = getauxval(AT_HWCAP);
__aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0;
More information about the llvm-commits
mailing list