| # RUN: yaml2obj --docnum=1 %s -o %t1 |
| # RUN: llvm-objdump -p %t1 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF64 |
| |
| # ELF64:Dynamic Section: |
| # ELF64-NEXT: NEEDED D |
| # ELF64-NEXT: PLTRELSZ 0x0000000000000010 |
| # ELF64-NEXT: PLTGOT 0x0000000000001000 |
| # ELF64-NEXT: HASH 0x0000000000001000 |
| # ELF64-NEXT: STRTAB 0x0000000000001000 |
| # ELF64-NEXT: SYMTAB 0x0000000000001000 |
| # ELF64-NEXT: RELA 0x0000000000001000 |
| # ELF64-NEXT: RELASZ 0x0000000000000010 |
| # ELF64-NEXT: RELAENT 0x0000000000000789 |
| # ELF64-NEXT: STRSZ 0x0000000000000010 |
| # ELF64-NEXT: SYMENT 0x0000000000000987 |
| # ELF64-NEXT: INIT 0x0000000000001000 |
| # ELF64-NEXT: FINI 0x0000000000001000 |
| # ELF64-NEXT: SONAME U |
| # ELF64-NEXT: RPATH f |
| # ELF64-NEXT: SYMBOLIC 0x1234567890abcdef |
| # ELF64-NEXT: REL 0x0000000000001000 |
| # ELF64-NEXT: RELSZ 0x0000000000000010 |
| # ELF64-NEXT: RELENT 0x0000000000000123 |
| # ELF64-NEXT: PLTREL 0x0000000000000007 |
| # ELF64-NEXT: DEBUG 0xfedcba0987654321 |
| # ELF64-NEXT: TEXTREL 0x1122334455667788 |
| # ELF64-NEXT: JMPREL 0x0000000000001000 |
| # ELF64-NEXT: BIND_NOW 0x8877665544332211 |
| # ELF64-NEXT: INIT_ARRAY 0x0000000000001000 |
| # ELF64-NEXT: FINI_ARRAY 0x0000000000001000 |
| # ELF64-NEXT: INIT_ARRAYSZ 0x0000000000000010 |
| # ELF64-NEXT: FINI_ARRAYSZ 0x0000000000000010 |
| # ELF64-NEXT: RUNPATH w |
| # ELF64-NEXT: FLAGS 0xaabbccddeeff9900 |
| # ELF64-NEXT: PREINIT_ARRAY 0x0000000000001000 |
| # ELF64-NEXT: PREINIT_ARRAYSZ 0x0000000000000010 |
| # ELF64-NEXT: SYMTAB_SHNDX 0x0000000000001000 |
| # ELF64-NEXT: RELRSZ 0x0000000000000010 |
| # ELF64-NEXT: RELR 0x0000000000001000 |
| # ELF64-NEXT: RELRENT 0x0000000000004321 |
| # ELF64-NEXT: ANDROID_REL 0x0000000000001000 |
| # ELF64-NEXT: ANDROID_RELSZ 0x0000000000000010 |
| # ELF64-NEXT: ANDROID_RELA 0x0000000000001000 |
| # ELF64-NEXT: ANDROID_RELASZ 0x0000000000000010 |
| # ELF64-NEXT: ANDROID_RELR 0x0000000000001000 |
| # ELF64-NEXT: ANDROID_RELRSZ 0x0000000000000010 |
| # ELF64-NEXT: ANDROID_RELRENT 0x0000000000001234 |
| # ELF64-NEXT: GNU_HASH 0x0000000000001000 |
| # ELF64-NEXT: TLSDESC_PLT 0x0000000000001000 |
| # ELF64-NEXT: TLSDESC_GOT 0x0000000000001000 |
| # ELF64-NEXT: RELACOUNT 0x0000000000000000 |
| # ELF64-NEXT: RELCOUNT 0x0000000000000000 |
| # ELF64-NEXT: FLAGS_1 0x0000000087654321 |
| # ELF64-NEXT: VERSYM 0x0000000000001000 |
| # ELF64-NEXT: VERDEF 0x0000000000001000 |
| # ELF64-NEXT: VERDEFNUM 0x0000000000000000 |
| # ELF64-NEXT: VERNEED 0x0000000000001000 |
| # ELF64-NEXT: VERNEEDNUM 0x0000000000000000 |
| # ELF64-NEXT: AUXILIARY D |
| # ELF64-NEXT: FILTER U |
| # ELF64-NEXT: <unknown:>0x12345678 0x8765432187654321 |
| # ELF64-NEXT: <unknown:>0x6abcdef0 0x9988776655443322 |
| # ELF64-NEXT: <unknown:>0x76543210 0x5555666677778888 |
| # ELF64-NOT:{{.}} |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Address: 0x1000 |
| Size: 0x10 |
| Content: "004400550066007700" |
| - Name: .dynamic |
| Type: SHT_DYNAMIC |
| Address: 0x1010 |
| Link: 1 |
| Entries: |
| - Tag: DT_NEEDED |
| Value: 0x1 |
| - Tag: DT_PLTRELSZ |
| Value: 0x10 |
| - Tag: DT_PLTGOT |
| Value: 0x1000 |
| - Tag: DT_HASH |
| Value: 0x1000 |
| - Tag: DT_STRTAB |
| Value: 0x1000 |
| - Tag: DT_SYMTAB |
| Value: 0x1000 |
| - Tag: DT_RELA |
| Value: 0x1000 |
| - Tag: DT_RELASZ |
| Value: 0x10 |
| - Tag: DT_RELAENT |
| Value: 0x789 |
| - Tag: DT_STRSZ |
| Value: 0x10 |
| - Tag: DT_SYMENT |
| Value: 0x987 |
| - Tag: DT_INIT |
| Value: 0x1000 |
| - Tag: DT_FINI |
| Value: 0x1000 |
| - Tag: DT_SONAME |
| Value: 0x3 |
| - Tag: DT_RPATH |
| Value: 0x5 |
| - Tag: DT_SYMBOLIC |
| Value: 0x1234567890abcdef |
| - Tag: DT_REL |
| Value: 0x1000 |
| - Tag: DT_RELSZ |
| Value: 0x10 |
| - Tag: DT_RELENT |
| Value: 0x123 |
| - Tag: DT_PLTREL |
| Value: 0x7 |
| - Tag: DT_DEBUG |
| Value: 0xfedcba0987654321 |
| - Tag: DT_TEXTREL |
| Value: 0x1122334455667788 |
| - Tag: DT_JMPREL |
| Value: 0x1000 |
| - Tag: DT_BIND_NOW |
| Value: 0x8877665544332211 |
| - Tag: DT_INIT_ARRAY |
| Value: 0x1000 |
| - Tag: DT_FINI_ARRAY |
| Value: 0x1000 |
| - Tag: DT_INIT_ARRAYSZ |
| Value: 0x10 |
| - Tag: DT_FINI_ARRAYSZ |
| Value: 0x10 |
| - Tag: DT_RUNPATH |
| Value: 0x7 |
| - Tag: DT_FLAGS |
| Value: 0xaabbccddeeff9900 |
| - Tag: DT_PREINIT_ARRAY |
| Value: 0x1000 |
| - Tag: DT_PREINIT_ARRAYSZ |
| Value: 0x10 |
| - Tag: DT_SYMTAB_SHNDX |
| Value: 0x1000 |
| - Tag: DT_RELRSZ |
| Value: 0x10 |
| - Tag: DT_RELR |
| Value: 0x1000 |
| - Tag: DT_RELRENT |
| Value: 0x4321 |
| - Tag: DT_ANDROID_REL |
| Value: 0x1000 |
| - Tag: DT_ANDROID_RELSZ |
| Value: 0x10 |
| - Tag: DT_ANDROID_RELA |
| Value: 0x1000 |
| - Tag: DT_ANDROID_RELASZ |
| Value: 0x10 |
| - Tag: DT_ANDROID_RELR |
| Value: 0x1000 |
| - Tag: DT_ANDROID_RELRSZ |
| Value: 0x10 |
| - Tag: DT_ANDROID_RELRENT |
| Value: 0x1234 |
| - Tag: DT_GNU_HASH |
| Value: 0x1000 |
| - Tag: DT_TLSDESC_PLT |
| Value: 0x1000 |
| - Tag: DT_TLSDESC_GOT |
| Value: 0x1000 |
| - Tag: DT_RELACOUNT |
| Value: 0x0 |
| - Tag: DT_RELCOUNT |
| Value: 0x0 |
| - Tag: DT_FLAGS_1 |
| Value: 0x87654321 |
| - Tag: DT_VERSYM |
| Value: 0x1000 |
| - Tag: DT_VERDEF |
| Value: 0x1000 |
| - Tag: DT_VERDEFNUM |
| Value: 0x0 |
| - Tag: DT_VERNEED |
| Value: 0x1000 |
| - Tag: DT_VERNEEDNUM |
| Value: 0x0 |
| - Tag: DT_AUXILIARY |
| Value: 0x1 |
| - Tag: DT_FILTER |
| Value: 0x3 |
| ## Show behaviour for unknown values in special and unmarked ranges. |
| ## An arbitrary unknown value outside of the special ranges. |
| - Tag: 0x12345678 |
| Value: 0x8765432187654321 |
| ## An OS specific tag. |
| - Tag: 0x6abcdef0 |
| Value: 0x9988776655443322 |
| ## A processor specific tags. |
| - Tag: 0x76543210 |
| Value: 0x5555666677778888 |
| - Tag: DT_NULL |
| Value: 0x0 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| VAddr: 0x1000 |
| Sections: |
| - Section: .dynstr |
| - Section: .dynamic |
| - Type: PT_DYNAMIC |
| VAddr: 0x1010 |
| Sections: |
| - Section: .dynamic |
| |
| # RUN: yaml2obj --docnum=2 %s -o %t2 |
| # RUN: llvm-objdump -p %t2 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF32 |
| |
| # ELF32:Dynamic Section: |
| # ELF32-NEXT: NEEDED D |
| # ELF32-NEXT: PLTRELSZ 0x00000010 |
| # ELF32-NEXT: PLTGOT 0x00001000 |
| # ELF32-NEXT: HASH 0x00001000 |
| # ELF32-NEXT: STRTAB 0x00001000 |
| # ELF32-NEXT: SYMTAB 0x00001000 |
| # ELF32-NEXT: RELA 0x00001000 |
| # ELF32-NEXT: RELASZ 0x00000010 |
| # ELF32-NEXT: RELAENT 0x00000789 |
| # ELF32-NEXT: STRSZ 0x00000010 |
| # ELF32-NEXT: SYMENT 0x00000987 |
| # ELF32-NEXT: INIT 0x00001000 |
| # ELF32-NEXT: FINI 0x00001000 |
| # ELF32-NEXT: SONAME U |
| # ELF32-NEXT: RPATH f |
| # ELF32-NEXT: SYMBOLIC 0x12345678 |
| # ELF32-NEXT: REL 0x00001000 |
| # ELF32-NEXT: RELSZ 0x00000010 |
| # ELF32-NEXT: RELENT 0x00000123 |
| # ELF32-NEXT: PLTREL 0x00000007 |
| # ELF32-NEXT: DEBUG 0xfedcba09 |
| # ELF32-NEXT: TEXTREL 0x11223344 |
| # ELF32-NEXT: JMPREL 0x00001000 |
| # ELF32-NEXT: BIND_NOW 0x88776655 |
| # ELF32-NEXT: INIT_ARRAY 0x00001000 |
| # ELF32-NEXT: FINI_ARRAY 0x00001000 |
| # ELF32-NEXT: INIT_ARRAYSZ 0x00000010 |
| # ELF32-NEXT: FINI_ARRAYSZ 0x00000010 |
| # ELF32-NEXT: RUNPATH w |
| # ELF32-NEXT: FLAGS 0xaabbccdd |
| # ELF32-NEXT: PREINIT_ARRAY 0x00001000 |
| # ELF32-NEXT: PREINIT_ARRAYSZ 0x00000010 |
| # ELF32-NEXT: SYMTAB_SHNDX 0x00001000 |
| # ELF32-NEXT: RELRSZ 0x00000010 |
| # ELF32-NEXT: RELR 0x00001000 |
| # ELF32-NEXT: RELRENT 0x00004321 |
| # ELF32-NEXT: ANDROID_REL 0x00001000 |
| # ELF32-NEXT: ANDROID_RELSZ 0x00000010 |
| # ELF32-NEXT: ANDROID_RELA 0x00001000 |
| # ELF32-NEXT: ANDROID_RELASZ 0x00000010 |
| # ELF32-NEXT: ANDROID_RELR 0x00001000 |
| # ELF32-NEXT: ANDROID_RELRSZ 0x00000010 |
| # ELF32-NEXT: ANDROID_RELRENT 0x00001234 |
| # ELF32-NEXT: GNU_HASH 0x00001000 |
| # ELF32-NEXT: TLSDESC_PLT 0x00001000 |
| # ELF32-NEXT: TLSDESC_GOT 0x00001000 |
| # ELF32-NEXT: RELACOUNT 0x00000000 |
| # ELF32-NEXT: RELCOUNT 0x00000000 |
| # ELF32-NEXT: FLAGS_1 0x87654321 |
| # ELF32-NEXT: VERSYM 0x00001000 |
| # ELF32-NEXT: VERDEF 0x00001000 |
| # ELF32-NEXT: VERDEFNUM 0x00000000 |
| # ELF32-NEXT: VERNEED 0x00001000 |
| # ELF32-NEXT: VERNEEDNUM 0x00000000 |
| # ELF32-NEXT: AUXILIARY D |
| # ELF32-NEXT: FILTER U |
| # ELF32-NEXT: <unknown:>0x12345678 0x87654321 |
| # ELF32-NEXT: <unknown:>0x6abcdef0 0x99887766 |
| # ELF32-NEXT: <unknown:>0x76543210 0x55556666 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_386 |
| Sections: |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Address: 0x1000 |
| Size: 0x10 |
| Content: "004400550066007700" |
| - Name: .dynamic |
| Type: SHT_DYNAMIC |
| Address: 0x1010 |
| Link: 1 |
| Entries: |
| - Tag: DT_NEEDED |
| Value: 0x1 |
| - Tag: DT_PLTRELSZ |
| Value: 0x10 |
| - Tag: DT_PLTGOT |
| Value: 0x1000 |
| - Tag: DT_HASH |
| Value: 0x1000 |
| - Tag: DT_STRTAB |
| Value: 0x1000 |
| - Tag: DT_SYMTAB |
| Value: 0x1000 |
| - Tag: DT_RELA |
| Value: 0x1000 |
| - Tag: DT_RELASZ |
| Value: 0x10 |
| - Tag: DT_RELAENT |
| Value: 0x789 |
| - Tag: DT_STRSZ |
| Value: 0x10 |
| - Tag: DT_SYMENT |
| Value: 0x987 |
| - Tag: DT_INIT |
| Value: 0x1000 |
| - Tag: DT_FINI |
| Value: 0x1000 |
| - Tag: DT_SONAME |
| Value: 0x3 |
| - Tag: DT_RPATH |
| Value: 0x5 |
| - Tag: DT_SYMBOLIC |
| Value: 0x12345678 |
| - Tag: DT_REL |
| Value: 0x1000 |
| - Tag: DT_RELSZ |
| Value: 0x10 |
| - Tag: DT_RELENT |
| Value: 0x123 |
| - Tag: DT_PLTREL |
| Value: 0x7 |
| - Tag: DT_DEBUG |
| Value: 0xfedcba09 |
| - Tag: DT_TEXTREL |
| Value: 0x11223344 |
| - Tag: DT_JMPREL |
| Value: 0x1000 |
| - Tag: DT_BIND_NOW |
| Value: 0x88776655 |
| - Tag: DT_INIT_ARRAY |
| Value: 0x1000 |
| - Tag: DT_FINI_ARRAY |
| Value: 0x1000 |
| - Tag: DT_INIT_ARRAYSZ |
| Value: 0x10 |
| - Tag: DT_FINI_ARRAYSZ |
| Value: 0x10 |
| - Tag: DT_RUNPATH |
| Value: 0x7 |
| - Tag: DT_FLAGS |
| Value: 0xaabbccdd |
| - Tag: DT_PREINIT_ARRAY |
| Value: 0x1000 |
| - Tag: DT_PREINIT_ARRAYSZ |
| Value: 0x10 |
| - Tag: DT_SYMTAB_SHNDX |
| Value: 0x1000 |
| - Tag: DT_RELRSZ |
| Value: 0x10 |
| - Tag: DT_RELR |
| Value: 0x1000 |
| - Tag: DT_RELRENT |
| Value: 0x4321 |
| - Tag: DT_ANDROID_REL |
| Value: 0x1000 |
| - Tag: DT_ANDROID_RELSZ |
| Value: 0x10 |
| - Tag: DT_ANDROID_RELA |
| Value: 0x1000 |
| - Tag: DT_ANDROID_RELASZ |
| Value: 0x10 |
| - Tag: DT_ANDROID_RELR |
| Value: 0x1000 |
| - Tag: DT_ANDROID_RELRSZ |
| Value: 0x10 |
| - Tag: DT_ANDROID_RELRENT |
| Value: 0x1234 |
| - Tag: DT_GNU_HASH |
| Value: 0x1000 |
| - Tag: DT_TLSDESC_PLT |
| Value: 0x1000 |
| - Tag: DT_TLSDESC_GOT |
| Value: 0x1000 |
| - Tag: DT_RELACOUNT |
| Value: 0x0 |
| - Tag: DT_RELCOUNT |
| Value: 0x0 |
| - Tag: DT_FLAGS_1 |
| Value: 0x87654321 |
| - Tag: DT_VERSYM |
| Value: 0x1000 |
| - Tag: DT_VERDEF |
| Value: 0x1000 |
| - Tag: DT_VERDEFNUM |
| Value: 0x0 |
| - Tag: DT_VERNEED |
| Value: 0x1000 |
| - Tag: DT_VERNEEDNUM |
| Value: 0x0 |
| - Tag: DT_AUXILIARY |
| Value: 0x1 |
| - Tag: DT_FILTER |
| Value: 0x3 |
| ## Show behaviour for unknown values in special and unmarked ranges. |
| ## An arbitrary unknown value outside of the special ranges. |
| - Tag: 0x12345678 |
| Value: 0x87654321 |
| ## An OS specific tag. |
| - Tag: 0x6abcdef0 |
| Value: 0x99887766 |
| ## A processor specific tags. |
| - Tag: 0x76543210 |
| Value: 0x55556666 |
| - Tag: DT_NULL |
| Value: 0x0 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| VAddr: 0x1000 |
| Sections: |
| - Section: .dynstr |
| - Section: .dynamic |
| - Type: PT_DYNAMIC |
| VAddr: 0x1010 |
| Sections: |
| - Section: .dynamic |
| |
| ## When printing the value column we want to have the minimal possible indentation. |
| ## Use an arbitrary dynamic tag to demonstrate that. |
| |
| # RUN: yaml2obj --docnum=3 %s -o %t3 |
| # RUN: llvm-objdump -p %t3 | FileCheck %s --strict-whitespace --check-prefix=INDENT |
| |
| # RUN: yaml2obj --docnum=4 %s -o %t4 |
| # RUN: llvm-objdump -p %t4 | FileCheck %s --strict-whitespace --check-prefix=INDENT |
| |
| # INDENT: {{^}}Dynamic Section: |
| # INDENT: {{^}} NEEDED 0x |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .dynamic |
| Type: SHT_DYNAMIC |
| Entries: |
| - Tag: DT_NEEDED |
| Value: 0x1 |
| - Tag: DT_NULL |
| Value: 0x0 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_EXEC |
| Machine: EM_386 |
| Sections: |
| - Name: .dynamic |
| Type: SHT_DYNAMIC |
| Entries: |
| - Tag: DT_NEEDED |
| Value: 0x1 |
| - Tag: DT_NULL |
| Value: 0x0 |