LibC+LibELF: Handle the R_AARCH64_IRELATIVE relocation type

This is the AArch64 equivalent of `R_X86_64_IRELATIVE`, which specifies
a symbol whose address is determined by calling a local IFUNC resolver
function.
This commit is contained in:
Daniel Bertalan 2023-04-20 18:04:58 +02:00 committed by Andreas Kling
parent b23a0b409d
commit c4e0f5e5ee
Notes: sideshowbarker 2024-07-17 10:08:28 +09:00
2 changed files with 2 additions and 0 deletions

View file

@ -827,3 +827,4 @@ struct elf_args {
#define R_AARCH64_JUMP_SLOT 1026
#define R_AARCH64_RELATIVE 1027
#define R_AARCH64_TLS_TPREL64 1030
#define R_AARCH64_IRELATIVE 1032

View file

@ -581,6 +581,7 @@ DynamicLoader::RelocationResult DynamicLoader::do_relocation(const ELF::DynamicO
}
break;
}
case R_AARCH64_IRELATIVE:
case R_X86_64_IRELATIVE: {
VirtualAddress resolver;
if (relocation.addend_used())