File aarch64-hwcap-atomics.patch of Package glibc.15121
2018-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (HWCAP_IMPORTANT): Add
HWCAP_ATOMICS.
2018-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
* sysdeps/unix/sysv/linux/aarch64/cpu-features.c (init_cpu_features):
Use dl_hwcap without masking.
* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h (HWCAP_IMPORTANT):
Remove HWCAP_CPUID.
Index: glibc-2.26/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
===================================================================
--- glibc-2.26.orig/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ glibc-2.26/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -47,9 +47,6 @@ get_midr_from_mcpu (const char *mcpu)
static inline void
init_cpu_features (struct cpu_features *cpu_features)
{
- uint64_t hwcap_mask = GET_HWCAP_MASK();
- uint64_t hwcap = GLRO (dl_hwcap) & hwcap_mask;
-
register uint64_t midr = UINT64_MAX;
#if HAVE_TUNABLES
@@ -63,7 +60,7 @@ init_cpu_features (struct cpu_features *
allows it. */
if (midr == UINT64_MAX)
{
- if (hwcap & HWCAP_CPUID)
+ if (GLRO (dl_hwcap) & HWCAP_CPUID)
asm volatile ("mrs %0, midr_el1" : "=r"(midr));
else
midr = 0;
Index: glibc-2.26/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
===================================================================
--- glibc-2.26.orig/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
+++ glibc-2.26/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
@@ -33,9 +33,8 @@
/* Offset of the last bit allocated in HWCAP. */
#define _DL_HWCAP_LAST 15
-/* HWCAP_CPUID should be available by default to influence IFUNC as well as
- library search. */
-#define HWCAP_IMPORTANT HWCAP_CPUID
+/* No additional library search paths. */
+#define HWCAP_IMPORTANT HWCAP_ATOMICS
static inline const char *
__attribute__ ((unused))