[ThinLTO] Add code comment. NFC
[llvm-complete.git] / test / Object / readobj-shared-object.test
blob8401affc090cff7c6e6fe639d8534c767f62e07b
1 # RUN: llvm-readobj --sections --symbols --dyn-syms --needed-libs \
2 # RUN:   %p/Inputs/shared-object-test.elf-i386 | FileCheck %s
4 # RUN: llvm-readobj --sections --symbols --dyn-syms --needed-libs \
5 # RUN:   %p/Inputs/shared-object-test.elf-x86-64 | FileCheck %s
7 # CHECK:   Sections [
8 # CHECK:   Section {
9 # CHECK:     Name:  (0)
10 # CHECK:     Type: SHT_NULL
11 # CHECK:     Flags [ (0x0)
12 # CHECK:     ]
13 # CHECK:   }
14 # CHECK:   Section {
15 # CHECK:     Name: .hash
16 # CHECK:     Type: SHT_HASH
17 # CHECK:     Flags [ (0x2)
18 # CHECK:       SHF_ALLOC
19 # CHECK:     ]
20 # CHECK:   }
21 # CHECK:   Section {
22 # CHECK:     Name: .dynsym
23 # CHECK:     Type: SHT_DYNSYM
24 # CHECK:     Flags [ (0x2)
25 # CHECK:       SHF_ALLOC
26 # CHECK:     ]
27 # CHECK:   }
28 # CHECK:   Section {
29 # CHECK:     Name: .dynstr
30 # CHECK:     Type: SHT_STRTAB
31 # CHECK:     Flags [ (0x2)
32 # CHECK:       SHF_ALLOC
33 # CHECK:     ]
34 # CHECK:   }
35 # CHECK:   Section {
36 # CHECK:     Name: .text
37 # CHECK:     Type: SHT_PROGBITS
38 # CHECK:     Flags [ (0x6)
39 # CHECK:       SHF_ALLOC
40 # CHECK:       SHF_EXECINSTR
41 # CHECK:     ]
42 # CHECK:   }
43 # CHECK:   Section {
44 # CHECK:     Name: .eh_frame
45 # CHECK:     Type: SHT_PROGBITS
46 # CHECK:     Flags [ (0x2)
47 # CHECK:       SHF_ALLOC
48 # CHECK:     ]
49 # CHECK:   }
50 # CHECK:   Section {
51 # CHECK:     Name: .tdata
52 # CHECK:     Type: SHT_PROGBITS
53 # CHECK:     Flags [ (0x403)
54 # CHECK:       SHF_ALLOC
55 # CHECK:       SHF_TLS
56 # CHECK:       SHF_WRITE
57 # CHECK:     ]
58 # CHECK:   }
59 # CHECK:   Section {
60 # CHECK:     Name: .dynamic
61 # CHECK:     Type: SHT_DYNAMIC
62 # CHECK:     Flags [ (0x3)
63 # CHECK:       SHF_ALLOC
64 # CHECK:       SHF_WRITE
65 # CHECK:     ]
66 # CHECK:   }
67 # CHECK:   Section {
68 # CHECK:     Name: .got.plt
69 # CHECK:     Type: SHT_PROGBITS
70 # CHECK:     Flags [ (0x3)
71 # CHECK:       SHF_ALLOC
72 # CHECK:       SHF_WRITE
73 # CHECK:     ]
74 # CHECK:   }
75 # CHECK:   Section {
76 # CHECK:     Name: .data
77 # CHECK:     Type: SHT_PROGBITS
78 # CHECK:     Flags [ (0x3)
79 # CHECK:       SHF_ALLOC
80 # CHECK:       SHF_WRITE
81 # CHECK:     ]
82 # CHECK:   }
83 # CHECK:   Section {
84 # CHECK:     Name: .bss
85 # CHECK:     Type: SHT_NOBITS
86 # CHECK:     Flags [ (0x3)
87 # CHECK:       SHF_ALLOC
88 # CHECK:       SHF_WRITE
89 # CHECK:     ]
90 # CHECK:   }
91 # CHECK:   Section {
92 # CHECK:     Name: .shstrtab
93 # CHECK:     Type: SHT_STRTAB
94 # CHECK:     Flags [ (0x0)
95 # CHECK:     ]
96 # CHECK:   }
97 # CHECK:   Section {
98 # CHECK:     Name: .symtab
99 # CHECK:     Type: SHT_SYMTAB
100 # CHECK:     Flags [ (0x0)
101 # CHECK:     ]
102 # CHECK:   }
103 # CHECK:   Section {
104 # CHECK:     Name: .strtab
105 # CHECK:     Type: SHT_STRTAB
106 # CHECK:     Flags [ (0x0)
107 # CHECK:     ]
108 # CHECK:   }
109 # CHECK: ]
111 # CHECK:   Symbols [
112 # CHECK:   Symbol {
113 # CHECK:     Name: .hash (0)
114 # CHECK:     Binding: Local
115 # CHECK:     Type: Section
116 # CHECK:     Section: .hash
117 # CHECK:   }
118 # CHECK:   Symbol {
119 # CHECK:     Name: .dynsym (0)
120 # CHECK:     Binding: Local
121 # CHECK:     Type: Section
122 # CHECK:     Section: .dynsym
123 # CHECK:   }
124 # CHECK:   Symbol {
125 # CHECK:     Name: .dynstr (0)
126 # CHECK:     Binding: Local
127 # CHECK:     Type: Section
128 # CHECK:     Section: .dynstr
129 # CHECK:   }
130 # CHECK:   Symbol {
131 # CHECK:     Name: .text (0)
132 # CHECK:     Binding: Local
133 # CHECK:     Type: Section
134 # CHECK:     Section: .text
135 # CHECK:   }
136 # CHECK:   Symbol {
137 # CHECK:     Name: .eh_frame (0)
138 # CHECK:     Binding: Local
139 # CHECK:     Type: Section
140 # CHECK:     Section: .eh_frame
141 # CHECK:   }
142 # CHECK:   Symbol {
143 # CHECK:     Name: .tdata (0)
144 # CHECK:     Binding: Local
145 # CHECK:     Type: Section
146 # CHECK:     Section: .tdata
147 # CHECK:   }
148 # CHECK:   Symbol {
149 # CHECK:     Name: .dynamic (0)
150 # CHECK:     Binding: Local
151 # CHECK:     Type: Section
152 # CHECK:     Section: .dynamic
153 # CHECK:   }
154 # CHECK:   Symbol {
155 # CHECK:     Name: .got.plt (0)
156 # CHECK:     Binding: Local
157 # CHECK:     Type: Section
158 # CHECK:     Section: .got.plt
159 # CHECK:   }
160 # CHECK:   Symbol {
161 # CHECK:     Name: .data (0)
162 # CHECK:     Binding: Local
163 # CHECK:     Type: Section
164 # CHECK:     Section: .data
165 # CHECK:   }
166 # CHECK:   Symbol {
167 # CHECK:     Name: .bss (0)
168 # CHECK:     Binding: Local
169 # CHECK:     Type: Section
170 # CHECK:     Section: .bss
171 # CHECK:   }
172 # CHECK:   Symbol {
173 # CHECK:     Name: shared.ll
174 # CHECK:     Binding: Local
175 # CHECK:     Type: File
176 # CHECK:     Section: Absolute (0xFFF1)
177 # CHECK:   }
178 # CHECK:   Symbol {
179 # CHECK:     Name: local_func
180 # CHECK:     Binding: Local
181 # CHECK:     Type: Function
182 # CHECK:     Section: .text
183 # CHECK:   }
184 # CHECK:   Symbol {
185 # CHECK:     Name: _GLOBAL_OFFSET_TABLE_
186 # CHECK:     Binding: Local
187 # CHECK:     Type: Object
188 # CHECK:     Section: Absolute (0xFFF1)
189 # CHECK:   }
190 # CHECK:   Symbol {
191 # CHECK:     Name: _DYNAMIC
192 # CHECK:     Binding: Local
193 # CHECK:     Type: Object
194 # CHECK:     Section: Absolute (0xFFF1)
195 # CHECK:   }
196 # CHECK:   Symbol {
197 # CHECK:     Name: common_sym
198 # CHECK:     Binding: Global
199 # CHECK:     Type: Object
200 # CHECK:     Section: .bss
201 # CHECK:   }
202 # CHECK:   Symbol {
203 # CHECK:     Name: tls_sym
204 # CHECK:     Binding: Global
205 # CHECK:     Type: TLS
206 # CHECK:     Section: .tdata
207 # CHECK:   }
208 # CHECK:   Symbol {
209 # CHECK:     Name: defined_sym
210 # CHECK:     Binding: Global
211 # CHECK:     Type: Object
212 # CHECK:     Section: .data
213 # CHECK:   }
214 # CHECK:   Symbol {
215 # CHECK:     Name: __bss_start
216 # CHECK:     Binding: Global
217 # CHECK:     Type: None
218 # CHECK:     Section: Absolute (0xFFF1)
219 # CHECK:   }
220 # CHECK:   Symbol {
221 # CHECK:     Name: _end
222 # CHECK:     Binding: Global
223 # CHECK:     Type: None
224 # CHECK:     Section: Absolute (0xFFF1)
225 # CHECK:   }
226 # CHECK:   Symbol {
227 # CHECK:     Name: global_func
228 # CHECK:     Binding: Global
229 # CHECK:     Type: Function
230 # CHECK:     Section: .text
231 # CHECK:   }
232 # CHECK:   Symbol {
233 # CHECK:     Name: _edata
234 # CHECK:     Binding: Global
235 # CHECK:     Type: None
236 # CHECK:     Section: Absolute (0xFFF1)
237 # CHECK:   }
238 # CHECK: ]
240 # CHECK: DynamicSymbols [
241 # CHECK:   Symbol {
242 # CHECK:     Name: common_sym
243 # CHECK:     Binding: Global
244 # CHECK:     Type: Object
245 # CHECK:     Section: .bss
246 # CHECK:   }
247 # CHECK:   Symbol {
248 # CHECK:     Name: tls_sym
249 # CHECK:     Binding: Global
250 # CHECK:     Type: TLS
251 # CHECK:     Section: .tdata
252 # CHECK:   }
253 # CHECK:   Symbol {
254 # CHECK:     Name: defined_sym
255 # CHECK:     Binding: Global
256 # CHECK:     Type: Object
257 # CHECK:     Section: .data
258 # CHECK:   }
259 # CHECK:   Symbol {
260 # CHECK:     Name: __bss_start
261 # CHECK:     Binding: Global
262 # CHECK:     Type: None
263 # CHECK:     Section: Absolute (0xFFF1)
264 # CHECK:   }
265 # CHECK:   Symbol {
266 # CHECK:     Name: _end
267 # CHECK:     Binding: Global
268 # CHECK:     Type: None
269 # CHECK:     Section: Absolute (0xFFF1)
270 # CHECK:   }
271 # CHECK:   Symbol {
272 # CHECK:     Name: global_func
273 # CHECK:     Binding: Global
274 # CHECK:     Type: Function
275 # CHECK:     Section: .text
276 # CHECK:   }
277 # CHECK:   Symbol {
278 # CHECK:     Name: _edata
279 # CHECK:     Binding: Global
280 # CHECK:     Type: None
281 # CHECK:     Section: Absolute (0xFFF1)
282 # CHECK:   }
283 # CHECK: ]
285 # CHECK:      NeededLibraries [
286 # CHECK-NEXT:  libc.so.6
287 # CHECK-NEXT:  libm.so.6
288 # CHECK-NEXT: ]