Skip to content

Clarify "base" level BTI requirements for a toolchain #321

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
smithp35 opened this issue Apr 7, 2025 · 1 comment
Open

Clarify "base" level BTI requirements for a toolchain #321

smithp35 opened this issue Apr 7, 2025 · 1 comment

Comments

@smithp35
Copy link
Contributor

smithp35 commented Apr 7, 2025

#282 added some text alongside the GNU property description of BTI to define what a code-generator could assume about the static linker.

While this may have been the most convenient place to put the information. This is strictly speaking not just restricted to the sysvabi. Bare-metal and non-sysv platforms may use BTI. Windows on Arm and Darwin will need to choose their own platform ABI for BTI, if they support it at all.

Thoughts:
The https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst#577call-and-jump-relocations should mention that static linkers cannot assume a BTI at the destination. Add a reference to the sysvabi text for more details.

Being "indirectly callable" could be considered part of the Procedure Call standard too, on requirements for callees when BTI is enabled.

@smithp35
Copy link
Contributor Author

smithp35 commented Apr 8, 2025

Created #322 for bare-metal veneers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant