The R_AARCH64_PLT32 relocation type will be documented in the next release of ELF for the 64-bit Arm Architecture. It is being added in draft state for the benefit of the position independent vtable feature D72959
R_AARCH64_PLT32 is very similar to R_AARCH64_PREL32. The intention is to provide a signed 32-bit integer representing an offset from the place to a function.
- It relocates 32-bit data
- The expression is S + A - P
- The overflow check for the expression is -2^31 <= X < 2^31
- The relocation generates Thunks/Veneers/Stubs and PLT entries as per R_AARCH64_CALL26
- If the symbol S is an undefined weak the ABI draft does not define its value.
The ABI defines a code for ilp32 for completeness, I have added the code but have only added to the existing reloc-types-elf-aarch64.text as there is no ilp32 equivalent test case.
I assume this isn't the final value of the relocation type? The range [0x400, ...] is reserved for dynamic relocations; I would have expected this to be added in the range [0x100, 0x200) together with the other non-TLS static relocations.