diff options
| author | Will Newton <will.newton@linaro.org> | 2014-11-27 17:20:48 +0000 |
|---|---|---|
| committer | Will Newton <will.newton@linaro.org> | 2014-11-27 17:20:48 +0000 |
| commit | a7d232fe5608ed41e8401d0cb34baa5ff3f85d52 (patch) | |
| tree | b55f881d6aeb3d38cf86881b420ff7a5d3a97963 | |
| parent | d11591b293ed4b5ead18866c88288d6daebb1f4c (diff) | |
| download | bcm5719-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.h | 2 | ||||
| -rw-r--r-- | llvm/test/Object/AArch64/yaml2obj-elf-aarch64-rel.yaml | 10 |
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: |

