diff options
author | Peter Collingbourne <pcc@google.com> | 2025-10-14 10:57:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-14 10:57:57 -0700 |
commit | 4e3b7df47608c02f3b07845bd414a61a991348a7 (patch) | |
tree | 4cd019fadb21bcabc6f3f6e041e3e7c6334be4cc /llvm/lib/Support/TextEncoding.cpp | |
parent | f5ca0bcbc8c74721e2c079f216da88c6d8888a1a (diff) | |
download | llvm-4e3b7df47608c02f3b07845bd414a61a991348a7.zip llvm-4e3b7df47608c02f3b07845bd414a61a991348a7.tar.gz llvm-4e3b7df47608c02f3b07845bd414a61a991348a7.tar.bz2 |
MC: Introduce R_AARCH64_FUNCINIT64 relocation type.
R_AARCH64_FUNCINIT64 is a dynamic relocation type for relocating
word-sized data in the output file using the return value of
a function. An R_AARCH64_FUNCINIT64 shall be relocated as an
R_AARCH64_IRELATIVE with the target symbol address if the target
symbol is non-preemptible, and it shall be a usage error to relocate an
R_AARCH64_FUNCINIT64 with a preemptible or STT_GNU_IFUNC target symbol.
The initial use case for this relocation type shall be for emitting
global variable field initializers for structure protection. With
structure protection, the relocation value computation is tied to the
compiler implementation in such a way that it would not be reasonable to
define a relocation type for it (for example, it may involve computing
a hash using a compiler-determined algorithm), hence the need for the
computation to be implemented as code in the binary.
Part of the AArch64 psABI extension:
https://github.com/ARM-software/abi-aa/issues/340
Reviewers: smithp35
Reviewed By: smithp35
Pull Request: https://github.com/llvm/llvm-project/pull/133531
Diffstat (limited to 'llvm/lib/Support/TextEncoding.cpp')
0 files changed, 0 insertions, 0 deletions