summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorJake Ehrlich <jakehehrlich@google.com>2017-11-27 18:56:01 +0000
committerJake Ehrlich <jakehehrlich@google.com>2017-11-27 18:56:01 +0000
commit6ad72d05f5ebaada700487d3d0fe1d107b32468a (patch)
tree53ba408ecc84581a656a305742eebfdf9b1bb44e /llvm/test
parent96c6985b5327845be772c2bc13567c2967969cc7 (diff)
downloadbcm5719-llvm-6ad72d05f5ebaada700487d3d0fe1d107b32468a.tar.gz
bcm5719-llvm-6ad72d05f5ebaada700487d3d0fe1d107b32468a.zip
[llvm-objcopy] Add --strip-all-gnu and change --strip-all
GNU's --strip-all doesn't strip as aggressively as it could in general. Currently llvm-objcopy copies the exact behavoir of GNU's --strip-all. eu-strip is used as a drop in replacement for GNU strip/objcopy in many many places without issue. eu-strip removes non-allocated sections and keeps .gnu.warning* sections. Because --strip-all will likely be the most widely used stripping option we should make --strip-all as aggressive as it can safely be. Since we have evidence from eu-strip that this is a safe option we should allow it. For those that might still have an issue afterwards I've added --strip-all-gnu as an exact drop in replacement for GNU's --strip-all as well. llvm-svn: 319071
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/tools/llvm-objcopy/strip-all-gnu.test54
-rw-r--r--llvm/test/tools/llvm-objcopy/strip-all.test43
2 files changed, 63 insertions, 34 deletions
diff --git a/llvm/test/tools/llvm-objcopy/strip-all-gnu.test b/llvm/test/tools/llvm-objcopy/strip-all-gnu.test
new file mode 100644
index 00000000000..48d34e8f064
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/strip-all-gnu.test
@@ -0,0 +1,54 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-objcopy --strip-all-gnu %t %t2
+# RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .dynstr
+ Type: SHT_STRTAB
+ Flags: [ SHF_ALLOC ]
+ - Name: .symtab.dyn
+ Type: SHT_SYMTAB
+ Flags: [ SHF_ALLOC ]
+ Type: SHT_NOBITS
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ Size: 4
+ - Name: .debug_info
+ Type: SHT_PROGBITS
+ Flags: [ ]
+ AddressAlign: 0x1
+ Size: 4
+ - Name: .debug_loc
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ AddressAlign: 0x1
+ Size: 4
+ - Name: .comment
+ Type: SHT_PROGBITS
+ - Name: .random_section_name
+ Type: SHT_PROGBITS
+ - Name: .debug_not_a_real_debug_section
+ Type: SHT_PROGBITS
+ - Name: .rel.text
+ Type: SHT_REL
+ Info: .text
+ - Name: .rela.text
+ Type: SHT_RELA
+ Info: .text
+
+# CHECK: SectionHeaderCount: 8
+
+# CHECK: Name: .dynstr
+# CHECK: Name: .symtab.dyn
+# CHECK: Name: .text
+# CHECK: Name: .debug_loc
+# CHECK: Name: .comment
+# CHECK: Name: .random_section_name
+# CHECK: Name: .shstrtab
diff --git a/llvm/test/tools/llvm-objcopy/strip-all.test b/llvm/test/tools/llvm-objcopy/strip-all.test
index fc0ae034299..3e6d0d0222f 100644
--- a/llvm/test/tools/llvm-objcopy/strip-all.test
+++ b/llvm/test/tools/llvm-objcopy/strip-all.test
@@ -9,46 +9,21 @@ FileHeader:
Type: ET_REL
Machine: EM_X86_64
Sections:
- - Name: .dynstr
- Type: SHT_STRTAB
- Flags: [ SHF_ALLOC ]
- - Name: .symtab.dyn
- Type: SHT_SYMTAB
- Flags: [ SHF_ALLOC ]
+ - Name: .bss
Type: SHT_NOBITS
+ Flags: [ SHF_ALLOC ]
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- Size: 4
- - Name: .debug_info
+ - Name: .blarg
Type: SHT_PROGBITS
Flags: [ ]
- AddressAlign: 0x1
- Size: 4
- - Name: .debug_loc
- Type: SHT_PROGBITS
- Flags: [ SHF_ALLOC ]
- AddressAlign: 0x1
- Size: 4
- - Name: .comment
- Type: SHT_PROGBITS
- - Name: .random_section_name
- Type: SHT_PROGBITS
- - Name: .debug_not_a_real_debug_section
+ - Name: .gnu.warning.foo
Type: SHT_PROGBITS
- - Name: .rel.text
- Type: SHT_REL
- Info: .text
- - Name: .rela.text
- Type: SHT_RELA
- Info: .text
-# CHECK: SectionHeaderCount: 8
+# CHECK: SectionHeaderCount: 5
-# CHECK: Name: .dynstr
-# CHECK: Name: .symtab.dyn
-# CHECK: Name: .text
-# CHECK: Name: .debug_loc
-# CHECK: Name: .comment
-# CHECK: Name: .random_section_name
-# CHECK: Name: .shstrtab
+# CHECK: Name: .bss
+# CHECK: Name: .text
+# CHECK: Name: .gnu.warning.foo
+# CHECK: Name: .shstrtab
OpenPOWER on IntegriCloud