[AArch64][BTI] Add BTI hint + GNU property to fcontext trampolines #312
+54
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add BTI hint + GNU property to fcontext trampolines
The AArch64 fcontext trampolines (jump_fcontext, make_fcontext, ontop_fcontext) are indirect-entry-points. On BTI-enforcing systems they must begin with a BTI or the first resume can trap with SIGILL.
Insert
bti c
(hint #34) at each entry under__ARM_FEATURE_BTI_DEFAULT
, and emitGNU_PROPERTY_AARCH64_FEATURE_1_BTI
from each AArch64 assembly file so linkers map the DSO with PROT_BTI.Scope: ELF/GAS AArch64 trampolines only; +4 bytes per entry
Fixes #308
Notes
bti j
issue #149267; exception paths built with affected Clang toolchains will still require the upstream fix.