summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-objcopy
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-10-20 14:47:17 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-10-20 14:47:17 +0000
commit2779987d0e2985a9618bd87b5f6532722645a5f2 (patch)
treef87c607c6feb2afaee621a46e01463a06eaada72 /llvm/test/tools/llvm-objcopy
parentc4107383e509b459943ca4c529e90d25a2f6bdaa (diff)
downloadbcm5719-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')
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/add-section-remove.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/add-section.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/add-symbol.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/basic-only-section.test4
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/explicit-keep-remove.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/explicit-only-section-remove.test4
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/invalid-e_shoff.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/keep-only-section.test8
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/no-strip-all.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/no-symbol-relocation.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/null-symbol.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/only-section-many.test4
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/preserve-segment-contents-ehdr-phdrs.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/remove-section.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/rename-section-multiple.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/rename-section.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/segment-shift-section-remove.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/segment-test-remove-section.test3
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/shstrtab-optimize.test2
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/strip-unneeded-remove-debug-keep-link.test9
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/symtab-error-on-remove-strtab.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/symtab-link.test1
-rw-r--r--llvm/test/tools/llvm-objcopy/ELF/wildcard-syntax.test2
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: ][]
OpenPOWER on IntegriCloud