summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWill Newton <will.newton@linaro.org>2014-11-27 17:20:48 +0000
committerWill Newton <will.newton@linaro.org>2014-11-27 17:20:48 +0000
commita7d232fe5608ed41e8401d0cb34baa5ff3f85d52 (patch)
treeb55f881d6aeb3d38cf86881b420ff7a5d3a97963
parentd11591b293ed4b5ead18866c88288d6daebb1f4c (diff)
downloadbcm5719-llvm-a7d232fe5608ed41e8401d0cb34baa5ff3f85d52.tar.gz
bcm5719-llvm-a7d232fe5608ed41e8401d0cb34baa5ff3f85d52.zip
Widen ELFYAML relocation type to 32 bits
The current 8 bits is sufficient for ELF32 targets but ELF64 requires 32 bits. Add a test for AArch64 that exposes the issue. llvm-svn: 222898
-rw-r--r--llvm/include/llvm/Object/ELFYAML.h2
-rw-r--r--llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml10
2 files changed, 10 insertions, 2 deletions
diff --git a/llvm/include/llvm/Object/ELFYAML.h b/llvm/include/llvm/Object/ELFYAML.h
index 687611ddb58..b71946d98b5 100644
--- a/llvm/include/llvm/Object/ELFYAML.h
+++ b/llvm/include/llvm/Object/ELFYAML.h
@@ -40,7 +40,7 @@ LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_ELFOSABI)
// Just use 64, since it can hold 32-bit values too.
LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_EF)
LLVM_YAML_STRONG_TYPEDEF(uint32_t, ELF_SHT)
-LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_REL)
+LLVM_YAML_STRONG_TYPEDEF(uint32_t, ELF_REL)
// Just use 64, since it can hold 32-bit values too.
LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_SHF)
LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_STT)
diff --git a/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml b/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml
index 61470250944..b8fb68113c7 100644
--- a/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml
+++ b/llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml
@@ -11,6 +11,10 @@
# CHECK-NEXT: Symbol: main
# CHECK-NEXT: Type: R_AARCH64_ABS64
# CHECK-NEXT: Addend: 0
+# CHECK-NEXT: - Offset: 0x0000000000000008
+# CHECK-NEXT: Symbol: main
+# CHECK-NEXT: Type: R_AARCH64_TLSGD_ADR_PREL21
+# CHECK-NEXT: Addend: 0
FileHeader:
Class: ELFCLASS64
@@ -22,7 +26,7 @@ Sections:
Name: .text
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
AddressAlign: 0x04
- Content: 0000000000000000
+ Content: 00000000000000000000000000000000
- Type: SHT_RELA
Name: .rela.text
Link: .symtab
@@ -33,6 +37,10 @@ Sections:
Symbol: main
Type: R_AARCH64_ABS64
Addend: 0
+ - Offset: 8
+ Symbol: main
+ Type: R_AARCH64_TLSGD_ADR_PREL21
+ Addend: 0
Symbols:
Local:
OpenPOWER on IntegriCloud