glibc/sysdeps
Adhemerval Zanella 4352e2cc93 aarch64: Fix _dl_tlsdesc_dynamic unwind for pac-ret (BZ 32612)
When libgcc is built with pac-ret, it requires to autenticate the
unwinding frame based on CFI information.  The _dl_tlsdesc_dynamic
uses a custom calling convention, where it is responsible to save
and restore all registers it might use (even volatile).

The pac-ret support added by 1be3d6eb82
was added only on the slow-path, but the fast path also adds DWARF
Register Rule Instruction (cfi_adjust_cfa_offset) since it requires
to save/restore some auxiliary register.  It seems that this is not
fully supported neither by libgcc nor AArch64 ABI [1].

Instead, move paciasp/autiasp to function prologue/epilogue to be
used on both fast and slow paths.

I also corrected the _dl_tlsdesc_dynamic comment description, it was
copied from i386 implementation without any adjustment.

Checked on aarch64-linux-gnu with a toolchain built with
--enable-standard-branch-protection on a system with pac-ret
support.

[1]  https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#id1

Reviewed-by: Yury Khrustalev <yury.khrustalev@arm.com>
2025-03-31 10:08:06 -03:00
..
aarch64 aarch64: Fix _dl_tlsdesc_dynamic unwind for pac-ret (BZ 32612) 2025-03-31 10:08:06 -03:00
alpha math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
arc math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
arm math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
csky math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
generic Implement C23 pown 2025-03-27 10:44:44 +00:00
gnu
hppa math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
htl htl: Make pthread_setcanceltype / state a cancellation point 2025-03-15 19:45:55 +00:00
hurd hurd: Consolidate signal mask change 2025-03-06 02:28:35 +01:00
i386 math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
ieee754 stdio-common: Reject real data w/o exponent digits in scanf [BZ #12701] 2025-03-28 12:35:53 +00:00
loongarch Implement C23 pown 2025-03-27 10:44:44 +00:00
m68k math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
mach Implement C23 pown 2025-03-27 10:44:44 +00:00
microblaze math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
mips math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
nptl aio_suspend64: Fix clock discrepancy [BZ #32795] 2025-03-25 01:05:11 +01:00
or1k math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
posix Fix underallocation of abort_msg_s struct (CVE-2025-0395) 2025-01-22 08:17:17 -05:00
powerpc math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
pthread tst-fopen-threaded: Only check EOF for failing read 2025-03-14 12:28:05 -04:00
riscv math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
s390 math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
sh math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
sparc math: Refactor how to use libm-test-ulps 2025-03-12 13:40:07 -03:00
unix aarch64: Fix _dl_tlsdesc_dynamic unwind for pac-ret (BZ 32612) 2025-03-31 10:08:06 -03:00
wordsize-32 stdio-common: Reject integer prefixes in scanf [BZ #12701] 2025-03-28 12:35:53 +00:00
wordsize-64 stdio-common: Reject integer prefixes in scanf [BZ #12701] 2025-03-28 12:35:53 +00:00
x86 x86: Use separate variable for TLSDESC XSAVE/XSAVEC state size (bug 32810) 2025-03-29 09:17:38 +01:00
x86_64 x86: Use separate variable for TLSDESC XSAVE/XSAVEC state size (bug 32810) 2025-03-29 09:17:38 +01:00