Sorry, your browser is not supported. We recommend upgrading your browser.
We have done our best to make all the documentation and resources available on old versions of Internet Explorer, but vector image support and the layout may not be optimal. Technical documentation is available as a PDF Download.
Tools and Software
Open Source Software
Pointer Authentication support in LLVM toolchain
Initial support for Armv8.3-A Pointer Authentication in llvm, libunwind and DWARF.
lld: new flag: --pac-plt to support signed plts.
lld: emit DT_AARCH64_PAC_PLT dynamic tag.
lld: automatic generation of pac-plt (signed plt) if PAuth is enabled, mandates dynamic loader support.
llvm-readobj: .note.gnu.property section support
llvm-readobj: DT_AARCH64_PAC_PLT dynamic tag support
lld: --pac-plt became -z pac-plt
lld: PT_GNU_PROPERTY support
lld: various fixes around .note.gnu.property section.
Emission of PAC flag into .note.gnu.property section.
Hint instructions are emitted into assembly for pre Armv8.3-A targets.
Outlined functions are return-address-signed.
Added support for __attribute__((target("branch-protection=..."))) function attribute
clang: __ARM_FEATURE_PAC_DEFAULT is added
lld: pac-plt (signed plt) is only generated when -z pac-plt is set.
LLVM12 * (Planned)
__builtin_return_address: XPACLRI (before Armv8.3-A) or XPACI (Armv8.3-A and later) strips the PAC bits from the address.
Functions generated internally by LLVM now respect compilation flags: PAuth instructions are inserted into them as well.
Bugfix: .note.gnu.property does not claim PAuth support if -mbranch-protection does not enable pac-ret.
Was this page helpful?
Thank you! We appreciate your feedback.