333 lines · plain
1## In this test we test how machine-specific dynamic tags are dumped.2 3## Case 1: Test that hexagon machine-specific tags can be dumped.4# RUN: yaml2obj --docnum=1 -o %t.hex %s5# RUN: llvm-objdump -p %t.hex | FileCheck %s --check-prefix=HEXAGON6 7# HEXAGON: Dynamic Section:8# HEXAGON-NEXT: HEXAGON_SYMSZ 0x00000000000000109# HEXAGON-NEXT: HEXAGON_VER 0x000000000000100010# HEXAGON-NEXT: HEXAGON_PLT 0x000000000000100011 12--- !ELF13FileHeader:14 Class: ELFCLASS6415 Data: ELFDATA2LSB16 Type: ET_EXEC17 Machine: EM_HEXAGON18Sections:19 - Name: .dynamic20 Type: SHT_DYNAMIC21 Entries:22 - Tag: DT_HEXAGON_SYMSZ23 Value: 0x1024 - Tag: DT_HEXAGON_VER25 Value: 0x100026 - Tag: DT_HEXAGON_PLT27 Value: 0x100028 - Tag: DT_NULL29 Value: 030ProgramHeaders:31 - Type: PT_LOAD32 FirstSec: .dynamic33 LastSec: .dynamic34 - Type: PT_DYNAMIC35 FirstSec: .dynamic36 LastSec: .dynamic37 38## Case 2: Test that MIPS machine-specific tags can be dumped.39## MIPS has a few long tag names. Show that we indent columns properly.40# RUN: yaml2obj --docnum=2 -o %t.mips %s41# RUN: llvm-objdump -p %t.mips | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=MIPS42 43# MIPS:Dynamic Section:44# MIPS-NEXT: MIPS_RLD_VERSION 0x000000001234567845# MIPS-NEXT: MIPS_TIME_STAMP 0x000000001122334446# MIPS-NEXT: MIPS_ICHECKSUM 0x000000001111222247# MIPS-NEXT: MIPS_IVERSION 0x000000000000000148# MIPS-NEXT: MIPS_FLAGS 0x000000001111111149# MIPS-NEXT: MIPS_BASE_ADDRESS 0x000000008765432150# MIPS-NEXT: MIPS_MSYM 0x000000000000100051# MIPS-NEXT: MIPS_CONFLICT 0x000000000000100052# MIPS-NEXT: MIPS_LIBLIST 0x000000000000100053# MIPS-NEXT: MIPS_LOCAL_GOTNO 0x000000000000000154# MIPS-NEXT: MIPS_CONFLICTNO 0x000000000000000155# MIPS-NEXT: MIPS_LIBLISTNO 0x000000000000000156# MIPS-NEXT: MIPS_SYMTABNO 0x000000000000000157# MIPS-NEXT: MIPS_UNREFEXTNO 0x000000000000000058# MIPS-NEXT: MIPS_GOTSYM 0x000000000000000059# MIPS-NEXT: MIPS_HIPAGENO 0x000000008877665560# MIPS-NEXT: MIPS_RLD_MAP 0x000000000000100061# MIPS-NEXT: MIPS_DELTA_CLASS 0x000000000000100062# MIPS-NEXT: MIPS_DELTA_CLASS_NO 0x000000000000000163# MIPS-NEXT: MIPS_DELTA_INSTANCE 0x000000000000100064# MIPS-NEXT: MIPS_DELTA_INSTANCE_NO 0x000000000000000165# MIPS-NEXT: MIPS_DELTA_RELOC 0x000000000000100066# MIPS-NEXT: MIPS_DELTA_RELOC_NO 0x000000000000000167# MIPS-NEXT: MIPS_DELTA_SYM 0x000000000000100068# MIPS-NEXT: MIPS_DELTA_SYM_NO 0x000000000000000169# MIPS-NEXT: MIPS_DELTA_CLASSSYM 0x000000000000100070# MIPS-NEXT: MIPS_DELTA_CLASSSYM_NO 0x000000000000000171# MIPS-NEXT: MIPS_CXX_FLAGS 0x000000008888777772# MIPS-NEXT: MIPS_PIXIE_INIT 0x000000000000100073# MIPS-NEXT: MIPS_LOCALPAGE_GOTIDX 0x000000000000000174# MIPS-NEXT: MIPS_LOCAL_GOTIDX 0x000000000000000175# MIPS-NEXT: MIPS_HIDDEN_GOTIDX 0x000000000000000176# MIPS-NEXT: MIPS_PROTECTED_GOTIDX 0x000000000000000177# MIPS-NEXT: MIPS_OPTIONS 0x000000000000100078# MIPS-NEXT: MIPS_INTERFACE 0x000000000000100079# MIPS-NEXT: MIPS_DYNSTR_ALIGN 0x000000008888888880# MIPS-NEXT: MIPS_INTERFACE_SIZE 0x000000000000001081# MIPS-NEXT: MIPS_RLD_TEXT_RESOLVE_ADDR 0x000000000000000882# MIPS-NEXT: MIPS_PERF_SUFFIX 0x000000000000000083# MIPS-NEXT: MIPS_COMPACT_SIZE 0x000000000000001084# MIPS-NEXT: MIPS_GP_VALUE 0x000000000000000185# MIPS-NEXT: MIPS_AUX_DYNAMIC 0x000000000000100086# MIPS-NEXT: MIPS_PLTGOT 0x000000000000100087# MIPS-NEXT: MIPS_RWPLT 0x000000000000100088# MIPS-NEXT: MIPS_RLD_MAP_REL 0x000000000000100089# MIPS-NEXT: MIPS_XHASH 0x000000000000200090 91--- !ELF92FileHeader:93 Class: ELFCLASS6494 Data: ELFDATA2LSB95 Type: ET_EXEC96 Machine: EM_MIPS97Sections:98 - Name: .dynamic99 Type: SHT_DYNAMIC100 Entries:101 - Tag: DT_MIPS_RLD_VERSION102 Value: 0x12345678103 - Tag: DT_MIPS_TIME_STAMP104 Value: 0x11223344105 - Tag: DT_MIPS_ICHECKSUM106 Value: 0x11112222107 - Tag: DT_MIPS_IVERSION108 Value: 0x1109 - Tag: DT_MIPS_FLAGS110 Value: 0x11111111111 - Tag: DT_MIPS_BASE_ADDRESS112 Value: 0x87654321113 - Tag: DT_MIPS_MSYM114 Value: 0x1000115 - Tag: DT_MIPS_CONFLICT116 Value: 0x1000117 - Tag: DT_MIPS_LIBLIST118 Value: 0x1000119 - Tag: DT_MIPS_LOCAL_GOTNO120 Value: 0x1121 - Tag: DT_MIPS_CONFLICTNO122 Value: 0x1123 - Tag: DT_MIPS_LIBLISTNO124 Value: 0x1125 - Tag: DT_MIPS_SYMTABNO126 Value: 0x1127 - Tag: DT_MIPS_UNREFEXTNO128 Value: 0x0129 - Tag: DT_MIPS_GOTSYM130 Value: 0x0131 - Tag: DT_MIPS_HIPAGENO132 Value: 0x88776655133 - Tag: DT_MIPS_RLD_MAP134 Value: 0x1000135 - Tag: DT_MIPS_DELTA_CLASS136 Value: 0x1000137 - Tag: DT_MIPS_DELTA_CLASS_NO138 Value: 0x1139 - Tag: DT_MIPS_DELTA_INSTANCE140 Value: 0x1000141 - Tag: DT_MIPS_DELTA_INSTANCE_NO142 Value: 0x1143 - Tag: DT_MIPS_DELTA_RELOC144 Value: 0x1000145 - Tag: DT_MIPS_DELTA_RELOC_NO146 Value: 0x1147 - Tag: DT_MIPS_DELTA_SYM148 Value: 0x1000149 - Tag: DT_MIPS_DELTA_SYM_NO150 Value: 0x1151 - Tag: DT_MIPS_DELTA_CLASSSYM152 Value: 0x1000153 - Tag: DT_MIPS_DELTA_CLASSSYM_NO154 Value: 0x1155 - Tag: DT_MIPS_CXX_FLAGS156 Value: 0x88887777157 - Tag: DT_MIPS_PIXIE_INIT158 Value: 0x1000159 - Tag: DT_MIPS_LOCALPAGE_GOTIDX160 Value: 0x1161 - Tag: DT_MIPS_LOCAL_GOTIDX162 Value: 0x1163 - Tag: DT_MIPS_HIDDEN_GOTIDX164 Value: 0x1165 - Tag: DT_MIPS_PROTECTED_GOTIDX166 Value: 0x1167 - Tag: DT_MIPS_OPTIONS168 Value: 0x1000169 - Tag: DT_MIPS_INTERFACE170 Value: 0x1000171 - Tag: DT_MIPS_DYNSTR_ALIGN172 Value: 0x88888888173 - Tag: DT_MIPS_INTERFACE_SIZE174 Value: 0x10175 - Tag: DT_MIPS_RLD_TEXT_RESOLVE_ADDR176 Value: 0x8177 - Tag: DT_MIPS_PERF_SUFFIX178 Value: 0x0179 - Tag: DT_MIPS_COMPACT_SIZE180 Value: 0x10181 - Tag: DT_MIPS_GP_VALUE182 Value: 0x1183 - Tag: DT_MIPS_AUX_DYNAMIC184 Value: 0x1000185 - Tag: DT_MIPS_PLTGOT186 Value: 0x1000187 - Tag: DT_MIPS_RWPLT188 Value: 0x1000189 - Tag: DT_MIPS_RLD_MAP_REL190 Value: 0x1000191 - Tag: DT_MIPS_XHASH192 Value: 0x2000193 - Tag: DT_NULL194 Value: 0195ProgramHeaders:196 - Type: PT_LOAD197 FirstSec: .dynamic198 LastSec: .dynamic199 - Type: PT_DYNAMIC200 FirstSec: .dynamic201 LastSec: .dynamic202 203## Case 3: Test that PPC machine-specific tags can be dumped.204# RUN: yaml2obj --docnum=3 -o %t.ppc %s205# RUN: llvm-objdump -p %t.ppc | FileCheck %s --check-prefix=PPC206 207# PPC: Dynamic Section:208# PPC-NEXT: PPC_GOT 0x000200c0209# PPC-NEXT: PPC_OPT 0x00000001210 211--- !ELF212FileHeader:213 Class: ELFCLASS32214 Data: ELFDATA2MSB215 Type: ET_EXEC216 Machine: EM_PPC217Sections:218 - Name: .dynamic219 Type: SHT_DYNAMIC220 Entries:221 - Tag: DT_PPC_GOT222 Value: 0x200c0223 - Tag: DT_PPC_OPT224 Value: 1225 - Tag: DT_NULL226 Value: 0227ProgramHeaders:228 - Type: PT_LOAD229 FirstSec: .dynamic230 LastSec: .dynamic231 - Type: PT_DYNAMIC232 FirstSec: .dynamic233 LastSec: .dynamic234 235## Case 4: Test that PPC64 machine-specific tags can be dumped.236# RUN: yaml2obj --docnum=4 -o %t.ppc64 %s237# RUN: llvm-objdump -p %t.ppc64 | FileCheck %s --check-prefix=PPC64238 239# PPC64: Dynamic Section:240# PPC64-NEXT: PPC64_GLINK 0x0000000000001000241 242--- !ELF243FileHeader:244 Class: ELFCLASS64245 Data: ELFDATA2LSB246 Type: ET_EXEC247 Machine: EM_PPC64248Sections:249 - Name: .dynamic250 Type: SHT_DYNAMIC251 Entries:252 - Tag: DT_PPC64_GLINK253 Value: 0x1000254 - Tag: DT_NULL255 Value: 0256ProgramHeaders:257 - Type: PT_LOAD258 FirstSec: .dynamic259 LastSec: .dynamic260 - Type: PT_DYNAMIC261 FirstSec: .dynamic262 LastSec: .dynamic263 264## Case 5: Test that AARCH64 machine-specific tags can be dumped.265# RUN: yaml2obj --docnum=5 -o %t.aarch64 %s266# RUN: llvm-objdump -p %t.aarch64 | FileCheck %s --check-prefix=AARCH64267 268# AARCH64: Dynamic Section:269# AARCH64-NEXT: AARCH64_BTI_PLT 0x0000000000000001270# AARCH64-NEXT: AARCH64_PAC_PLT 0x0000000000000002271# AARCH64-NEXT: AARCH64_AUTH_RELR 0x0000000000000003272# AARCH64-NEXT: AARCH64_AUTH_RELRSZ 0x0000000000000004273# AARCH64-NEXT: AARCH64_AUTH_RELRENT 0x0000000000000005274 275--- !ELF276FileHeader:277 Class: ELFCLASS64278 Data: ELFDATA2LSB279 Type: ET_EXEC280 Machine: EM_AARCH64281Sections:282 - Name: .dynamic283 Type: SHT_DYNAMIC284 Entries:285 - Tag: DT_AARCH64_BTI_PLT286 Value: 1287 - Tag: DT_AARCH64_PAC_PLT288 Value: 2289 - Tag: DT_AARCH64_AUTH_RELR290 Value: 3291 - Tag: DT_AARCH64_AUTH_RELRSZ292 Value: 4293 - Tag: DT_AARCH64_AUTH_RELRENT294 Value: 5295 - Tag: DT_NULL296 Value: 0297ProgramHeaders:298 - Type: PT_LOAD299 FirstSec: .dynamic300 LastSec: .dynamic301 - Type: PT_DYNAMIC302 FirstSec: .dynamic303 LastSec: .dynamic304 305## Case 6: Test that RISC-V machine-specific tags can be dumped.306# RUN: yaml2obj --docnum=6 %s -o %t.rv307# RUN: llvm-objdump -p %t.rv | FileCheck %s --check-prefix=RISCV308 309# RISCV: Dynamic Section:310# RISCV-NEXT: RISCV_VARIANT_CC 0x0000000000000001311 312--- !ELF313FileHeader:314 Class: ELFCLASS64315 Data: ELFDATA2LSB316 Type: ET_EXEC317 Machine: EM_RISCV318Sections:319 - Name: .dynamic320 Type: SHT_DYNAMIC321 Entries:322 - Tag: DT_RISCV_VARIANT_CC323 Value: 1324 - Tag: DT_NULL325 Value: 0326ProgramHeaders:327 - Type: PT_LOAD328 FirstSec: .dynamic329 LastSec: .dynamic330 - Type: PT_DYNAMIC331 FirstSec: .dynamic332 LastSec: .dynamic333