blob: bc9323712660167c43b5f0364200683811a564f2 [file] [log] [blame]
## Check we can use obj2yaml to yamalize the object
## containing architecture specific dynamic tags.
## Check we can handle MIPS specific tags.
# RUN: yaml2obj -docnum=1 %s -o %t1
# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=MIPS
# MIPS: - Tag: DT_MIPS_RLD_VERSION
# MIPS-NEXT: Value: 0x0000000000000001
# MIPS-NEXT: - Tag: DT_MIPS_TIME_STAMP
# MIPS-NEXT: Value: 0x0000000000000002
# MIPS-NEXT: - Tag: DT_MIPS_ICHECKSUM
# MIPS-NEXT: Value: 0x0000000000000003
# MIPS-NEXT: - Tag: DT_MIPS_IVERSION
# MIPS-NEXT: Value: 0x0000000000000004
# MIPS-NEXT: - Tag: DT_MIPS_FLAGS
# MIPS-NEXT: Value: 0x0000000000000005
# MIPS-NEXT: - Tag: DT_MIPS_BASE_ADDRESS
# MIPS-NEXT: Value: 0x0000000000000006
# MIPS-NEXT: - Tag: DT_MIPS_MSYM
# MIPS-NEXT: Value: 0x0000000000000007
# MIPS-NEXT: - Tag: DT_MIPS_CONFLICT
# MIPS-NEXT: Value: 0x0000000000000008
# MIPS-NEXT: - Tag: DT_MIPS_LIBLIST
# MIPS-NEXT: Value: 0x0000000000000009
# MIPS-NEXT: - Tag: DT_MIPS_LOCAL_GOTNO
# MIPS-NEXT: Value: 0x000000000000000A
# MIPS-NEXT: - Tag: DT_MIPS_CONFLICTNO
# MIPS-NEXT: Value: 0x000000000000000B
# MIPS-NEXT: - Tag: DT_MIPS_LIBLISTNO
# MIPS-NEXT: Value: 0x000000000000000C
# MIPS-NEXT: - Tag: DT_MIPS_SYMTABNO
# MIPS-NEXT: Value: 0x000000000000000D
# MIPS-NEXT: - Tag: DT_MIPS_UNREFEXTNO
# MIPS-NEXT: Value: 0x000000000000000E
# MIPS-NEXT: - Tag: DT_MIPS_GOTSYM
# MIPS-NEXT: Value: 0x000000000000000F
# MIPS-NEXT: - Tag: DT_MIPS_HIPAGENO
# MIPS-NEXT: Value: 0x0000000000000010
# MIPS-NEXT: - Tag: DT_MIPS_RLD_MAP
# MIPS-NEXT: Value: 0x0000000000000011
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_CLASS
# MIPS-NEXT: Value: 0x0000000000000012
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_CLASS_NO
# MIPS-NEXT: Value: 0x0000000000000013
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_INSTANCE
# MIPS-NEXT: Value: 0x0000000000000014
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_INSTANCE_NO
# MIPS-NEXT: Value: 0x0000000000000015
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_RELOC
# MIPS-NEXT: Value: 0x0000000000000016
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_RELOC_NO
# MIPS-NEXT: Value: 0x0000000000000017
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_SYM
# MIPS-NEXT: Value: 0x0000000000000018
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_SYM_NO
# MIPS-NEXT: Value: 0x0000000000000019
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_CLASSSYM
# MIPS-NEXT: Value: 0x000000000000001A
# MIPS-NEXT: - Tag: DT_MIPS_DELTA_CLASSSYM_NO
# MIPS-NEXT: Value: 0x000000000000001B
# MIPS-NEXT: - Tag: DT_MIPS_CXX_FLAGS
# MIPS-NEXT: Value: 0x000000000000001C
# MIPS-NEXT: - Tag: DT_MIPS_PIXIE_INIT
# MIPS-NEXT: Value: 0x000000000000001D
# MIPS-NEXT: - Tag: DT_MIPS_SYMBOL_LIB
# MIPS-NEXT: Value: 0x000000000000001E
# MIPS-NEXT: - Tag: DT_MIPS_LOCALPAGE_GOTIDX
# MIPS-NEXT: Value: 0x000000000000001F
# MIPS-NEXT: - Tag: DT_MIPS_LOCAL_GOTIDX
# MIPS-NEXT: Value: 0x0000000000000020
# MIPS-NEXT: - Tag: DT_MIPS_HIDDEN_GOTIDX
# MIPS-NEXT: Value: 0x0000000000000021
# MIPS-NEXT: - Tag: DT_MIPS_PROTECTED_GOTIDX
# MIPS-NEXT: Value: 0x0000000000000022
# MIPS-NEXT: - Tag: DT_MIPS_OPTIONS
# MIPS-NEXT: Value: 0x0000000000000023
# MIPS-NEXT: - Tag: DT_MIPS_INTERFACE
# MIPS-NEXT: Value: 0x0000000000000024
# MIPS-NEXT: - Tag: DT_MIPS_DYNSTR_ALIGN
# MIPS-NEXT: Value: 0x0000000000000025
# MIPS-NEXT: - Tag: DT_MIPS_INTERFACE_SIZE
# MIPS-NEXT: Value: 0x0000000000000026
# MIPS-NEXT: - Tag: DT_MIPS_RLD_TEXT_RESOLVE_ADDR
# MIPS-NEXT: Value: 0x0000000000000027
# MIPS-NEXT: - Tag: DT_MIPS_PERF_SUFFIX
# MIPS-NEXT: Value: 0x0000000000000028
# MIPS-NEXT: - Tag: DT_MIPS_COMPACT_SIZE
# MIPS-NEXT: Value: 0x0000000000000029
# MIPS-NEXT: - Tag: DT_MIPS_GP_VALUE
# MIPS-NEXT: Value: 0x000000000000002A
# MIPS-NEXT: - Tag: DT_MIPS_AUX_DYNAMIC
# MIPS-NEXT: Value: 0x000000000000002B
# MIPS-NEXT: - Tag: DT_MIPS_PLTGOT
# MIPS-NEXT: Value: 0x000000000000002C
# MIPS-NEXT: - Tag: DT_MIPS_RWPLT
# MIPS-NEXT: Value: 0x000000000000002D
# MIPS-NEXT: - Tag: DT_MIPS_RLD_MAP_REL
# MIPS-NEXT: Value: 0x000000000000002E
--- !ELF
FileHeader:
Class: ELFCLASS32
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_MIPS
Sections:
- Name: .dynamic
Type: SHT_DYNAMIC
Entries:
- Tag: DT_MIPS_RLD_VERSION
Value: 0x0000000000000001
- Tag: DT_MIPS_TIME_STAMP
Value: 0x0000000000000002
- Tag: DT_MIPS_ICHECKSUM
Value: 0x0000000000000003
- Tag: DT_MIPS_IVERSION
Value: 0x0000000000000004
- Tag: DT_MIPS_FLAGS
Value: 0x0000000000000005
- Tag: DT_MIPS_BASE_ADDRESS
Value: 0x0000000000000006
- Tag: DT_MIPS_MSYM
Value: 0x0000000000000007
- Tag: DT_MIPS_CONFLICT
Value: 0x0000000000000008
- Tag: DT_MIPS_LIBLIST
Value: 0x0000000000000009
- Tag: DT_MIPS_LOCAL_GOTNO
Value: 0x000000000000000A
- Tag: DT_MIPS_CONFLICTNO
Value: 0x000000000000000B
- Tag: DT_MIPS_LIBLISTNO
Value: 0x000000000000000C
- Tag: DT_MIPS_SYMTABNO
Value: 0x000000000000000D
- Tag: DT_MIPS_UNREFEXTNO
Value: 0x000000000000000E
- Tag: DT_MIPS_GOTSYM
Value: 0x000000000000000F
- Tag: DT_MIPS_HIPAGENO
Value: 0x0000000000000010
- Tag: DT_MIPS_RLD_MAP
Value: 0x0000000000000011
- Tag: DT_MIPS_DELTA_CLASS
Value: 0x0000000000000012
- Tag: DT_MIPS_DELTA_CLASS_NO
Value: 0x0000000000000013
- Tag: DT_MIPS_DELTA_INSTANCE
Value: 0x0000000000000014
- Tag: DT_MIPS_DELTA_INSTANCE_NO
Value: 0x0000000000000015
- Tag: DT_MIPS_DELTA_RELOC
Value: 0x0000000000000016
- Tag: DT_MIPS_DELTA_RELOC_NO
Value: 0x0000000000000017
- Tag: DT_MIPS_DELTA_SYM
Value: 0x0000000000000018
- Tag: DT_MIPS_DELTA_SYM_NO
Value: 0x0000000000000019
- Tag: DT_MIPS_DELTA_CLASSSYM
Value: 0x000000000000001A
- Tag: DT_MIPS_DELTA_CLASSSYM_NO
Value: 0x000000000000001B
- Tag: DT_MIPS_CXX_FLAGS
Value: 0x000000000000001C
- Tag: DT_MIPS_PIXIE_INIT
Value: 0x000000000000001D
- Tag: DT_MIPS_SYMBOL_LIB
Value: 0x000000000000001E
- Tag: DT_MIPS_LOCALPAGE_GOTIDX
Value: 0x000000000000001F
- Tag: DT_MIPS_LOCAL_GOTIDX
Value: 0x0000000000000020
- Tag: DT_MIPS_HIDDEN_GOTIDX
Value: 0x0000000000000021
- Tag: DT_MIPS_PROTECTED_GOTIDX
Value: 0x0000000000000022
- Tag: DT_MIPS_OPTIONS
Value: 0x0000000000000023
- Tag: DT_MIPS_INTERFACE
Value: 0x0000000000000024
- Tag: DT_MIPS_DYNSTR_ALIGN
Value: 0x0000000000000025
- Tag: DT_MIPS_INTERFACE_SIZE
Value: 0x0000000000000026
- Tag: DT_MIPS_RLD_TEXT_RESOLVE_ADDR
Value: 0x0000000000000027
- Tag: DT_MIPS_PERF_SUFFIX
Value: 0x0000000000000028
- Tag: DT_MIPS_COMPACT_SIZE
Value: 0x0000000000000029
- Tag: DT_MIPS_GP_VALUE
Value: 0x000000000000002A
- Tag: DT_MIPS_AUX_DYNAMIC
Value: 0x000000000000002B
- Tag: DT_MIPS_PLTGOT
Value: 0x000000000000002C
- Tag: DT_MIPS_RWPLT
Value: 0x000000000000002D
- Tag: DT_MIPS_RLD_MAP_REL
Value: 0x000000000000002E
## Check we can handle Hexagon specific tags.
# RUN: yaml2obj -docnum=2 %s -o %t2
# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=HEXAGON
# HEXAGON: - Tag: DT_HEXAGON_SYMSZ
# HEXAGON-NEXT: Value: 0x0000000000000001
# HEXAGON-NEXT: - Tag: DT_HEXAGON_VER
# HEXAGON-NEXT: Value: 0x0000000000000002
# HEXAGON-NEXT: - Tag: DT_HEXAGON_PLT
# HEXAGON-NEXT: Value: 0x0000000000000003
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_HEXAGON
Sections:
- Name: .dynamic
Type: SHT_DYNAMIC
Entries:
- Tag: DT_HEXAGON_SYMSZ
Value: 0x0000000000000001
- Tag: DT_HEXAGON_VER
Value: 0x0000000000000002
- Tag: DT_HEXAGON_PLT
Value: 0x0000000000000003
## Check we can handle PPC64 specific tags.
# RUN: yaml2obj -docnum=3 %s -o %t3
# RUN: obj2yaml %t3 | FileCheck %s --check-prefix=EM_PPC64
# EM_PPC64: - Tag: DT_PPC64_GLINK
# EM_PPC64-NEXT: Value: 0x0000000000000001
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_PPC64
Sections:
- Name: .dynamic
Type: SHT_DYNAMIC
Entries:
- Tag: DT_PPC64_GLINK
Value: 0x0000000000000001
## Check we can't use a tag from a different architecture,
## even if it has the same numeric value as a valid tag.
## Here for EM_PPC64 we are trying to use DT_HEXAGON_SYMSZ
## instead of DT_PPC64_GLINK. They both have value of 0x70000000.
# RUN: not yaml2obj -docnum=4 %s 2>&1 | FileCheck %s --check-prefix=ERR
# ERR: error: invalid hex64 number
# ERR-NEXT: - Tag: DT_HEXAGON_SYMSZ
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_PPC64
Sections:
- Name: .dynamic
Type: SHT_DYNAMIC
Entries:
- Tag: DT_HEXAGON_SYMSZ
Value: 0x0000000000000001