diff options
author | George Rimar <grimar@accesssoftek.com> | 2019-10-20 14:47:17 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2019-10-20 14:47:17 +0000 |
commit | 2779987d0e2985a9618bd87b5f6532722645a5f2 (patch) | |
tree | f87c607c6feb2afaee621a46e01463a06eaada72 /llvm/test/tools/llvm-objcopy | |
parent | c4107383e509b459943ca4c529e90d25a2f6bdaa (diff) | |
download | bcm5719-llvm-2779987d0e2985a9618bd87b5f6532722645a5f2.tar.gz bcm5719-llvm-2779987d0e2985a9618bd87b5f6532722645a5f2.zip |
[yaml2obj][obj2yaml] - Do not create a symbol table by default.
This patch tries to resolve problems faced in D68943
and uses some of the code written by Konrad Wilhelm Kleine
in that patch.
Previously, yaml2obj tool always created a .symtab section.
This patch changes that. With it we only create it when
have a "Symbols:" tag in the YAML document or when
we need to create it because it is used by another section(s).
obj2yaml follows the new behavior and does not print "Symbols:"
anymore when there is no symbol table.
Differential revision: https://reviews.llvm.org/D69041
llvm-svn: 375361
Diffstat (limited to 'llvm/test/tools/llvm-objcopy')
23 files changed, 33 insertions, 32 deletions
diff --git a/llvm/test/tools/llvm-objcopy/ELF/add-section-remove.test b/llvm/test/tools/llvm-objcopy/ELF/add-section-remove.test index fe462dba1e8..ad41d74947d 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/add-section-remove.test +++ b/llvm/test/tools/llvm-objcopy/ELF/add-section-remove.test @@ -23,11 +23,10 @@ Sections: Flags: [ SHF_ALLOC ] Content: "32323232" -# CHECK: SectionHeaderCount: 7 +# CHECK: SectionHeaderCount: 6 # CHECK: Name: .test1 # CHECK: Name: .test3 -# CHECK: Name: .symtab # CHECK: Name: .strtab # CHECK: Name: .shstrtab # CHECK: Name: .test2 diff --git a/llvm/test/tools/llvm-objcopy/ELF/add-section.test b/llvm/test/tools/llvm-objcopy/ELF/add-section.test index 4acbd9ae4e2..e930d2754b8 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/add-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/add-section.test @@ -24,11 +24,10 @@ Sections: Flags: [ SHF_ALLOC ] Content: "32323232" -# CHECK: SectionHeaderCount: 7 +# CHECK: SectionHeaderCount: 6 # CHECK: Name: .test1 # CHECK: Name: .test3 -# CHECK: Name: .symtab # CHECK: Name: .strtab # CHECK: Name: .shstrtab # CHECK: Name: .test2 diff --git a/llvm/test/tools/llvm-objcopy/ELF/add-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/add-symbol.test index fd838602ba7..a9002d42971 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/add-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/add-symbol.test @@ -58,6 +58,9 @@ ProgramHeaders: Align: 0x1000 Sections: - Section: .data +## TODO (grimar): llvm-objcopy seems produce a broken output without +## the following line, i.e. when there is no symbol table in the input. +Symbols: [] # CHECK: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND # CHECK-NEXT: 1: 00000001 0 NOTYPE GLOBAL DEFAULT ABS abs1 diff --git a/llvm/test/tools/llvm-objcopy/ELF/basic-only-section.test b/llvm/test/tools/llvm-objcopy/ELF/basic-only-section.test index e47a97ac6d7..f95ea389116 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/basic-only-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/basic-only-section.test @@ -15,9 +15,7 @@ Sections: Type: SHT_PROGBITS Flags: [ ] -# CHECK: SectionHeaderCount: 5 +# CHECK: SectionHeaderCount: 3 # CHECK: Name: .test -# CHECK: Name: .symtab -# CHECK: Name: .strtab # CHECK: Name: .shstrtab diff --git a/llvm/test/tools/llvm-objcopy/ELF/explicit-keep-remove.test b/llvm/test/tools/llvm-objcopy/ELF/explicit-keep-remove.test index 98ad3ae7592..6512afac0cf 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/explicit-keep-remove.test +++ b/llvm/test/tools/llvm-objcopy/ELF/explicit-keep-remove.test @@ -13,9 +13,8 @@ Sections: Type: SHT_PROGBITS Flags: [ ] -# CHECK: SectionHeaderCount: 5 +# CHECK: SectionHeaderCount: 4 # CHECK: Name: .test -# CHECK: Name: .symtab # CHECK: Name: .strtab # CHECK: Name: .shstrtab diff --git a/llvm/test/tools/llvm-objcopy/ELF/explicit-only-section-remove.test b/llvm/test/tools/llvm-objcopy/ELF/explicit-only-section-remove.test index 8a152e57a5d..5baf845abe7 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/explicit-only-section-remove.test +++ b/llvm/test/tools/llvm-objcopy/ELF/explicit-only-section-remove.test @@ -13,9 +13,7 @@ Sections: Type: SHT_PROGBITS Flags: [ ] -# CHECK: SectionHeaderCount: 5 +# CHECK: SectionHeaderCount: 3 # CHECK: Name: .test -# CHECK: Name: .symtab -# CHECK: Name: .strtab # CHECK: Name: .shstrtab diff --git a/llvm/test/tools/llvm-objcopy/ELF/invalid-e_shoff.test b/llvm/test/tools/llvm-objcopy/ELF/invalid-e_shoff.test index fc2e08484b2..9d50922f196 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/invalid-e_shoff.test +++ b/llvm/test/tools/llvm-objcopy/ELF/invalid-e_shoff.test @@ -28,5 +28,6 @@ FileHeader: Sections: - Name: .foo Type: SHT_PROGBITS +Symbols: [] # CASE2: error: '[[INPUT]]': section header table goes past the end of the file: e_shoff = 0x40000000 diff --git a/llvm/test/tools/llvm-objcopy/ELF/keep-only-section.test b/llvm/test/tools/llvm-objcopy/ELF/keep-only-section.test index 7ea8468fe5f..75b5bbd77d4 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/keep-only-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/keep-only-section.test @@ -20,19 +20,15 @@ Sections: - Name: .test3 Type: SHT_PROGBITS -# CHECK: SectionHeaderCount: 6 +# CHECK: SectionHeaderCount: 4 # CHECK: Name: .test # CHECK: Name: .test2 -# CHECK: Name: .symtab -# CHECK: Name: .strtab # CHECK: Name: .shstrtab -# REGEX: SectionHeaderCount: 7 +# REGEX: SectionHeaderCount: 5 # REGEX: Name: .test # REGEX: Name: .test2 # REGEX: Name: .test3 -# REGEX: Name: .symtab -# REGEX: Name: .strtab # REGEX: Name: .shstrtab diff --git a/llvm/test/tools/llvm-objcopy/ELF/no-strip-all.test b/llvm/test/tools/llvm-objcopy/ELF/no-strip-all.test index a0158d4b834..90b4c15765f 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/no-strip-all.test +++ b/llvm/test/tools/llvm-objcopy/ELF/no-strip-all.test @@ -37,6 +37,7 @@ Sections: - Name: .alloc Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] +Symbols: [] # ALL: SectionHeaderCount: 3 # ALL: Name: .alloc diff --git a/llvm/test/tools/llvm-objcopy/ELF/no-symbol-relocation.test b/llvm/test/tools/llvm-objcopy/ELF/no-symbol-relocation.test index 9def536c239..4b13dda6484 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/no-symbol-relocation.test +++ b/llvm/test/tools/llvm-objcopy/ELF/no-symbol-relocation.test @@ -17,7 +17,6 @@ Sections: Content: "0000000000000000" - Name: .rel.text Type: SHT_REL - Link: .symtab Info: .text Relocations: - Offset: 0x1000 diff --git a/llvm/test/tools/llvm-objcopy/ELF/null-symbol.test b/llvm/test/tools/llvm-objcopy/ELF/null-symbol.test index 94f5ab5d8c2..b7ac3e8cf1e 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/null-symbol.test +++ b/llvm/test/tools/llvm-objcopy/ELF/null-symbol.test @@ -15,6 +15,7 @@ Sections: Address: 0x1000 AddressAlign: 0x0000000000000010 Size: 8 +Symbols: [] #CHECK: Symbols [ #CHECK-NEXT: Symbol { diff --git a/llvm/test/tools/llvm-objcopy/ELF/only-section-many.test b/llvm/test/tools/llvm-objcopy/ELF/only-section-many.test index 43ccff1c2c2..9f1f77d04d0 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/only-section-many.test +++ b/llvm/test/tools/llvm-objcopy/ELF/only-section-many.test @@ -19,10 +19,8 @@ Sections: Type: SHT_PROGBITS Flags: [ ] -# CHECK: SectionHeaderCount: 6 +# CHECK: SectionHeaderCount: 4 # CHECK: Name: .test1 # CHECK: Name: .test2 -# CHECK: Name: .symtab -# CHECK: Name: .strtab # CHECK: Name: .shstrtab diff --git a/llvm/test/tools/llvm-objcopy/ELF/preserve-segment-contents-ehdr-phdrs.test b/llvm/test/tools/llvm-objcopy/ELF/preserve-segment-contents-ehdr-phdrs.test index 4afd2c9285e..c6824c4cb47 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/preserve-segment-contents-ehdr-phdrs.test +++ b/llvm/test/tools/llvm-objcopy/ELF/preserve-segment-contents-ehdr-phdrs.test @@ -39,3 +39,4 @@ ProgramHeaders: - Type: PT_LOAD Sections: - Section: .keep_me +Symbols: [] diff --git a/llvm/test/tools/llvm-objcopy/ELF/remove-section.test b/llvm/test/tools/llvm-objcopy/ELF/remove-section.test index 8f8b98e90f0..927485a6002 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/remove-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/remove-section.test @@ -30,6 +30,7 @@ Sections: - Name: .test3 Type: SHT_PROGBITS Flags: [ ] +Symbols: [] # CHECK: SectionHeaderCount: 6 diff --git a/llvm/test/tools/llvm-objcopy/ELF/rename-section-multiple.test b/llvm/test/tools/llvm-objcopy/ELF/rename-section-multiple.test index e614f656053..c508ac80c30 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/rename-section-multiple.test +++ b/llvm/test/tools/llvm-objcopy/ELF/rename-section-multiple.test @@ -22,7 +22,7 @@ Sections: Flags: [ SHF_ALLOC ] Content: "37373737" -# CHECK: SectionHeaderCount: 7 +# CHECK: SectionHeaderCount: 6 # CHECK: Name: .test2 # CHECK: SectionData ( @@ -36,6 +36,5 @@ Sections: # CHECK: SectionData ( # CHECK-NEXT: 0000: 37373737 # CHECK-NEXT: ) -# CHECK: Name: .symtab # CHECK: Name: .strtab # CHECK: Name: .shstrtab diff --git a/llvm/test/tools/llvm-objcopy/ELF/rename-section.test b/llvm/test/tools/llvm-objcopy/ELF/rename-section.test index 3829b5b0da8..c8a1eafaa30 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/rename-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/rename-section.test @@ -16,13 +16,12 @@ Sections: Flags: [ SHF_ALLOC ] Content: "c3c3c3c3" -# CHECK: SectionHeaderCount: 5 +# CHECK: SectionHeaderCount: 4 # CHECK: Name: .bar # CHECK: SectionData ( # CHECK-NEXT: 0000: C3C3C3C3 # CHECK-NEXT: ) -# CHECK: Name: .symtab # CHECK: Name: .strtab # CHECK: Name: .shstrtab diff --git a/llvm/test/tools/llvm-objcopy/ELF/segment-shift-section-remove.test b/llvm/test/tools/llvm-objcopy/ELF/segment-shift-section-remove.test index cef783cb9b2..9a50a10bc24 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/segment-shift-section-remove.test +++ b/llvm/test/tools/llvm-objcopy/ELF/segment-shift-section-remove.test @@ -40,6 +40,9 @@ ProgramHeaders: PAddr: 0x3000 Sections: - Section: .text3 +## TODO (grimar): without the following line (i.e. without an empty symbol table), +## llvm-objcopy adds an empty .strtab section. It doesn't look correct. +Symbols: [] #CHECK: SectionHeaderCount: 4 diff --git a/llvm/test/tools/llvm-objcopy/ELF/segment-test-remove-section.test b/llvm/test/tools/llvm-objcopy/ELF/segment-test-remove-section.test index 60cd5f3483d..ca83e58f53a 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/segment-test-remove-section.test +++ b/llvm/test/tools/llvm-objcopy/ELF/segment-test-remove-section.test @@ -42,6 +42,9 @@ ProgramHeaders: - Section: .text - Section: .text2 - Section: .text3 +## TODO (grimar): without the following line (i.e. without an empty symbol table), +## llvm-objcopy adds an empty .strtab section. It doesn't look correct. +Symbols: [] # Make sure that when we remove a section we overwrite it with zeros # DATA: {{^[^[:blank:]]+}} 00 00 00 00 diff --git a/llvm/test/tools/llvm-objcopy/ELF/shstrtab-optimize.test b/llvm/test/tools/llvm-objcopy/ELF/shstrtab-optimize.test index 24b546cbaf5..8b1da2141aa 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/shstrtab-optimize.test +++ b/llvm/test/tools/llvm-objcopy/ELF/shstrtab-optimize.test @@ -11,7 +11,7 @@ # CHECK-NEXT: ] # CHECK-NEXT: Address: # CHECK-NEXT: Offset: -# CHECK-NEXT: Size: 36 +# CHECK-NEXT: Size: 28 !ELF FileHeader: diff --git a/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded-remove-debug-keep-link.test b/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded-remove-debug-keep-link.test index b6a72f965bd..948bfea2d9c 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded-remove-debug-keep-link.test +++ b/llvm/test/tools/llvm-objcopy/ELF/strip-unneeded-remove-debug-keep-link.test @@ -20,11 +20,10 @@ Sections: - Name: .debugfoo Type: SHT_PROGBITS -# CHECK: There are 6 section headers +# CHECK: There are 5 section headers # CHECK: [ 0] # CHECK-NEXT: [ 1] .text -# CHECK-NEXT: [ 2] .symtab -# CHECK-NEXT: [ 3] .strtab -# CHECK-NEXT: [ 4] .shstrtab -# CHECK-NEXT: [ 5] .gnu_debuglink +# CHECK-NEXT: [ 2] .strtab +# CHECK-NEXT: [ 3] .shstrtab +# CHECK-NEXT: [ 4] .gnu_debuglink diff --git a/llvm/test/tools/llvm-objcopy/ELF/symtab-error-on-remove-strtab.test b/llvm/test/tools/llvm-objcopy/ELF/symtab-error-on-remove-strtab.test index 7c9a46062d9..4aac930e469 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/symtab-error-on-remove-strtab.test +++ b/llvm/test/tools/llvm-objcopy/ELF/symtab-error-on-remove-strtab.test @@ -9,6 +9,7 @@ FileHeader: Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 +Symbols: [] # ERR1: error: '[[INPUT]]': string table '.strtab' cannot be removed because it is referenced by the symbol table '.symtab' # ERR2: error: '[[INPUT]]': string table '.strtab' cannot be removed because it is referenced by the symbol table '.symtab' diff --git a/llvm/test/tools/llvm-objcopy/ELF/symtab-link.test b/llvm/test/tools/llvm-objcopy/ELF/symtab-link.test index 68b8f78dde9..8297529cb65 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/symtab-link.test +++ b/llvm/test/tools/llvm-objcopy/ELF/symtab-link.test @@ -16,6 +16,7 @@ Sections: Link: .symtab Type: SHT_PROGBITS Flags: [ ] +Symbols: [] # CHECK: Name: .foo # CHECK-NEXT: Type: diff --git a/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test b/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test index 05642896727..685ba160704 100644 --- a/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test +++ b/llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test @@ -57,6 +57,7 @@ Sections: Type: SHT_PROGBITS - Name: .bar Type: SHT_PROGBITS +Symbols: [] ## Use a separate test file with special characters for the following tests. @@ -128,6 +129,7 @@ Sections: Type: SHT_PROGBITS - Name: .foo Type: SHT_PROGBITS +Symbols: [] # WARN: warning: invalid glob pattern: ][] |