aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/aarch64/multiarch/init-arch.h
diff options
context:
space:
mode:
authorSzabolcs Nagy <szabolcs.nagy@arm.com>2021-01-22 16:57:32 +0000
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2021-01-25 16:15:54 +0000
commit04c6a8073d1c9d73c4a88b536aeb803b12fbffdc (patch)
treed6c6297e8d53931ddc878b3608f1e825e7232255 /sysdeps/aarch64/multiarch/init-arch.h
parentad47748992fadb6f1663f5a76eef3c24992a1815 (diff)
downloadglibc-04c6a8073d1c9d73c4a88b536aeb803b12fbffdc.tar
glibc-04c6a8073d1c9d73c4a88b536aeb803b12fbffdc.tar.gz
glibc-04c6a8073d1c9d73c4a88b536aeb803b12fbffdc.tar.bz2
glibc-04c6a8073d1c9d73c4a88b536aeb803b12fbffdc.zip
aarch64: Fix the list of tested IFUNC variants [BZ #26818]
Some IFUNC variants are not compatible with BTI and MTE so don't set them as usable for testing and benchmarking on a BTI or MTE enabled system. As far as IFUNC selectors are concerned a system is BTI enabled if the cpu supports it and glibc was built with BTI branch protection. Most IFUNC variants are BTI compatible, but thunderx2 memcpy and memmove use a jump table with indirect jump, without a BTI j. Fixes bug 26818.
Diffstat (limited to 'sysdeps/aarch64/multiarch/init-arch.h')
-rw-r--r--sysdeps/aarch64/multiarch/init-arch.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/aarch64/multiarch/init-arch.h b/sysdeps/aarch64/multiarch/init-arch.h
index fce260d168..a167699e74 100644
--- a/sysdeps/aarch64/multiarch/init-arch.h
+++ b/sysdeps/aarch64/multiarch/init-arch.h
@@ -30,5 +30,7 @@
GLRO(dl_aarch64_cpu_features).midr_el1; \
unsigned __attribute__((unused)) zva_size = \
GLRO(dl_aarch64_cpu_features).zva_size; \
+ bool __attribute__((unused)) bti = \
+ HAVE_AARCH64_BTI && GLRO(dl_aarch64_cpu_features).bti; \
bool __attribute__((unused)) mte = \
MTE_ENABLED ();