473 lines
14 KiB
Plaintext
473 lines
14 KiB
Plaintext
# 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
|
|
FirstSec: .dynstr
|
|
LastSec: .dynamic
|
|
- Type: PT_DYNAMIC
|
|
VAddr: 0x1010
|
|
FirstSec: .dynamic
|
|
LastSec: .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
|
|
FirstSec: .dynstr
|
|
LastSec: .dynamic
|
|
- Type: PT_DYNAMIC
|
|
VAddr: 0x1010
|
|
FirstSec: .dynamic
|
|
LastSec: .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
|