| ## 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 |