diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-03 02:27:00 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-03 02:27:00 +0000 |
commit | 41de905e259cb49cd055806fa87ec787010ee687 (patch) | |
tree | 94944a83540113b46a5bbdb21bdb72e3797c8564 | |
parent | b0e3b66fa5ef650a0a358a1db6b0067ed351e4ad (diff) | |
download | bcm5719-llvm-41de905e259cb49cd055806fa87ec787010ee687.tar.gz bcm5719-llvm-41de905e259cb49cd055806fa87ec787010ee687.zip |
Add support for the R_ARM_ABS32 relocation.
This should bring the arm buildbots back.
llvm-svn: 205502
-rw-r--r-- | llvm/include/llvm/Object/RelocVisitor.h | 13 | ||||
-rw-r--r-- | llvm/test/DebugInfo/Inputs/arm-relocs.elf-arm | bin | 0 -> 3012 bytes | |||
-rw-r--r-- | llvm/test/DebugInfo/arm-relocs.test | 5 |
3 files changed, 18 insertions, 0 deletions
diff --git a/llvm/include/llvm/Object/RelocVisitor.h b/llvm/include/llvm/Object/RelocVisitor.h index c72db2ce412..a3aaf17f1d6 100644 --- a/llvm/include/llvm/Object/RelocVisitor.h +++ b/llvm/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/llvm/test/DebugInfo/Inputs/arm-relocs.elf-arm b/llvm/test/DebugInfo/Inputs/arm-relocs.elf-arm Binary files differnew file mode 100644 index 00000000000..4864c36256f --- /dev/null +++ b/llvm/test/DebugInfo/Inputs/arm-relocs.elf-arm diff --git a/llvm/test/DebugInfo/arm-relocs.test b/llvm/test/DebugInfo/arm-relocs.test new file mode 100644 index 00000000000..13e11f7043f --- /dev/null +++ b/llvm/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" |