292 lines
8.8 KiB
Plaintext
292 lines
8.8 KiB
Plaintext
|
## In this test we test how machine-specific dynamic tags are dumped.
|
||
|
|
||
|
## Case 1: Test that hexagon machine-specific tags can be dumped.
|
||
|
# RUN: yaml2obj --docnum=1 -o %t.hex %s
|
||
|
# RUN: llvm-objdump -p %t.hex | FileCheck %s --check-prefix=HEXAGON
|
||
|
|
||
|
# HEXAGON: Dynamic Section:
|
||
|
# HEXAGON-NEXT: HEXAGON_SYMSZ 0x0000000000000010
|
||
|
# HEXAGON-NEXT: HEXAGON_VER 0x0000000000001000
|
||
|
# HEXAGON-NEXT: HEXAGON_PLT 0x0000000000001000
|
||
|
|
||
|
--- !ELF
|
||
|
FileHeader:
|
||
|
Class: ELFCLASS64
|
||
|
Data: ELFDATA2LSB
|
||
|
Type: ET_EXEC
|
||
|
Machine: EM_HEXAGON
|
||
|
Sections:
|
||
|
- Name: .dynamic
|
||
|
Type: SHT_DYNAMIC
|
||
|
Entries:
|
||
|
- Tag: DT_HEXAGON_SYMSZ
|
||
|
Value: 0x10
|
||
|
- Tag: DT_HEXAGON_VER
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_HEXAGON_PLT
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_NULL
|
||
|
Value: 0
|
||
|
ProgramHeaders:
|
||
|
- Type: PT_LOAD
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
- Type: PT_DYNAMIC
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
|
||
|
## Case 2: Test that MIPS machine-specific tags can be dumped.
|
||
|
## MIPS has a few long tag names. Show that we indent columns properly.
|
||
|
# RUN: yaml2obj --docnum=2 -o %t.mips %s
|
||
|
# RUN: llvm-objdump -p %t.mips | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=MIPS
|
||
|
|
||
|
# MIPS:Dynamic Section:
|
||
|
# MIPS-NEXT: MIPS_RLD_VERSION 0x0000000012345678
|
||
|
# MIPS-NEXT: MIPS_TIME_STAMP 0x0000000011223344
|
||
|
# MIPS-NEXT: MIPS_ICHECKSUM 0x0000000011112222
|
||
|
# MIPS-NEXT: MIPS_IVERSION 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_FLAGS 0x0000000011111111
|
||
|
# MIPS-NEXT: MIPS_BASE_ADDRESS 0x0000000087654321
|
||
|
# MIPS-NEXT: MIPS_MSYM 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_CONFLICT 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_LIBLIST 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_LOCAL_GOTNO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_CONFLICTNO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_LIBLISTNO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_SYMTABNO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_UNREFEXTNO 0x0000000000000000
|
||
|
# MIPS-NEXT: MIPS_GOTSYM 0x0000000000000000
|
||
|
# MIPS-NEXT: MIPS_HIPAGENO 0x0000000088776655
|
||
|
# MIPS-NEXT: MIPS_RLD_MAP 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_DELTA_CLASS 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_DELTA_CLASS_NO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_DELTA_INSTANCE 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_DELTA_INSTANCE_NO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_DELTA_RELOC 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_DELTA_RELOC_NO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_DELTA_SYM 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_DELTA_SYM_NO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_DELTA_CLASSSYM 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_DELTA_CLASSSYM_NO 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_CXX_FLAGS 0x0000000088887777
|
||
|
# MIPS-NEXT: MIPS_PIXIE_INIT 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_LOCALPAGE_GOTIDX 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_LOCAL_GOTIDX 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_HIDDEN_GOTIDX 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_PROTECTED_GOTIDX 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_OPTIONS 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_INTERFACE 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_DYNSTR_ALIGN 0x0000000088888888
|
||
|
# MIPS-NEXT: MIPS_INTERFACE_SIZE 0x0000000000000010
|
||
|
# MIPS-NEXT: MIPS_RLD_TEXT_RESOLVE_ADDR 0x0000000000000008
|
||
|
# MIPS-NEXT: MIPS_PERF_SUFFIX 0x0000000000000000
|
||
|
# MIPS-NEXT: MIPS_COMPACT_SIZE 0x0000000000000010
|
||
|
# MIPS-NEXT: MIPS_GP_VALUE 0x0000000000000001
|
||
|
# MIPS-NEXT: MIPS_AUX_DYNAMIC 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_PLTGOT 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_RWPLT 0x0000000000001000
|
||
|
# MIPS-NEXT: MIPS_RLD_MAP_REL 0x0000000000001000
|
||
|
|
||
|
--- !ELF
|
||
|
FileHeader:
|
||
|
Class: ELFCLASS64
|
||
|
Data: ELFDATA2LSB
|
||
|
Type: ET_EXEC
|
||
|
Machine: EM_MIPS
|
||
|
Sections:
|
||
|
- Name: .dynamic
|
||
|
Type: SHT_DYNAMIC
|
||
|
Entries:
|
||
|
- Tag: DT_MIPS_RLD_VERSION
|
||
|
Value: 0x12345678
|
||
|
- Tag: DT_MIPS_TIME_STAMP
|
||
|
Value: 0x11223344
|
||
|
- Tag: DT_MIPS_ICHECKSUM
|
||
|
Value: 0x11112222
|
||
|
- Tag: DT_MIPS_IVERSION
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_FLAGS
|
||
|
Value: 0x11111111
|
||
|
- Tag: DT_MIPS_BASE_ADDRESS
|
||
|
Value: 0x87654321
|
||
|
- Tag: DT_MIPS_MSYM
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_CONFLICT
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_LIBLIST
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_LOCAL_GOTNO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_CONFLICTNO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_LIBLISTNO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_SYMTABNO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_UNREFEXTNO
|
||
|
Value: 0x0
|
||
|
- Tag: DT_MIPS_GOTSYM
|
||
|
Value: 0x0
|
||
|
- Tag: DT_MIPS_HIPAGENO
|
||
|
Value: 0x88776655
|
||
|
- Tag: DT_MIPS_RLD_MAP
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_DELTA_CLASS
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_DELTA_CLASS_NO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_DELTA_INSTANCE
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_DELTA_INSTANCE_NO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_DELTA_RELOC
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_DELTA_RELOC_NO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_DELTA_SYM
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_DELTA_SYM_NO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_DELTA_CLASSSYM
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_DELTA_CLASSSYM_NO
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_CXX_FLAGS
|
||
|
Value: 0x88887777
|
||
|
- Tag: DT_MIPS_PIXIE_INIT
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_LOCALPAGE_GOTIDX
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_LOCAL_GOTIDX
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_HIDDEN_GOTIDX
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_PROTECTED_GOTIDX
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_OPTIONS
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_INTERFACE
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_DYNSTR_ALIGN
|
||
|
Value: 0x88888888
|
||
|
- Tag: DT_MIPS_INTERFACE_SIZE
|
||
|
Value: 0x10
|
||
|
- Tag: DT_MIPS_RLD_TEXT_RESOLVE_ADDR
|
||
|
Value: 0x8
|
||
|
- Tag: DT_MIPS_PERF_SUFFIX
|
||
|
Value: 0x0
|
||
|
- Tag: DT_MIPS_COMPACT_SIZE
|
||
|
Value: 0x10
|
||
|
- Tag: DT_MIPS_GP_VALUE
|
||
|
Value: 0x1
|
||
|
- Tag: DT_MIPS_AUX_DYNAMIC
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_PLTGOT
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_RWPLT
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_MIPS_RLD_MAP_REL
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_NULL
|
||
|
Value: 0
|
||
|
ProgramHeaders:
|
||
|
- Type: PT_LOAD
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
- Type: PT_DYNAMIC
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
|
||
|
## Case 3: Test that PPC machine-specific tags can be dumped.
|
||
|
# RUN: yaml2obj --docnum=3 -o %t.ppc %s
|
||
|
# RUN: llvm-objdump -p %t.ppc | FileCheck %s --check-prefix=PPC
|
||
|
|
||
|
# PPC: Dynamic Section:
|
||
|
# PPC-NEXT: PPC_GOT 0x000200c0
|
||
|
# PPC-NEXT: PPC_OPT 0x00000001
|
||
|
|
||
|
--- !ELF
|
||
|
FileHeader:
|
||
|
Class: ELFCLASS32
|
||
|
Data: ELFDATA2MSB
|
||
|
Type: ET_EXEC
|
||
|
Machine: EM_PPC
|
||
|
Sections:
|
||
|
- Name: .dynamic
|
||
|
Type: SHT_DYNAMIC
|
||
|
Entries:
|
||
|
- Tag: DT_PPC_GOT
|
||
|
Value: 0x200c0
|
||
|
- Tag: DT_PPC_OPT
|
||
|
Value: 1
|
||
|
- Tag: DT_NULL
|
||
|
Value: 0
|
||
|
ProgramHeaders:
|
||
|
- Type: PT_LOAD
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
- Type: PT_DYNAMIC
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
|
||
|
## Case 4: Test that PPC64 machine-specific tags can be dumped.
|
||
|
# RUN: yaml2obj --docnum=4 -o %t.ppc64 %s
|
||
|
# RUN: llvm-objdump -p %t.ppc64 | FileCheck %s --check-prefix=PPC64
|
||
|
|
||
|
# PPC64: Dynamic Section:
|
||
|
# PPC64-NEXT: PPC64_GLINK 0x0000000000001000
|
||
|
|
||
|
--- !ELF
|
||
|
FileHeader:
|
||
|
Class: ELFCLASS64
|
||
|
Data: ELFDATA2LSB
|
||
|
Type: ET_EXEC
|
||
|
Machine: EM_PPC64
|
||
|
Sections:
|
||
|
- Name: .dynamic
|
||
|
Type: SHT_DYNAMIC
|
||
|
Entries:
|
||
|
- Tag: DT_PPC64_GLINK
|
||
|
Value: 0x1000
|
||
|
- Tag: DT_NULL
|
||
|
Value: 0
|
||
|
ProgramHeaders:
|
||
|
- Type: PT_LOAD
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
- Type: PT_DYNAMIC
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
|
||
|
## Case 5: Test that AARCH64 machine-specific tags can be dumped.
|
||
|
# RUN: yaml2obj --docnum=5 -o %t.aarch64 %s
|
||
|
# RUN: llvm-objdump -p %t.aarch64 | FileCheck %s --check-prefix=AARCH64
|
||
|
|
||
|
# AARCH64: Dynamic Section:
|
||
|
# AARCH64-NEXT: AARCH64_BTI_PLT 0x0000000000000001
|
||
|
# AARCH64-NEXT: AARCH64_PAC_PLT 0x0000000000000002
|
||
|
|
||
|
--- !ELF
|
||
|
FileHeader:
|
||
|
Class: ELFCLASS64
|
||
|
Data: ELFDATA2LSB
|
||
|
Type: ET_EXEC
|
||
|
Machine: EM_AARCH64
|
||
|
Sections:
|
||
|
- Name: .dynamic
|
||
|
Type: SHT_DYNAMIC
|
||
|
Entries:
|
||
|
- Tag: DT_AARCH64_BTI_PLT
|
||
|
Value: 1
|
||
|
- Tag: DT_AARCH64_PAC_PLT
|
||
|
Value: 2
|
||
|
- Tag: DT_NULL
|
||
|
Value: 0
|
||
|
ProgramHeaders:
|
||
|
- Type: PT_LOAD
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|
||
|
- Type: PT_DYNAMIC
|
||
|
FirstSec: .dynamic
|
||
|
LastSec: .dynamic
|