Skip to content

Commit b0e9842

Browse files
authored
Revert "[FMV][AArch64] Add initial AT_HWCAP3 / AT_HWCAP4 support (#161595)" (#171071)
Crashing with older glibc. This reverts commit edb4319, 57b5ba0 and 9715cca.
1 parent 2d80486 commit b0e9842

File tree

5 files changed

+7
-33
lines changed

5 files changed

+7
-33
lines changed

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@
1919
#error This file is intended only for aarch64-based targets
2020
#endif
2121

22+
#if __has_include(<sys/ifunc.h>)
23+
#include <sys/ifunc.h>
24+
#else
2225
typedef struct __ifunc_arg_t {
2326
unsigned long _size;
2427
unsigned long _hwcap;
2528
unsigned long _hwcap2;
26-
unsigned long _hwcap3;
27-
unsigned long _hwcap4;
2829
} __ifunc_arg_t;
30+
#endif // __has_include(<sys/ifunc.h>)
2931

3032
// LSE support detection for out-of-line atomics
3133
// using HWCAP and Auxiliary vector

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,10 @@ void CONSTRUCTOR_ATTRIBUTE __init_cpu_features(void) {
2727

2828
unsigned long hwcap = getauxval(AT_HWCAP);
2929
unsigned long hwcap2 = getauxval(AT_HWCAP2);
30-
unsigned long hwcap3 = getauxval(AT_HWCAP3);
31-
unsigned long hwcap4 = getauxval(AT_HWCAP4);
3230

3331
__ifunc_arg_t arg;
3432
arg._size = sizeof(__ifunc_arg_t);
3533
arg._hwcap = hwcap;
3634
arg._hwcap2 = hwcap2;
37-
arg._hwcap3 = hwcap3;
38-
arg._hwcap4 = hwcap4;
3935
__init_cpu_features_constructor(hwcap | _IFUNC_ARG_HWCAP, &arg);
4036
}

compiler-rt/lib/builtins/cpu_model/aarch64/fmv/elf_aux_info.inc

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,17 @@ void __init_cpu_features_resolver(unsigned long hwcap,
77
}
88

99
void CONSTRUCTOR_ATTRIBUTE __init_cpu_features(void) {
10-
unsigned long hwcap, hwcap2, hwcap3, hwcap4 = 0;
10+
unsigned long hwcap, hwcap2 = 0;
1111
// CPU features already initialized.
1212
if (__atomic_load_n(&__aarch64_cpu_features.features, __ATOMIC_RELAXED))
1313
return;
1414

1515
elf_aux_info(AT_HWCAP, &hwcap, sizeof hwcap);
1616
elf_aux_info(AT_HWCAP2, &hwcap2, sizeof hwcap2);
17-
elf_aux_info(AT_HWCAP3, &hwcap3, sizeof hwcap3);
18-
elf_aux_info(AT_HWCAP4, &hwcap4, sizeof hwcap4);
1917

2018
__ifunc_arg_t arg;
2119
arg._size = sizeof(__ifunc_arg_t);
2220
arg._hwcap = hwcap;
2321
arg._hwcap2 = hwcap2;
24-
arg._hwcap3 = hwcap3;
25-
arg._hwcap4 = hwcap4;
2622
__init_cpu_features_constructor(hwcap | _IFUNC_ARG_HWCAP, &arg);
2723
}

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,10 @@ void CONSTRUCTOR_ATTRIBUTE __init_cpu_features(void) {
1212

1313
unsigned long hwcap = getauxval(AT_HWCAP);
1414
unsigned long hwcap2 = getauxval(AT_HWCAP2);
15-
unsigned long hwcap3 = getauxval(AT_HWCAP3);
16-
unsigned long hwcap4 = getauxval(AT_HWCAP4);
1715

1816
__ifunc_arg_t arg;
1917
arg._size = sizeof(__ifunc_arg_t);
2018
arg._hwcap = hwcap;
2119
arg._hwcap2 = hwcap2;
22-
arg._hwcap3 = hwcap3;
23-
arg._hwcap4 = hwcap4;
2420
__init_cpu_features_constructor(hwcap | _IFUNC_ARG_HWCAP, &arg);
2521
}

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

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#define _IFUNC_ARG_HWCAP (1ULL << 62)
33
#endif
44
#ifndef AT_HWCAP
5-
#define AT_HWCAP 16 // Linux value
5+
#define AT_HWCAP 16
66
#endif
77
#ifndef HWCAP_CPUID
88
#define HWCAP_CPUID (1 << 11)
@@ -90,7 +90,7 @@
9090
#endif
9191

9292
#ifndef AT_HWCAP2
93-
#define AT_HWCAP2 26 // Linux value
93+
#define AT_HWCAP2 26
9494
#endif
9595
#ifndef HWCAP2_DCPODP
9696
#define HWCAP2_DCPODP (1 << 0)
@@ -185,19 +185,3 @@
185185
#ifndef HWCAP2_CSSC
186186
#define HWCAP2_CSSC (1UL << 34)
187187
#endif
188-
189-
#ifndef AT_HWCAP3
190-
#ifdef __linux__
191-
#define AT_HWCAP3 29 // Linux value
192-
#else
193-
#define AT_HWCAP3 38 // BSD value
194-
#endif
195-
#endif
196-
197-
#ifndef AT_HWCAP4
198-
#ifdef __linux__
199-
#define AT_HWCAP4 30 // Linux value
200-
#else
201-
#define AT_HWCAP4 39 // BSD value
202-
#endif
203-
#endif

0 commit comments

Comments
 (0)