1 # RUN: yaml2obj %s > %t
3 # RUN: llvm-objcopy --strip-unneeded %t %t2
4 # Verify that llvm-objcopy has not modified the input.
6 # RUN: llvm-readobj --symbols %t2 | FileCheck %s
8 # RUN: llvm-objcopy --strip-unneeded-symbol=bar \
10 # RUN: llvm-readobj --symbols %t3 | FileCheck %s --check-prefixes=STRIP-BAR,REMAIN
12 # RUN: llvm-objcopy --regex --strip-unneeded-symbol='.*' %t %t4
15 # RUN: echo " bar # bar " > %t.list.txt
16 # RUN: echo "foobar" >> %t.list.txt
17 # RUN: echo "foobaz" >> %t.list.txt
18 # RUN: echo " # comment " >> %t.list.txt
19 # RUN: llvm-objcopy --strip-unneeded-symbols %t.list.txt %t %t5
22 # RUN: echo " .* # * - remove all " > %t.list2.txt
23 # RUN: llvm-objcopy --regex --strip-unneeded-symbols %t.list2.txt %t %t6
26 # Verify that llvm-strip modifies the symbol table the same way.
27 # RUN: llvm-strip --strip-unneeded %t
39 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
41 AddressAlign: 0x0000000000000010
46 AddressAlign: 0x0000000000000004
49 - SectionOrType: GRP_COMDAT
50 - SectionOrType: .text
100 #CHECK-NEXT: Value: 0x0
102 #CHECK-NEXT: Binding: Local
103 #CHECK-NEXT: Type: None
104 #CHECK-NEXT: Other: 0
105 #CHECK-NEXT: Section: Undefined
107 #CHECK-NEXT: Symbol {
108 #CHECK-NEXT: Name: foo
109 #CHECK-NEXT: Value: 0x1000
111 #CHECK-NEXT: Binding: Local
112 #CHECK-NEXT: Type: Function
113 #CHECK-NEXT: Other: 0
114 #CHECK-NEXT: Section: .text
116 #CHECK-NEXT: Symbol {
117 #CHECK-NEXT: Name: barfoo
118 #CHECK-NEXT: Value: 0x1010
120 #CHECK-NEXT: Binding: Local
121 #CHECK-NEXT: Type: Function
122 #CHECK-NEXT: Other: 0
123 #CHECK-NEXT: Section: .text
125 #CHECK-NEXT: Symbol {
126 #CHECK-NEXT: Name: fileSymbol
127 #CHECK-NEXT: Value: 0x0
129 #CHECK-NEXT: Binding: Local
130 #CHECK-NEXT: Type: File
131 #CHECK-NEXT: Other: 0
132 #CHECK-NEXT: Section: Undefined
134 #CHECK-NEXT: Symbol {
135 #CHECK-NEXT: Name: sectionSymbol
136 #CHECK-NEXT: Value: 0x0
138 #CHECK-NEXT: Binding: Local
139 #CHECK-NEXT: Type: Section
140 #CHECK-NEXT: Other: 0
141 #CHECK-NEXT: Section: Undefined
143 #CHECK-NEXT: Symbol {
144 #CHECK-NEXT: Name: barbaz
145 #CHECK-NEXT: Value: 0x1020
147 #CHECK-NEXT: Binding: Global
148 #CHECK-NEXT: Type: Function
149 #CHECK-NEXT: Other: 0
150 #CHECK-NEXT: Section: .text
152 #CHECK-NEXT: Symbol {
153 #CHECK-NEXT: Name: baz
154 #CHECK-NEXT: Value: 0x1018
156 #CHECK-NEXT: Binding: Weak
157 #CHECK-NEXT: Type: Function
158 #CHECK-NEXT: Other: 0
159 #CHECK-NEXT: Section: .text
163 #STRIP-BAR-NOT: Name: bar ({{.*}})
164 #REMAIN: Name: foobar
165 #REMAIN: Name: foobaz