blob: 8c0f7489134b621c4b40b852104b7ba3b9f3997a [file] [log] [blame]
Jake Ehrlichfabddf12017-11-13 22:02:07 +00001# RUN: yaml2obj %s > %t
Alexander Shaposhnikovecc84832018-05-31 20:42:13 +00002# RUN: cp %t %t3
Jake Ehrlichfabddf12017-11-13 22:02:07 +00003# RUN: llvm-objcopy --strip-all %t %t2
4# RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s
5
Alexander Shaposhnikovecc84832018-05-31 20:42:13 +00006# Verify that the previous llvm-objcopy's run has not modified the input.
7# RUN: cmp %t %t3
Alexander Shaposhnikovcca69982018-05-07 19:32:09 +00008
Alexander Shaposhnikovcca69982018-05-07 19:32:09 +00009# RUN: llvm-strip %t3
Alexander Shaposhnikovcca69982018-05-07 19:32:09 +000010# RUN: cmp %t2 %t3
11
Alexander Shaposhnikovecc84832018-05-31 20:42:13 +000012# RUN: cp %t %t4
13# RUN: llvm-strip %t4 -o %t5
14# RUN: cmp %t2 %t5
15
16# Verify that the previous llvm-strip's run has not modified the input.
17# RUN: cmp %t %t4
18
19# RUN: cp %t %t-should-remain-the-same
20# RUN: llvm-strip %t4 -o %t-should-remain-the-same -o %t-should-be-stripped
21# RUN: cmp %t2 %t-should-be-stripped
22# RUN: cmp %t %t-should-remain-the-same
23
Alexander Shaposhnikov42b5ef02018-07-06 17:51:03 +000024# RUN: rm -f %t.a
25# RUN: llvm-ar crs %t.a %t
26# RUN: llvm-objcopy --strip-all %t.a %t.a
27# RUN: llvm-ar p %t.a > %t6
28# RUN: cmp %t2 %t6
29
Stephen Hinese8c3c5f2018-07-12 17:42:17 +000030# RUN: cp %t %t7
31# RUN: llvm-strip -strip-all %t7
32# RUN: cmp %t2 %t7
33
34# RUN: cp %t %t8
35# RUN: llvm-strip --strip-all %t8
36# RUN: cmp %t2 %t8
37
Jake Ehrlich5e498462018-10-09 21:14:09 +000038# RUN: cp %t %t9
39# RUN: llvm-objcopy -S %t9 %t9
40# RUN: cmp %t2 %t9
41
Stephen Hinese6e75bf2018-07-26 20:05:31 +000042# Verify that a non-existent symbol table (after first call to llvm-strip)
43# can be handled correctly.
44# RUN: cp %t %t9
45# RUN: llvm-strip --strip-all -keep=unavailable_symbol %t9
46# RUN: llvm-strip --strip-all -keep=unavailable_symbol %t9
47# RUN: cmp %t2 %t9
48
Jake Ehrlichfabddf12017-11-13 22:02:07 +000049!ELF
50FileHeader:
51 Class: ELFCLASS64
52 Data: ELFDATA2LSB
53 Type: ET_REL
54 Machine: EM_X86_64
55Sections:
Jake Ehrlich6ad72d02017-11-27 18:56:01 +000056 - Name: .bss
Jake Ehrlichfabddf12017-11-13 22:02:07 +000057 Type: SHT_NOBITS
Jake Ehrlich6ad72d02017-11-27 18:56:01 +000058 Flags: [ SHF_ALLOC ]
Jake Ehrlichfabddf12017-11-13 22:02:07 +000059 - Name: .text
60 Type: SHT_PROGBITS
61 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Jake Ehrlich6ad72d02017-11-27 18:56:01 +000062 - Name: .blarg
Jake Ehrlichfabddf12017-11-13 22:02:07 +000063 Type: SHT_PROGBITS
64 Flags: [ ]
Jake Ehrlich6ad72d02017-11-27 18:56:01 +000065 - Name: .gnu.warning.foo
Jake Ehrlichfabddf12017-11-13 22:02:07 +000066 Type: SHT_PROGBITS
Jake Ehrlichfabddf12017-11-13 22:02:07 +000067
Jake Ehrlich6ad72d02017-11-27 18:56:01 +000068# CHECK: SectionHeaderCount: 5
Jake Ehrlichfabddf12017-11-13 22:02:07 +000069
Jake Ehrlich6ad72d02017-11-27 18:56:01 +000070# CHECK: Name: .bss
71# CHECK: Name: .text
72# CHECK: Name: .gnu.warning.foo
73# CHECK: Name: .shstrtab