HomeFreeBSD

linux(4): Rework signal trampoline on Aarch64

Description

linux(4): Rework signal trampoline on Aarch64

To avoid clobbering of any registers by the trampoline code use Linux
way to call signal handlers. I.e., we are out from the kernel right into
the signal handler, put return address from the signal handler into the
link register.
The mysterious NOP is required for some unwinders (e.g. libc++) that
unconditionally subtract one from the result of _Unwind_GetIP() in order
to identify the calling function.

MFC after: 1 week

Details

Provenance
dchaginAuthored on May 14 2023, 9:27 PM
Parents
rG5f19e18b641a: linux(4): Get rid of linux_vdso_sigcode
Branches
Unknown
Tags
Unknown