diff options
| author | Dave Lee <davelee.com@gmail.com> | 2017-11-08 00:58:50 +0000 |
|---|---|---|
| committer | Dave Lee <davelee.com@gmail.com> | 2017-11-08 00:58:50 +0000 |
| commit | 7db10de5e69c1e1d7f19db721cf93ddf50b124ed (patch) | |
| tree | 8100cfb63dc8e8cf58c8b41f450d7d3a46b199fe /llvm/test/tools | |
| parent | 4709ab912489556eaaaa96fb596e2dc3e798e375 (diff) | |
| download | bcm5719-llvm-7db10de5e69c1e1d7f19db721cf93ddf50b124ed.tar.gz bcm5719-llvm-7db10de5e69c1e1d7f19db721cf93ddf50b124ed.zip | |
Reapply: Allow yaml2obj to order implicit sections for ELF
Summary:
This change allows yaml input to control the order of implicitly added sections
(`.symtab`, `.strtab`, `.shstrtab`). The order is controlled by adding a
placeholder section of the given name to the Sections field.
This change is to support changes in D39582, where it is desirable to control
the location of the `.dynsym` section.
This reapplied version fixes:
1. use of a function call within an assert
2. failing lld test which has an unnamed section
Additionally, one more test to cover the unnamed section failure.
Reviewers: compnerd, jakehehrlich
Reviewed By: jakehehrlich
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39749
llvm-svn: 317646
Diffstat (limited to 'llvm/test/tools')
| -rw-r--r-- | llvm/test/tools/yaml2obj/section-ordering.yaml | 29 | ||||
| -rw-r--r-- | llvm/test/tools/yaml2obj/unnamed-section.yaml | 14 |
2 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/tools/yaml2obj/section-ordering.yaml b/llvm/test/tools/yaml2obj/section-ordering.yaml new file mode 100644 index 00000000000..885b28a2c09 --- /dev/null +++ b/llvm/test/tools/yaml2obj/section-ordering.yaml @@ -0,0 +1,29 @@ +# Ensures that implicitly added sections can be ordered within Sections. +# RUN: yaml2obj %s -o %t +# RUN: llvm-readobj -sections %t | FileCheck %s + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] + - Name: .symtab + Type: SHT_SYMTAB + - Name: .data + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_WRITE ] + - Name: .shstrtab + Type: SHT_STRTAB + - Name: .strtab + Type: SHT_STRTAB + +# CHECK: Name: .text +# CHECK: Name: .symtab +# CHECK: Name: .data +# CHECK: Name: .shstrtab +# CHECK: Name: .strtab diff --git a/llvm/test/tools/yaml2obj/unnamed-section.yaml b/llvm/test/tools/yaml2obj/unnamed-section.yaml new file mode 100644 index 00000000000..b62bfe7859f --- /dev/null +++ b/llvm/test/tools/yaml2obj/unnamed-section.yaml @@ -0,0 +1,14 @@ +# Ensure yaml2obj doesn't crash on unnamed sections +# RUN: yaml2obj %s + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_EXEC + Machine: EM_X86_64 +Sections: + - Type: SHT_PROGBITS + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_EXECINSTR ] |

