]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
linux(4): Implement signal trampoline for arm64 in a FreeBSD-way
authorDmitry Chagin <dchagin@FreeBSD.org>
Sun, 15 May 2022 18:10:50 +0000 (21:10 +0300)
committerDmitry Chagin <dchagin@FreeBSD.org>
Sun, 15 May 2022 18:10:50 +0000 (21:10 +0300)
commitc56480a832354aff995f9d0bc5da4ccf27dfe78a
tree88578b369405aa046c2303691f8decbd07bfeda7
parent08e201a3b4624d84f67f4587ab21b4b4abf61e76
linux(4): Implement signal trampoline for arm64 in a FreeBSD-way

The implemenation differs from others Linuxulators.
For unwinders Linux ucontext_t is stored, however native machine context
is used to store/restore process state to avoid code duplication.

As DWARF Aarch64 does not define a register number for PC and provides no
direct way to encode the PC of the previous frame, CFI cannot describe a
signal trampoline frame. So, modified the vdso linker script to discard
unused sections.

Extensions are not implemented.

MFC after: 2 weeks
sys/arm64/linux/linux.h
sys/arm64/linux/linux_locore.asm
sys/arm64/linux/linux_sigframe.h
sys/arm64/linux/linux_sysvec.c
sys/arm64/linux/linux_vdso.lds.s