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:
parent
b23a0b409d
commit
c4e0f5e5ee
Notes:
sideshowbarker
2024-07-17 10:08:28 +09:00
Author: https://github.com/BertalanD Commit: https://github.com/SerenityOS/serenity/commit/c4e0f5e5ee Pull-request: https://github.com/SerenityOS/serenity/pull/18459 Reviewed-by: https://github.com/ADKaster ✅ Reviewed-by: https://github.com/timschumi ✅
2 changed files with 2 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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())
|
||||
|
|
Loading…
Add table
Reference in a new issue