From: Rafael Espindola Date: Thu, 3 Apr 2014 02:27:00 +0000 (+0000) Subject: Add support for the R_ARM_ABS32 relocation. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2f913e3c6c3a42c0055df5cc6007e0064df3dec0;p=oota-llvm.git Add support for the R_ARM_ABS32 relocation. This should bring the arm buildbots back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205502 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Object/RelocVisitor.h b/include/llvm/Object/RelocVisitor.h index c72db2ce412..a3aaf17f1d6 100644 --- a/include/llvm/Object/RelocVisitor.h +++ b/include/llvm/Object/RelocVisitor.h @@ -153,6 +153,14 @@ public: HasError = true; return RelocToApply(); } + } else if (FileFormat == "ELF32-arm") { + switch (RelocType) { + default: + HasError = true; + return RelocToApply(); + case llvm::ELF::R_ARM_ABS32: + return visitELF_ARM_ABS32(R, Value); + } } HasError = true; return RelocToApply(); @@ -325,6 +333,11 @@ private: return RelocToApply(Value + Addend, 8); } + RelocToApply visitELF_ARM_ABS32(RelocationRef R, uint64_t Value) { + int64_t Addend = getAddend32LE(R); + return RelocToApply(Value + Addend, 4); + } + }; } diff --git a/test/DebugInfo/Inputs/arm-relocs.elf-arm b/test/DebugInfo/Inputs/arm-relocs.elf-arm new file mode 100644 index 00000000000..4864c36256f Binary files /dev/null and b/test/DebugInfo/Inputs/arm-relocs.elf-arm differ diff --git a/test/DebugInfo/arm-relocs.test b/test/DebugInfo/arm-relocs.test new file mode 100644 index 00000000000..13e11f7043f --- /dev/null +++ b/test/DebugInfo/arm-relocs.test @@ -0,0 +1,5 @@ +RUN: llvm-dwarfdump %p/Inputs/arm-relocs.elf-arm | FileCheck %s + +; CHECK: debug_info contents +; CHECK: DW_TAG_enumeration_type +; CHECK-NEXT: DW_AT_name{{.*}} = "e1"