[llvm] 5ae9faa - [Object][x86-64] Add support for `R_X86_64_GLOB_DAT` relocations. (#103029)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 13 14:54:46 PDT 2024
Author: Alastair Houghton
Date: 2024-08-14T07:54:43+10:00
New Revision: 5ae9faa538d100ab38f6f4f99c924de0e4270272
URL: https://github.com/llvm/llvm-project/commit/5ae9faa538d100ab38f6f4f99c924de0e4270272
DIFF: https://github.com/llvm/llvm-project/commit/5ae9faa538d100ab38f6f4f99c924de0e4270272.diff
LOG: [Object][x86-64] Add support for `R_X86_64_GLOB_DAT` relocations. (#103029)
Add support for `R_X86_64_GLOB_DAT` relocations to the relocation
resolver.
rdar://133510292
Added:
Modified:
llvm/lib/Object/RelocationResolver.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Object/RelocationResolver.cpp b/llvm/lib/Object/RelocationResolver.cpp
index d9bb8f175ef83a..7f90834c3d2199 100644
--- a/llvm/lib/Object/RelocationResolver.cpp
+++ b/llvm/lib/Object/RelocationResolver.cpp
@@ -47,6 +47,7 @@ static bool supportsX86_64(uint64_t Type) {
case ELF::R_X86_64_PC64:
case ELF::R_X86_64_32:
case ELF::R_X86_64_32S:
+ case ELF::R_X86_64_GLOB_DAT:
return true;
default:
return false;
@@ -68,6 +69,8 @@ static uint64_t resolveX86_64(uint64_t Type, uint64_t Offset, uint64_t S,
case ELF::R_X86_64_32:
case ELF::R_X86_64_32S:
return (S + Addend) & 0xFFFFFFFF;
+ case ELF::R_X86_64_GLOB_DAT:
+ return S;
default:
llvm_unreachable("Invalid relocation type");
}
More information about the llvm-commits
mailing list