Fix the interpretation of a 0 st_name.
[oota-llvm.git] / test / Object / readobj-shared-object.test
1 RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
2 RUN:              %p/Inputs/shared-object-test.elf-i386 \
3 RUN:         | FileCheck %s -check-prefix ELF
4 RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
5 RUN:              %p/Inputs/shared-object-test.elf-i386 \
6 RUN:         | FileCheck %s -check-prefix ELF32
7
8 RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
9 RUN:            %p/Inputs/shared-object-test.elf-x86-64 \
10 RUN:         | FileCheck %s -check-prefix ELF
11 RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
12 RUN:            %p/Inputs/shared-object-test.elf-x86-64 \
13 RUN:         | FileCheck %s -check-prefix ELF64
14
15 ELF64: Format:      ELF64-x86-64
16 ELF64: Arch:        x86_64
17 ELF64: AddressSize: 64bit
18 ELF64: LoadName:    libfoo.so
19
20 ELF32: Format:      ELF32-i386
21 ELF32: Arch:        i386
22 ELF32: AddressSize: 32bit
23 ELF32: LoadName:    libfoo.so
24
25 ELF: Sections [
26 ELF:   Section {
27 ELF:     Name:  (0)
28 ELF:     Type: SHT_NULL
29 ELF:     Flags [ (0x0)
30 ELF:     ]
31 ELF:   }
32 ELF:   Section {
33 ELF:     Name: .hash
34 ELF:     Type: SHT_HASH
35 ELF:     Flags [ (0x2)
36 ELF:       SHF_ALLOC
37 ELF:     ]
38 ELF:   }
39 ELF:   Section {
40 ELF:     Name: .dynsym
41 ELF:     Type: SHT_DYNSYM
42 ELF:     Flags [ (0x2)
43 ELF:       SHF_ALLOC
44 ELF:     ]
45 ELF:   }
46 ELF:   Section {
47 ELF:     Name: .dynstr
48 ELF:     Type: SHT_STRTAB
49 ELF:     Flags [ (0x2)
50 ELF:       SHF_ALLOC
51 ELF:     ]
52 ELF:   }
53 ELF:   Section {
54 ELF:     Name: .text
55 ELF:     Type: SHT_PROGBITS
56 ELF:     Flags [ (0x6)
57 ELF:       SHF_ALLOC
58 ELF:       SHF_EXECINSTR
59 ELF:     ]
60 ELF:   }
61 ELF:   Section {
62 ELF:     Name: .eh_frame
63 ELF:     Type: SHT_PROGBITS
64 ELF:     Flags [ (0x2)
65 ELF:       SHF_ALLOC
66 ELF:     ]
67 ELF:   }
68 ELF:   Section {
69 ELF:     Name: .tdata
70 ELF:     Type: SHT_PROGBITS
71 ELF:     Flags [ (0x403)
72 ELF:       SHF_ALLOC
73 ELF:       SHF_TLS
74 ELF:       SHF_WRITE
75 ELF:     ]
76 ELF:   }
77 ELF:   Section {
78 ELF:     Name: .dynamic
79 ELF:     Type: SHT_DYNAMIC
80 ELF:     Flags [ (0x3)
81 ELF:       SHF_ALLOC
82 ELF:       SHF_WRITE
83 ELF:     ]
84 ELF:   }
85 ELF:   Section {
86 ELF:     Name: .got.plt
87 ELF:     Type: SHT_PROGBITS
88 ELF:     Flags [ (0x3)
89 ELF:       SHF_ALLOC
90 ELF:       SHF_WRITE
91 ELF:     ]
92 ELF:   }
93 ELF:   Section {
94 ELF:     Name: .data
95 ELF:     Type: SHT_PROGBITS
96 ELF:     Flags [ (0x3)
97 ELF:       SHF_ALLOC
98 ELF:       SHF_WRITE
99 ELF:     ]
100 ELF:   }
101 ELF:   Section {
102 ELF:     Name: .bss
103 ELF:     Type: SHT_NOBITS
104 ELF:     Flags [ (0x3)
105 ELF:       SHF_ALLOC
106 ELF:       SHF_WRITE
107 ELF:     ]
108 ELF:   }
109 ELF:   Section {
110 ELF:     Name: .shstrtab
111 ELF:     Type: SHT_STRTAB
112 ELF:     Flags [ (0x0)
113 ELF:     ]
114 ELF:   }
115 ELF:   Section {
116 ELF:     Name: .symtab
117 ELF:     Type: SHT_SYMTAB
118 ELF:     Flags [ (0x0)
119 ELF:     ]
120 ELF:   }
121 ELF:   Section {
122 ELF:     Name: .strtab
123 ELF:     Type: SHT_STRTAB
124 ELF:     Flags [ (0x0)
125 ELF:     ]
126 ELF:   }
127 ELF: ]
128
129 ELF: Symbols [
130 ELF:   Symbol {
131 ELF:     Name: (0)
132 ELF:     Binding: Local
133 ELF:     Type: Section
134 ELF:     Section: .hash
135 ELF:   }
136 ELF:   Symbol {
137 ELF:     Name: (0)
138 ELF:     Binding: Local
139 ELF:     Type: Section
140 ELF:     Section: .dynsym
141 ELF:   }
142 ELF:   Symbol {
143 ELF:     Name: (0)
144 ELF:     Binding: Local
145 ELF:     Type: Section
146 ELF:     Section: .dynstr
147 ELF:   }
148 ELF:   Symbol {
149 ELF:     Name: (0)
150 ELF:     Binding: Local
151 ELF:     Type: Section
152 ELF:     Section: .text
153 ELF:   }
154 ELF:   Symbol {
155 ELF:     Name: (0)
156 ELF:     Binding: Local
157 ELF:     Type: Section
158 ELF:     Section: .eh_frame
159 ELF:   }
160 ELF:   Symbol {
161 ELF:     Name: (0)
162 ELF:     Binding: Local
163 ELF:     Type: Section
164 ELF:     Section: .tdata
165 ELF:   }
166 ELF:   Symbol {
167 ELF:     Name: (0)
168 ELF:     Binding: Local
169 ELF:     Type: Section
170 ELF:     Section: .dynamic
171 ELF:   }
172 ELF:   Symbol {
173 ELF:     Name: (0)
174 ELF:     Binding: Local
175 ELF:     Type: Section
176 ELF:     Section: .got.plt
177 ELF:   }
178 ELF:   Symbol {
179 ELF:     Name: (0)
180 ELF:     Binding: Local
181 ELF:     Type: Section
182 ELF:     Section: .data
183 ELF:   }
184 ELF:   Symbol {
185 ELF:     Name: (0)
186 ELF:     Binding: Local
187 ELF:     Type: Section
188 ELF:     Section: .bss
189 ELF:   }
190 ELF:   Symbol {
191 ELF:     Name: shared.ll
192 ELF:     Binding: Local
193 ELF:     Type: File
194 ELF:     Section: Absolute (0xFFF1)
195 ELF:   }
196 ELF:   Symbol {
197 ELF:     Name: local_func
198 ELF:     Binding: Local
199 ELF:     Type: Function
200 ELF:     Section: .text
201 ELF:   }
202 ELF:   Symbol {
203 ELF:     Name: _GLOBAL_OFFSET_TABLE_
204 ELF:     Binding: Local
205 ELF:     Type: Object
206 ELF:     Section: Absolute (0xFFF1)
207 ELF:   }
208 ELF:   Symbol {
209 ELF:     Name: _DYNAMIC
210 ELF:     Binding: Local
211 ELF:     Type: Object
212 ELF:     Section: Absolute (0xFFF1)
213 ELF:   }
214 ELF:   Symbol {
215 ELF:     Name: common_sym
216 ELF:     Binding: Global
217 ELF:     Type: Object
218 ELF:     Section: .bss
219 ELF:   }
220 ELF:   Symbol {
221 ELF:     Name: tls_sym
222 ELF:     Binding: Global
223 ELF:     Type: TLS
224 ELF:     Section: .tdata
225 ELF:   }
226 ELF:   Symbol {
227 ELF:     Name: defined_sym
228 ELF:     Binding: Global
229 ELF:     Type: Object
230 ELF:     Section: .data
231 ELF:   }
232 ELF:   Symbol {
233 ELF:     Name: __bss_start
234 ELF:     Binding: Global
235 ELF:     Type: None
236 ELF:     Section: Absolute (0xFFF1)
237 ELF:   }
238 ELF:   Symbol {
239 ELF:     Name: _end
240 ELF:     Binding: Global
241 ELF:     Type: None
242 ELF:     Section: Absolute (0xFFF1)
243 ELF:   }
244 ELF:   Symbol {
245 ELF:     Name: global_func
246 ELF:     Binding: Global
247 ELF:     Type: Function
248 ELF:     Section: .text
249 ELF:   }
250 ELF:   Symbol {
251 ELF:     Name: _edata
252 ELF:     Binding: Global
253 ELF:     Type: None
254 ELF:     Section: Absolute (0xFFF1)
255 ELF:   }
256 ELF: ]
257
258 ELF: DynamicSymbols [
259 ELF:   Symbol {
260 ELF:     Name: common_sym
261 ELF:     Binding: Global
262 ELF:     Type: Object
263 ELF:     Section: .bss
264 ELF:   }
265 ELF:   Symbol {
266 ELF:     Name: tls_sym
267 ELF:     Binding: Global
268 ELF:     Type: TLS
269 ELF:     Section: .tdata
270 ELF:   }
271 ELF:   Symbol {
272 ELF:     Name: defined_sym
273 ELF:     Binding: Global
274 ELF:     Type: Object
275 ELF:     Section: .data
276 ELF:   }
277 ELF:   Symbol {
278 ELF:     Name: __bss_start
279 ELF:     Binding: Global
280 ELF:     Type: None
281 ELF:     Section: Absolute (0xFFF1)
282 ELF:   }
283 ELF:   Symbol {
284 ELF:     Name: _end
285 ELF:     Binding: Global
286 ELF:     Type: None
287 ELF:     Section: Absolute (0xFFF1)
288 ELF:   }
289 ELF:   Symbol {
290 ELF:     Name: global_func
291 ELF:     Binding: Global
292 ELF:     Type: Function
293 ELF:     Section: .text
294 ELF:   }
295 ELF:   Symbol {
296 ELF:     Name: _edata
297 ELF:     Binding: Global
298 ELF:     Type: None
299 ELF:     Section: Absolute (0xFFF1)
300 ELF:   }
301 ELF: ]
302
303 ELF: DynamicSection [ (9 entries)
304 ELF:   Tag        Type                 Name/Value
305 ELF:   00000001 NEEDED               SharedLibrary (libc.so.6)
306 ELF:   00000001 NEEDED               SharedLibrary (libm.so.6)
307 ELF:   0000000E SONAME               LibrarySoname (libfoo.so)
308 ELF:   00000004 HASH                 {{[0-9a-f]+}}
309 ELF:   00000005 STRTAB               {{[0-9a-f]+}}
310 ELF:   00000006 SYMTAB               {{[0-9a-f]+}}
311 ELF:   0000000A STRSZ                {{[0-9]+}} (bytes)
312 ELF:   0000000B SYMENT               {{[0-9]+}} (bytes)
313 ELF:   00000000 NULL                 0x0
314 ELF: ]
315
316 ELF:      NeededLibraries [
317 ELF-NEXT:  libc.so.6
318 ELF-NEXT:  libm.so.6
319 ELF-NEXT: ]