forked from rpms/glibc
c2879fd933
* Thu Jan 13 2022 Florian Weimer <fweimer@redhat.com> - 2.34-18 - Backport optimized ELF dependency sorting algorithm (#2032647) * Thu Jan 13 2022 Florian Weimer <fweimer@redhat.com> - 2.34-17 - Sync with upstream branch release/2.34/master, commit 2fe2af88abd13ae5636881da2e26f461ecb7dfb5 - i386: Remove broken CAN_USE_REGISTER_ASM_EBP (bug 28771) - Update syscall lists for Linux 5.15 - powerpc: Fix unrecognized instruction errors with recent GCC - timezone: test-case for BZ #28707 - timezone: handle truncated timezones from tzcode-2021d and later (BZ #28707) - Fix subscript error with odd TZif file [BZ #28338] - AArch64: Check for SVE in ifuncs [BZ #28744] - intl/plural.y: Avoid conflicting declarations of yyerror and yylex - Linux: Fix 32-bit vDSO for clock_gettime on powerpc32 - linux: Add sparck brk implementation - Update sparc libm-test-ulps - Update hppa libm-test-ulps - riscv: align stack before calling _dl_init [BZ #28703] - riscv: align stack in clone [BZ #28702] - powerpc64[le]: Allocate extra stack frame on syscall.S - elf: Fix tst-cpu-features-cpuinfo for KVM guests on some AMD systems [BZ #28704] - nss: Use "files dns" as the default for the hosts database (bug 28700) - arm: Guard ucontext _rtld_global_ro access by SHARED, not PIC macro - mips: increase stack alignment in clone to match the ABI - mips: align stack in clone [BZ #28223] Resolves: #2032647 Resolves: #2033649
51 lines
1.7 KiB
Diff
51 lines
1.7 KiB
Diff
commit 217b84127b3a6590afcc7e198e6c3f665935e8f4
|
|
Author: Wilco Dijkstra <wdijkstr@arm.com>
|
|
Date: Thu Jan 6 14:36:28 2022 +0000
|
|
|
|
AArch64: Check for SVE in ifuncs [BZ #28744]
|
|
|
|
Add a check for SVE in the A64FX ifuncs for memcpy, memset and memmove.
|
|
This fixes BZ #28744.
|
|
|
|
(cherry picked from commit e5fa62b8db546f8792ec9e5c61e6419f4f8e3f4d)
|
|
|
|
diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
|
|
index 25e0081eeb51727c..b6703af44b3f1a3d 100644
|
|
--- a/sysdeps/aarch64/multiarch/memcpy.c
|
|
+++ b/sysdeps/aarch64/multiarch/memcpy.c
|
|
@@ -48,7 +48,7 @@ libc_ifunc (__libc_memcpy,
|
|
|| IS_NEOVERSE_V1 (midr)
|
|
? __memcpy_simd
|
|
# if HAVE_AARCH64_SVE_ASM
|
|
- : (IS_A64FX (midr)
|
|
+ : (IS_A64FX (midr) && sve
|
|
? __memcpy_a64fx
|
|
: __memcpy_generic))))));
|
|
# else
|
|
diff --git a/sysdeps/aarch64/multiarch/memmove.c b/sysdeps/aarch64/multiarch/memmove.c
|
|
index d0adefc547f60030..d2339ff34ff7b3e5 100644
|
|
--- a/sysdeps/aarch64/multiarch/memmove.c
|
|
+++ b/sysdeps/aarch64/multiarch/memmove.c
|
|
@@ -48,7 +48,7 @@ libc_ifunc (__libc_memmove,
|
|
|| IS_NEOVERSE_V1 (midr)
|
|
? __memmove_simd
|
|
# if HAVE_AARCH64_SVE_ASM
|
|
- : (IS_A64FX (midr)
|
|
+ : (IS_A64FX (midr) && sve
|
|
? __memmove_a64fx
|
|
: __memmove_generic))))));
|
|
# else
|
|
diff --git a/sysdeps/aarch64/multiarch/memset.c b/sysdeps/aarch64/multiarch/memset.c
|
|
index d7d9bbbda095e051..3d839bc02e96380d 100644
|
|
--- a/sysdeps/aarch64/multiarch/memset.c
|
|
+++ b/sysdeps/aarch64/multiarch/memset.c
|
|
@@ -44,7 +44,7 @@ libc_ifunc (__libc_memset,
|
|
: (IS_EMAG (midr) && zva_size == 64
|
|
? __memset_emag
|
|
# if HAVE_AARCH64_SVE_ASM
|
|
- : (IS_A64FX (midr)
|
|
+ : (IS_A64FX (midr) && sve
|
|
? __memset_a64fx
|
|
: __memset_generic))));
|
|
# else
|