Skip to content

Commit 4bba0a7

Browse files
committed
[builtins][AArch64] Clean up the sys/auxv.h header handling
glibc 2.17 added AArch64 support and already had getauxval().
1 parent e95a571 commit 4bba0a7

File tree

4 files changed

+7
-12
lines changed

4 files changed

+7
-12
lines changed

compiler-rt/lib/builtins/cpu_model/aarch64.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,29 @@ typedef struct __ifunc_arg_t {
3434
_Bool __aarch64_have_lse_atomics
3535
__attribute__((visibility("hidden"), nocommon)) = false;
3636

37+
// The formatter wants to re-order these includes, but doing so is incorrect:
38+
// clang-format off
3739
#if defined(__FreeBSD__) || defined(__OpenBSD__)
38-
// clang-format off: should not reorder sys/auxv.h alphabetically
3940
#include <sys/auxv.h>
40-
// clang-format on
4141
#include "aarch64/hwcap.inc"
4242
#include "aarch64/lse_atomics/elf_aux_info.inc"
4343
#elif defined(__Fuchsia__)
4444
#include "aarch64/hwcap.inc"
4545
#include "aarch64/lse_atomics/fuchsia.inc"
4646
#elif defined(__ANDROID__)
47+
#include <sys/auxv.h>
4748
#include "aarch64/hwcap.inc"
4849
#include "aarch64/lse_atomics/android.inc"
49-
#elif defined(__linux__) && __has_include(<sys/auxv.h>)
50+
#elif defined(__linux__)
51+
#include <sys/auxv.h>
5052
#include "aarch64/hwcap.inc"
5153
#include "aarch64/lse_atomics/getauxval.inc"
5254
#elif defined(_WIN32)
5355
#include "aarch64/lse_atomics/windows.inc"
5456
#else
5557
// When unimplemented, we leave __aarch64_have_lse_atomics initialized to false.
5658
#endif
59+
// clang-format on
5760

5861
#if !defined(DISABLE_AARCH64_FMV)
5962

@@ -76,7 +79,7 @@ struct {
7679
#elif defined(__ANDROID__)
7780
#include "aarch64/fmv/hwcap.inc"
7881
#include "aarch64/fmv/android.inc"
79-
#elif defined(__linux__) && __has_include(<sys/auxv.h>)
82+
#elif defined(__linux__)
8083
#include "aarch64/fmv/hwcap.inc"
8184
#include "aarch64/fmv/getauxval.inc"
8285
#elif defined(_WIN32)

compiler-rt/lib/builtins/cpu_model/aarch64/hwcap.inc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
#if __has_include(<sys/hwcap.h>)
2-
#include <sys/hwcap.h>
3-
#define HAVE_SYS_HWCAP_H
4-
#endif
5-
61
#ifndef _IFUNC_ARG_HWCAP
72
#define _IFUNC_ARG_HWCAP (1ULL << 62)
83
#endif

compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/android.inc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include <string.h>
2-
#include <sys/auxv.h>
32
#include <sys/system_properties.h>
43

54
static bool __isExynos9810(void) {

compiler-rt/lib/builtins/cpu_model/aarch64/lse_atomics/getauxval.inc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#include <sys/auxv.h>
2-
31
static void CONSTRUCTOR_ATTRIBUTE init_have_lse_atomics(void) {
42
unsigned long hwcap = getauxval(AT_HWCAP);
53
__aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0;

0 commit comments

Comments
 (0)