|
1 |
| -# RUN: yaml2obj %s > %t |
2 |
| -# RUN: llvm-objdump -p %t | FileCheck %s |
| 1 | +# RUN: yaml2obj --docnum=1 %s -o %t1 |
| 2 | +# RUN: llvm-objdump -p %t1 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF64 |
3 | 3 |
|
4 |
| -# CHECK:Dynamic Section: |
5 |
| -# CHECK-NEXT: NEEDED D |
6 |
| -# CHECK-NEXT: PLTRELSZ 0x0000000000000010 |
7 |
| -# CHECK-NEXT: PLTGOT 0x0000000000001000 |
8 |
| -# CHECK-NEXT: HASH 0x0000000000001000 |
9 |
| -# CHECK-NEXT: STRTAB 0x0000000000001000 |
10 |
| -# CHECK-NEXT: SYMTAB 0x0000000000001000 |
11 |
| -# CHECK-NEXT: RELA 0x0000000000001000 |
12 |
| -# CHECK-NEXT: RELASZ 0x0000000000000010 |
13 |
| -# CHECK-NEXT: RELAENT 0x0000000000000789 |
14 |
| -# CHECK-NEXT: STRSZ 0x0000000000000010 |
15 |
| -# CHECK-NEXT: SYMENT 0x0000000000000987 |
16 |
| -# CHECK-NEXT: INIT 0x0000000000001000 |
17 |
| -# CHECK-NEXT: FINI 0x0000000000001000 |
18 |
| -# CHECK-NEXT: SONAME U |
19 |
| -# CHECK-NEXT: RPATH f |
20 |
| -# CHECK-NEXT: SYMBOLIC 0x1234567890abcdef |
21 |
| -# CHECK-NEXT: REL 0x0000000000001000 |
22 |
| -# CHECK-NEXT: RELSZ 0x0000000000000010 |
23 |
| -# CHECK-NEXT: RELENT 0x0000000000000123 |
24 |
| -# CHECK-NEXT: PLTREL 0x0000000000000007 |
25 |
| -# CHECK-NEXT: DEBUG 0xfedcba0987654321 |
26 |
| -# CHECK-NEXT: TEXTREL 0x1122334455667788 |
27 |
| -# CHECK-NEXT: JMPREL 0x0000000000001000 |
28 |
| -# CHECK-NEXT: BIND_NOW 0x8877665544332211 |
29 |
| -# CHECK-NEXT: INIT_ARRAY 0x0000000000001000 |
30 |
| -# CHECK-NEXT: FINI_ARRAY 0x0000000000001000 |
31 |
| -# CHECK-NEXT: INIT_ARRAYSZ 0x0000000000000010 |
32 |
| -# CHECK-NEXT: FINI_ARRAYSZ 0x0000000000000010 |
33 |
| -# CHECK-NEXT: RUNPATH w |
34 |
| -# CHECK-NEXT: FLAGS 0xaabbccddeeff9900 |
35 |
| -# CHECK-NEXT: PREINIT_ARRAY 0x0000000000001000 |
36 |
| -# CHECK-NEXT: PREINIT_ARRAYSZ 0x0000000000000010 |
37 |
| -# CHECK-NEXT: SYMTAB_SHNDX 0x0000000000001000 |
38 |
| -# CHECK-NEXT: RELRSZ 0x0000000000000010 |
39 |
| -# CHECK-NEXT: RELR 0x0000000000001000 |
40 |
| -# CHECK-NEXT: RELRENT 0x0000000000004321 |
41 |
| -# CHECK-NEXT: ANDROID_REL 0x0000000000001000 |
42 |
| -# CHECK-NEXT: ANDROID_RELSZ 0x0000000000000010 |
43 |
| -# CHECK-NEXT: ANDROID_RELA 0x0000000000001000 |
44 |
| -# CHECK-NEXT: ANDROID_RELASZ 0x0000000000000010 |
45 |
| -# CHECK-NEXT: ANDROID_RELR 0x0000000000001000 |
46 |
| -# CHECK-NEXT: ANDROID_RELRSZ 0x0000000000000010 |
47 |
| -# CHECK-NEXT: ANDROID_RELRENT 0x0000000000001234 |
48 |
| -# CHECK-NEXT: GNU_HASH 0x0000000000001000 |
49 |
| -# CHECK-NEXT: TLSDESC_PLT 0x0000000000001000 |
50 |
| -# CHECK-NEXT: TLSDESC_GOT 0x0000000000001000 |
51 |
| -# CHECK-NEXT: RELACOUNT 0x0000000000000000 |
52 |
| -# CHECK-NEXT: RELCOUNT 0x0000000000000000 |
53 |
| -# CHECK-NEXT: FLAGS_1 0x0000000087654321 |
54 |
| -# CHECK-NEXT: VERSYM 0x0000000000001000 |
55 |
| -# CHECK-NEXT: VERDEF 0x0000000000001000 |
56 |
| -# CHECK-NEXT: VERDEFNUM 0x0000000000000000 |
57 |
| -# CHECK-NEXT: VERNEED 0x0000000000001000 |
58 |
| -# CHECK-NEXT: VERNEEDNUM 0x0000000000000000 |
59 |
| -# CHECK-NEXT: AUXILIARY D |
60 |
| -# CHECK-NEXT: FILTER U |
61 |
| -# CHECK-NEXT: <unknown:>0x1234abcd 0x0000000000000001 |
| 4 | +# ELF64:Dynamic Section: |
| 5 | +# ELF64-NEXT: NEEDED D |
| 6 | +# ELF64-NEXT: PLTRELSZ 0x0000000000000010 |
| 7 | +# ELF64-NEXT: PLTGOT 0x0000000000001000 |
| 8 | +# ELF64-NEXT: HASH 0x0000000000001000 |
| 9 | +# ELF64-NEXT: STRTAB 0x0000000000001000 |
| 10 | +# ELF64-NEXT: SYMTAB 0x0000000000001000 |
| 11 | +# ELF64-NEXT: RELA 0x0000000000001000 |
| 12 | +# ELF64-NEXT: RELASZ 0x0000000000000010 |
| 13 | +# ELF64-NEXT: RELAENT 0x0000000000000789 |
| 14 | +# ELF64-NEXT: STRSZ 0x0000000000000010 |
| 15 | +# ELF64-NEXT: SYMENT 0x0000000000000987 |
| 16 | +# ELF64-NEXT: INIT 0x0000000000001000 |
| 17 | +# ELF64-NEXT: FINI 0x0000000000001000 |
| 18 | +# ELF64-NEXT: SONAME U |
| 19 | +# ELF64-NEXT: RPATH f |
| 20 | +# ELF64-NEXT: SYMBOLIC 0x1234567890abcdef |
| 21 | +# ELF64-NEXT: REL 0x0000000000001000 |
| 22 | +# ELF64-NEXT: RELSZ 0x0000000000000010 |
| 23 | +# ELF64-NEXT: RELENT 0x0000000000000123 |
| 24 | +# ELF64-NEXT: PLTREL 0x0000000000000007 |
| 25 | +# ELF64-NEXT: DEBUG 0xfedcba0987654321 |
| 26 | +# ELF64-NEXT: TEXTREL 0x1122334455667788 |
| 27 | +# ELF64-NEXT: JMPREL 0x0000000000001000 |
| 28 | +# ELF64-NEXT: BIND_NOW 0x8877665544332211 |
| 29 | +# ELF64-NEXT: INIT_ARRAY 0x0000000000001000 |
| 30 | +# ELF64-NEXT: FINI_ARRAY 0x0000000000001000 |
| 31 | +# ELF64-NEXT: INIT_ARRAYSZ 0x0000000000000010 |
| 32 | +# ELF64-NEXT: FINI_ARRAYSZ 0x0000000000000010 |
| 33 | +# ELF64-NEXT: RUNPATH w |
| 34 | +# ELF64-NEXT: FLAGS 0xaabbccddeeff9900 |
| 35 | +# ELF64-NEXT: PREINIT_ARRAY 0x0000000000001000 |
| 36 | +# ELF64-NEXT: PREINIT_ARRAYSZ 0x0000000000000010 |
| 37 | +# ELF64-NEXT: SYMTAB_SHNDX 0x0000000000001000 |
| 38 | +# ELF64-NEXT: RELRSZ 0x0000000000000010 |
| 39 | +# ELF64-NEXT: RELR 0x0000000000001000 |
| 40 | +# ELF64-NEXT: RELRENT 0x0000000000004321 |
| 41 | +# ELF64-NEXT: ANDROID_REL 0x0000000000001000 |
| 42 | +# ELF64-NEXT: ANDROID_RELSZ 0x0000000000000010 |
| 43 | +# ELF64-NEXT: ANDROID_RELA 0x0000000000001000 |
| 44 | +# ELF64-NEXT: ANDROID_RELASZ 0x0000000000000010 |
| 45 | +# ELF64-NEXT: ANDROID_RELR 0x0000000000001000 |
| 46 | +# ELF64-NEXT: ANDROID_RELRSZ 0x0000000000000010 |
| 47 | +# ELF64-NEXT: ANDROID_RELRENT 0x0000000000001234 |
| 48 | +# ELF64-NEXT: GNU_HASH 0x0000000000001000 |
| 49 | +# ELF64-NEXT: TLSDESC_PLT 0x0000000000001000 |
| 50 | +# ELF64-NEXT: TLSDESC_GOT 0x0000000000001000 |
| 51 | +# ELF64-NEXT: RELACOUNT 0x0000000000000000 |
| 52 | +# ELF64-NEXT: RELCOUNT 0x0000000000000000 |
| 53 | +# ELF64-NEXT: FLAGS_1 0x0000000087654321 |
| 54 | +# ELF64-NEXT: VERSYM 0x0000000000001000 |
| 55 | +# ELF64-NEXT: VERDEF 0x0000000000001000 |
| 56 | +# ELF64-NEXT: VERDEFNUM 0x0000000000000000 |
| 57 | +# ELF64-NEXT: VERNEED 0x0000000000001000 |
| 58 | +# ELF64-NEXT: VERNEEDNUM 0x0000000000000000 |
| 59 | +# ELF64-NEXT: AUXILIARY D |
| 60 | +# ELF64-NEXT: FILTER U |
| 61 | +# ELF64-NEXT: <unknown:>0x12345678 0x8765432187654321 |
| 62 | +# ELF64-NEXT: <unknown:>0x6abcdef0 0x9988776655443322 |
| 63 | +# ELF64-NEXT: <unknown:>0x76543210 0x5555666677778888 |
| 64 | +# ELF64-NOT:{{.}} |
62 | 65 |
|
63 | 66 | --- !ELF
|
64 | 67 | FileHeader:
|
@@ -189,8 +192,232 @@ Sections:
|
189 | 192 | Value: 0x1
|
190 | 193 | - Tag: DT_FILTER
|
191 | 194 | Value: 0x3
|
192 |
| - - Tag: 0x1234abcd |
| 195 | +## Show behaviour for unknown values in special and unmarked ranges. |
| 196 | +## An arbitrary unknown value outside of the special ranges. |
| 197 | + - Tag: 0x12345678 |
| 198 | + Value: 0x8765432187654321 |
| 199 | +## An OS specific tag. |
| 200 | + - Tag: 0x6abcdef0 |
| 201 | + Value: 0x9988776655443322 |
| 202 | +## A processor specific tags. |
| 203 | + - Tag: 0x76543210 |
| 204 | + Value: 0x5555666677778888 |
| 205 | + - Tag: DT_NULL |
| 206 | + Value: 0x0 |
| 207 | +ProgramHeaders: |
| 208 | + - Type: PT_LOAD |
| 209 | + VAddr: 0x1000 |
| 210 | + Sections: |
| 211 | + - Section: .dynstr |
| 212 | + - Section: .dynamic |
| 213 | + - Type: PT_DYNAMIC |
| 214 | + VAddr: 0x1010 |
| 215 | + Sections: |
| 216 | + - Section: .dynamic |
| 217 | + |
| 218 | +# RUN: yaml2obj --docnum=2 %s > %t2 |
| 219 | +# RUN: llvm-objdump -p %t2 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF32 |
| 220 | + |
| 221 | +# ELF32:Dynamic Section: |
| 222 | +# ELF32-NEXT: NEEDED D |
| 223 | +# ELF32-NEXT: PLTRELSZ 0x00000010 |
| 224 | +# ELF32-NEXT: PLTGOT 0x00001000 |
| 225 | +# ELF32-NEXT: HASH 0x00001000 |
| 226 | +# ELF32-NEXT: STRTAB 0x00001000 |
| 227 | +# ELF32-NEXT: SYMTAB 0x00001000 |
| 228 | +# ELF32-NEXT: RELA 0x00001000 |
| 229 | +# ELF32-NEXT: RELASZ 0x00000010 |
| 230 | +# ELF32-NEXT: RELAENT 0x00000789 |
| 231 | +# ELF32-NEXT: STRSZ 0x00000010 |
| 232 | +# ELF32-NEXT: SYMENT 0x00000987 |
| 233 | +# ELF32-NEXT: INIT 0x00001000 |
| 234 | +# ELF32-NEXT: FINI 0x00001000 |
| 235 | +# ELF32-NEXT: SONAME U |
| 236 | +# ELF32-NEXT: RPATH f |
| 237 | +# ELF32-NEXT: SYMBOLIC 0x12345678 |
| 238 | +# ELF32-NEXT: REL 0x00001000 |
| 239 | +# ELF32-NEXT: RELSZ 0x00000010 |
| 240 | +# ELF32-NEXT: RELENT 0x00000123 |
| 241 | +# ELF32-NEXT: PLTREL 0x00000007 |
| 242 | +# ELF32-NEXT: DEBUG 0xfedcba09 |
| 243 | +# ELF32-NEXT: TEXTREL 0x11223344 |
| 244 | +# ELF32-NEXT: JMPREL 0x00001000 |
| 245 | +# ELF32-NEXT: BIND_NOW 0x88776655 |
| 246 | +# ELF32-NEXT: INIT_ARRAY 0x00001000 |
| 247 | +# ELF32-NEXT: FINI_ARRAY 0x00001000 |
| 248 | +# ELF32-NEXT: INIT_ARRAYSZ 0x00000010 |
| 249 | +# ELF32-NEXT: FINI_ARRAYSZ 0x00000010 |
| 250 | +# ELF32-NEXT: RUNPATH w |
| 251 | +# ELF32-NEXT: FLAGS 0xaabbccdd |
| 252 | +# ELF32-NEXT: PREINIT_ARRAY 0x00001000 |
| 253 | +# ELF32-NEXT: PREINIT_ARRAYSZ 0x00000010 |
| 254 | +# ELF32-NEXT: SYMTAB_SHNDX 0x00001000 |
| 255 | +# ELF32-NEXT: RELRSZ 0x00000010 |
| 256 | +# ELF32-NEXT: RELR 0x00001000 |
| 257 | +# ELF32-NEXT: RELRENT 0x00004321 |
| 258 | +# ELF32-NEXT: ANDROID_REL 0x00001000 |
| 259 | +# ELF32-NEXT: ANDROID_RELSZ 0x00000010 |
| 260 | +# ELF32-NEXT: ANDROID_RELA 0x00001000 |
| 261 | +# ELF32-NEXT: ANDROID_RELASZ 0x00000010 |
| 262 | +# ELF32-NEXT: ANDROID_RELR 0x00001000 |
| 263 | +# ELF32-NEXT: ANDROID_RELRSZ 0x00000010 |
| 264 | +# ELF32-NEXT: ANDROID_RELRENT 0x00001234 |
| 265 | +# ELF32-NEXT: GNU_HASH 0x00001000 |
| 266 | +# ELF32-NEXT: TLSDESC_PLT 0x00001000 |
| 267 | +# ELF32-NEXT: TLSDESC_GOT 0x00001000 |
| 268 | +# ELF32-NEXT: RELACOUNT 0x00000000 |
| 269 | +# ELF32-NEXT: RELCOUNT 0x00000000 |
| 270 | +# ELF32-NEXT: FLAGS_1 0x87654321 |
| 271 | +# ELF32-NEXT: VERSYM 0x00001000 |
| 272 | +# ELF32-NEXT: VERDEF 0x00001000 |
| 273 | +# ELF32-NEXT: VERDEFNUM 0x00000000 |
| 274 | +# ELF32-NEXT: VERNEED 0x00001000 |
| 275 | +# ELF32-NEXT: VERNEEDNUM 0x00000000 |
| 276 | +# ELF32-NEXT: AUXILIARY D |
| 277 | +# ELF32-NEXT: FILTER U |
| 278 | +# ELF32-NEXT: <unknown:>0x12345678 0x87654321 |
| 279 | +# ELF32-NEXT: <unknown:>0x6abcdef0 0x99887766 |
| 280 | +# ELF32-NEXT: <unknown:>0x76543210 0x55556666 |
| 281 | + |
| 282 | +--- !ELF |
| 283 | +FileHeader: |
| 284 | + Class: ELFCLASS32 |
| 285 | + Data: ELFDATA2LSB |
| 286 | + Type: ET_EXEC |
| 287 | + Machine: EM_386 |
| 288 | +Sections: |
| 289 | + - Name: .dynstr |
| 290 | + Type: SHT_STRTAB |
| 291 | + Address: 0x1000 |
| 292 | + Size: 0x10 |
| 293 | + Content: "004400550066007700" |
| 294 | + - Name: .dynamic |
| 295 | + Type: SHT_DYNAMIC |
| 296 | + Address: 0x1010 |
| 297 | + Link: 1 |
| 298 | + Entries: |
| 299 | + - Tag: DT_NEEDED |
193 | 300 | Value: 0x1
|
| 301 | + - Tag: DT_PLTRELSZ |
| 302 | + Value: 0x10 |
| 303 | + - Tag: DT_PLTGOT |
| 304 | + Value: 0x1000 |
| 305 | + - Tag: DT_HASH |
| 306 | + Value: 0x1000 |
| 307 | + - Tag: DT_STRTAB |
| 308 | + Value: 0x1000 |
| 309 | + - Tag: DT_SYMTAB |
| 310 | + Value: 0x1000 |
| 311 | + - Tag: DT_RELA |
| 312 | + Value: 0x1000 |
| 313 | + - Tag: DT_RELASZ |
| 314 | + Value: 0x10 |
| 315 | + - Tag: DT_RELAENT |
| 316 | + Value: 0x789 |
| 317 | + - Tag: DT_STRSZ |
| 318 | + Value: 0x10 |
| 319 | + - Tag: DT_SYMENT |
| 320 | + Value: 0x987 |
| 321 | + - Tag: DT_INIT |
| 322 | + Value: 0x1000 |
| 323 | + - Tag: DT_FINI |
| 324 | + Value: 0x1000 |
| 325 | + - Tag: DT_SONAME |
| 326 | + Value: 0x3 |
| 327 | + - Tag: DT_RPATH |
| 328 | + Value: 0x5 |
| 329 | + - Tag: DT_SYMBOLIC |
| 330 | + Value: 0x12345678 |
| 331 | + - Tag: DT_REL |
| 332 | + Value: 0x1000 |
| 333 | + - Tag: DT_RELSZ |
| 334 | + Value: 0x10 |
| 335 | + - Tag: DT_RELENT |
| 336 | + Value: 0x123 |
| 337 | + - Tag: DT_PLTREL |
| 338 | + Value: 0x7 |
| 339 | + - Tag: DT_DEBUG |
| 340 | + Value: 0xfedcba09 |
| 341 | + - Tag: DT_TEXTREL |
| 342 | + Value: 0x11223344 |
| 343 | + - Tag: DT_JMPREL |
| 344 | + Value: 0x1000 |
| 345 | + - Tag: DT_BIND_NOW |
| 346 | + Value: 0x88776655 |
| 347 | + - Tag: DT_INIT_ARRAY |
| 348 | + Value: 0x1000 |
| 349 | + - Tag: DT_FINI_ARRAY |
| 350 | + Value: 0x1000 |
| 351 | + - Tag: DT_INIT_ARRAYSZ |
| 352 | + Value: 0x10 |
| 353 | + - Tag: DT_FINI_ARRAYSZ |
| 354 | + Value: 0x10 |
| 355 | + - Tag: DT_RUNPATH |
| 356 | + Value: 0x7 |
| 357 | + - Tag: DT_FLAGS |
| 358 | + Value: 0xaabbccdd |
| 359 | + - Tag: DT_PREINIT_ARRAY |
| 360 | + Value: 0x1000 |
| 361 | + - Tag: DT_PREINIT_ARRAYSZ |
| 362 | + Value: 0x10 |
| 363 | + - Tag: DT_SYMTAB_SHNDX |
| 364 | + Value: 0x1000 |
| 365 | + - Tag: DT_RELRSZ |
| 366 | + Value: 0x10 |
| 367 | + - Tag: DT_RELR |
| 368 | + Value: 0x1000 |
| 369 | + - Tag: DT_RELRENT |
| 370 | + Value: 0x4321 |
| 371 | + - Tag: DT_ANDROID_REL |
| 372 | + Value: 0x1000 |
| 373 | + - Tag: DT_ANDROID_RELSZ |
| 374 | + Value: 0x10 |
| 375 | + - Tag: DT_ANDROID_RELA |
| 376 | + Value: 0x1000 |
| 377 | + - Tag: DT_ANDROID_RELASZ |
| 378 | + Value: 0x10 |
| 379 | + - Tag: DT_ANDROID_RELR |
| 380 | + Value: 0x1000 |
| 381 | + - Tag: DT_ANDROID_RELRSZ |
| 382 | + Value: 0x10 |
| 383 | + - Tag: DT_ANDROID_RELRENT |
| 384 | + Value: 0x1234 |
| 385 | + - Tag: DT_GNU_HASH |
| 386 | + Value: 0x1000 |
| 387 | + - Tag: DT_TLSDESC_PLT |
| 388 | + Value: 0x1000 |
| 389 | + - Tag: DT_TLSDESC_GOT |
| 390 | + Value: 0x1000 |
| 391 | + - Tag: DT_RELACOUNT |
| 392 | + Value: 0x0 |
| 393 | + - Tag: DT_RELCOUNT |
| 394 | + Value: 0x0 |
| 395 | + - Tag: DT_FLAGS_1 |
| 396 | + Value: 0x87654321 |
| 397 | + - Tag: DT_VERSYM |
| 398 | + Value: 0x1000 |
| 399 | + - Tag: DT_VERDEF |
| 400 | + Value: 0x1000 |
| 401 | + - Tag: DT_VERDEFNUM |
| 402 | + Value: 0x0 |
| 403 | + - Tag: DT_VERNEED |
| 404 | + Value: 0x1000 |
| 405 | + - Tag: DT_VERNEEDNUM |
| 406 | + Value: 0x0 |
| 407 | + - Tag: DT_AUXILIARY |
| 408 | + Value: 0x1 |
| 409 | + - Tag: DT_FILTER |
| 410 | + Value: 0x3 |
| 411 | +## Show behaviour for unknown values in special and unmarked ranges. |
| 412 | +## An arbitrary unknown value outside of the special ranges. |
| 413 | + - Tag: 0x12345678 |
| 414 | + Value: 0x87654321 |
| 415 | +## An OS specific tag. |
| 416 | + - Tag: 0x6abcdef0 |
| 417 | + Value: 0x99887766 |
| 418 | +## A processor specific tags. |
| 419 | + - Tag: 0x76543210 |
| 420 | + Value: 0x55556666 |
194 | 421 | - Tag: DT_NULL
|
195 | 422 | Value: 0x0
|
196 | 423 | ProgramHeaders:
|
|
0 commit comments