516 lines · plain
1# RUN: yaml2obj --docnum=1 %s -o %t12# RUN: llvm-objdump -p %t1 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF643 4# ELF64:Dynamic Section:5# ELF64-NEXT: NEEDED D6# ELF64-NEXT: PLTRELSZ 0x00000000000000107# ELF64-NEXT: PLTGOT 0x00000000000010008# ELF64-NEXT: HASH 0x00000000000010009# ELF64-NEXT: STRTAB 0x000000000000100010# ELF64-NEXT: SYMTAB 0x000000000000100011# ELF64-NEXT: RELA 0x000000000000100012# ELF64-NEXT: RELASZ 0x000000000000001013# ELF64-NEXT: RELAENT 0x000000000000078914# ELF64-NEXT: STRSZ 0x000000000000001015# ELF64-NEXT: SYMENT 0x000000000000098716# ELF64-NEXT: INIT 0x000000000000100017# ELF64-NEXT: FINI 0x000000000000100018# ELF64-NEXT: SONAME U19# ELF64-NEXT: RPATH f20# ELF64-NEXT: SYMBOLIC 0x1234567890abcdef21# ELF64-NEXT: REL 0x000000000000100022# ELF64-NEXT: RELSZ 0x000000000000001023# ELF64-NEXT: RELENT 0x000000000000012324# ELF64-NEXT: PLTREL 0x000000000000000725# ELF64-NEXT: DEBUG 0xfedcba098765432126# ELF64-NEXT: TEXTREL 0x112233445566778827# ELF64-NEXT: JMPREL 0x000000000000100028# ELF64-NEXT: BIND_NOW 0x887766554433221129# ELF64-NEXT: INIT_ARRAY 0x000000000000100030# ELF64-NEXT: FINI_ARRAY 0x000000000000100031# ELF64-NEXT: INIT_ARRAYSZ 0x000000000000001032# ELF64-NEXT: FINI_ARRAYSZ 0x000000000000001033# ELF64-NEXT: RUNPATH w34# ELF64-NEXT: FLAGS 0xaabbccddeeff990035# ELF64-NEXT: PREINIT_ARRAY 0x000000000000100036# ELF64-NEXT: PREINIT_ARRAYSZ 0x000000000000001037# ELF64-NEXT: SYMTAB_SHNDX 0x000000000000100038# ELF64-NEXT: RELRSZ 0x000000000000001039# ELF64-NEXT: RELR 0x000000000000100040# ELF64-NEXT: RELRENT 0x000000000000432141# ELF64-NEXT: ANDROID_REL 0x000000000000100042# ELF64-NEXT: ANDROID_RELSZ 0x000000000000001043# ELF64-NEXT: ANDROID_RELA 0x000000000000100044# ELF64-NEXT: ANDROID_RELASZ 0x000000000000001045# ELF64-NEXT: ANDROID_RELR 0x000000000000100046# ELF64-NEXT: ANDROID_RELRSZ 0x000000000000001047# ELF64-NEXT: ANDROID_RELRENT 0x000000000000123448# ELF64-NEXT: GNU_HASH 0x000000000000100049# ELF64-NEXT: TLSDESC_PLT 0x000000000000100050# ELF64-NEXT: TLSDESC_GOT 0x000000000000100051# ELF64-NEXT: RELACOUNT 0x000000000000000052# ELF64-NEXT: RELCOUNT 0x000000000000000053# ELF64-NEXT: FLAGS_1 0x000000008765432154# ELF64-NEXT: VERSYM 0x000000000000100055# ELF64-NEXT: VERDEF 0x000000000000100056# ELF64-NEXT: VERDEFNUM 0x000000000000000057# ELF64-NEXT: VERNEED 0x000000000000100058# ELF64-NEXT: VERNEEDNUM 0x000000000000000059# ELF64-NEXT: AUXILIARY D60# ELF64-NEXT: FILTER U61# ELF64-NEXT: <unknown:>0x12345678 0x876543218765432162# ELF64-NEXT: <unknown:>0x6abcdef0 0x998877665544332263# ELF64-NEXT: <unknown:>0x76543210 0x555566667777888864# ELF64-NOT:{{.}}65 66--- !ELF67FileHeader:68 Class: ELFCLASS6469 Data: ELFDATA2LSB70 Type: ET_EXEC71 Machine: EM_X86_6472Sections:73 - Name: .dynstr74 Type: SHT_STRTAB75 Address: 0x100076 Size: 0x1077 Content: "004400550066007700"78 - Name: .dynamic79 Type: SHT_DYNAMIC80 Address: 0x101081 Link: 182 Entries:83 - Tag: DT_NEEDED84 Value: 0x185 - Tag: DT_PLTRELSZ86 Value: 0x1087 - Tag: DT_PLTGOT88 Value: 0x100089 - Tag: DT_HASH90 Value: 0x100091 - Tag: DT_STRTAB92 Value: 0x100093 - Tag: DT_SYMTAB94 Value: 0x100095 - Tag: DT_RELA96 Value: 0x100097 - Tag: DT_RELASZ98 Value: 0x1099 - Tag: DT_RELAENT100 Value: 0x789101 - Tag: DT_STRSZ102 Value: 0x10103 - Tag: DT_SYMENT104 Value: 0x987105 - Tag: DT_INIT106 Value: 0x1000107 - Tag: DT_FINI108 Value: 0x1000109 - Tag: DT_SONAME110 Value: 0x3111 - Tag: DT_RPATH112 Value: 0x5113 - Tag: DT_SYMBOLIC114 Value: 0x1234567890abcdef115 - Tag: DT_REL116 Value: 0x1000117 - Tag: DT_RELSZ118 Value: 0x10119 - Tag: DT_RELENT120 Value: 0x123121 - Tag: DT_PLTREL122 Value: 0x7123 - Tag: DT_DEBUG124 Value: 0xfedcba0987654321125 - Tag: DT_TEXTREL126 Value: 0x1122334455667788127 - Tag: DT_JMPREL128 Value: 0x1000129 - Tag: DT_BIND_NOW130 Value: 0x8877665544332211131 - Tag: DT_INIT_ARRAY132 Value: 0x1000133 - Tag: DT_FINI_ARRAY134 Value: 0x1000135 - Tag: DT_INIT_ARRAYSZ136 Value: 0x10137 - Tag: DT_FINI_ARRAYSZ138 Value: 0x10139 - Tag: DT_RUNPATH140 Value: 0x7141 - Tag: DT_FLAGS142 Value: 0xaabbccddeeff9900143 - Tag: DT_PREINIT_ARRAY144 Value: 0x1000145 - Tag: DT_PREINIT_ARRAYSZ146 Value: 0x10147 - Tag: DT_SYMTAB_SHNDX148 Value: 0x1000149 - Tag: DT_RELRSZ150 Value: 0x10151 - Tag: DT_RELR152 Value: 0x1000153 - Tag: DT_RELRENT154 Value: 0x4321155 - Tag: DT_ANDROID_REL156 Value: 0x1000157 - Tag: DT_ANDROID_RELSZ158 Value: 0x10159 - Tag: DT_ANDROID_RELA160 Value: 0x1000161 - Tag: DT_ANDROID_RELASZ162 Value: 0x10163 - Tag: DT_ANDROID_RELR164 Value: 0x1000165 - Tag: DT_ANDROID_RELRSZ166 Value: 0x10167 - Tag: DT_ANDROID_RELRENT168 Value: 0x1234169 - Tag: DT_GNU_HASH170 Value: 0x1000171 - Tag: DT_TLSDESC_PLT172 Value: 0x1000173 - Tag: DT_TLSDESC_GOT174 Value: 0x1000175 - Tag: DT_RELACOUNT176 Value: 0x0177 - Tag: DT_RELCOUNT178 Value: 0x0179 - Tag: DT_FLAGS_1180 Value: 0x87654321181 - Tag: DT_VERSYM182 Value: 0x1000183 - Tag: DT_VERDEF184 Value: 0x1000185 - Tag: DT_VERDEFNUM186 Value: 0x0187 - Tag: DT_VERNEED188 Value: 0x1000189 - Tag: DT_VERNEEDNUM190 Value: 0x0191 - Tag: DT_AUXILIARY192 Value: 0x1193 - Tag: DT_FILTER194 Value: 0x3195## Show behaviour for unknown values in special and unmarked ranges.196## An arbitrary unknown value outside of the special ranges.197 - Tag: 0x12345678198 Value: 0x8765432187654321199## An OS specific tag.200 - Tag: 0x6abcdef0201 Value: 0x9988776655443322202## A processor specific tags.203 - Tag: 0x76543210204 Value: 0x5555666677778888205 - Tag: DT_NULL206 Value: 0x0207ProgramHeaders:208 - Type: PT_LOAD209 VAddr: 0x1000210 FirstSec: .dynstr211 LastSec: .dynamic212 - Type: PT_DYNAMIC213 VAddr: 0x1010214 FirstSec: .dynamic215 LastSec: .dynamic216 217# RUN: yaml2obj --docnum=2 %s -o %t2218# RUN: llvm-objdump -p %t2 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF32219 220# ELF32:Dynamic Section:221# ELF32-NEXT: NEEDED D222# ELF32-NEXT: PLTRELSZ 0x00000010223# ELF32-NEXT: PLTGOT 0x00001000224# ELF32-NEXT: HASH 0x00001000225# ELF32-NEXT: STRTAB 0x00001000226# ELF32-NEXT: SYMTAB 0x00001000227# ELF32-NEXT: RELA 0x00001000228# ELF32-NEXT: RELASZ 0x00000010229# ELF32-NEXT: RELAENT 0x00000789230# ELF32-NEXT: STRSZ 0x00000010231# ELF32-NEXT: SYMENT 0x00000987232# ELF32-NEXT: INIT 0x00001000233# ELF32-NEXT: FINI 0x00001000234# ELF32-NEXT: SONAME U235# ELF32-NEXT: RPATH f236# ELF32-NEXT: SYMBOLIC 0x12345678237# ELF32-NEXT: REL 0x00001000238# ELF32-NEXT: RELSZ 0x00000010239# ELF32-NEXT: RELENT 0x00000123240# ELF32-NEXT: PLTREL 0x00000007241# ELF32-NEXT: DEBUG 0xfedcba09242# ELF32-NEXT: TEXTREL 0x11223344243# ELF32-NEXT: JMPREL 0x00001000244# ELF32-NEXT: BIND_NOW 0x88776655245# ELF32-NEXT: INIT_ARRAY 0x00001000246# ELF32-NEXT: FINI_ARRAY 0x00001000247# ELF32-NEXT: INIT_ARRAYSZ 0x00000010248# ELF32-NEXT: FINI_ARRAYSZ 0x00000010249# ELF32-NEXT: RUNPATH w250# ELF32-NEXT: FLAGS 0xaabbccdd251# ELF32-NEXT: PREINIT_ARRAY 0x00001000252# ELF32-NEXT: PREINIT_ARRAYSZ 0x00000010253# ELF32-NEXT: SYMTAB_SHNDX 0x00001000254# ELF32-NEXT: RELRSZ 0x00000010255# ELF32-NEXT: RELR 0x00001000256# ELF32-NEXT: RELRENT 0x00004321257# ELF32-NEXT: ANDROID_REL 0x00001000258# ELF32-NEXT: ANDROID_RELSZ 0x00000010259# ELF32-NEXT: ANDROID_RELA 0x00001000260# ELF32-NEXT: ANDROID_RELASZ 0x00000010261# ELF32-NEXT: ANDROID_RELR 0x00001000262# ELF32-NEXT: ANDROID_RELRSZ 0x00000010263# ELF32-NEXT: ANDROID_RELRENT 0x00001234264# ELF32-NEXT: GNU_HASH 0x00001000265# ELF32-NEXT: TLSDESC_PLT 0x00001000266# ELF32-NEXT: TLSDESC_GOT 0x00001000267# ELF32-NEXT: RELACOUNT 0x00000000268# ELF32-NEXT: RELCOUNT 0x00000000269# ELF32-NEXT: FLAGS_1 0x87654321270# ELF32-NEXT: VERSYM 0x00001000271# ELF32-NEXT: VERDEF 0x00001000272# ELF32-NEXT: VERDEFNUM 0x00000000273# ELF32-NEXT: VERNEED 0x00001000274# ELF32-NEXT: VERNEEDNUM 0x00000000275# ELF32-NEXT: AUXILIARY D276# ELF32-NEXT: FILTER U277# ELF32-NEXT: <unknown:>0x12345678 0x87654321278# ELF32-NEXT: <unknown:>0x6abcdef0 0x99887766279# ELF32-NEXT: <unknown:>0x76543210 0x55556666280 281--- !ELF282FileHeader:283 Class: ELFCLASS32284 Data: ELFDATA2LSB285 Type: ET_EXEC286 Machine: EM_386287Sections:288 - Name: .dynstr289 Type: SHT_STRTAB290 Address: 0x1000291 Size: 0x10292 Content: "004400550066007700"293 - Name: .dynamic294 Type: SHT_DYNAMIC295 Address: 0x1010296 Link: 1297 Entries:298 - Tag: DT_NEEDED299 Value: 0x1300 - Tag: DT_PLTRELSZ301 Value: 0x10302 - Tag: DT_PLTGOT303 Value: 0x1000304 - Tag: DT_HASH305 Value: 0x1000306 - Tag: DT_STRTAB307 Value: 0x1000308 - Tag: DT_SYMTAB309 Value: 0x1000310 - Tag: DT_RELA311 Value: 0x1000312 - Tag: DT_RELASZ313 Value: 0x10314 - Tag: DT_RELAENT315 Value: 0x789316 - Tag: DT_STRSZ317 Value: 0x10318 - Tag: DT_SYMENT319 Value: 0x987320 - Tag: DT_INIT321 Value: 0x1000322 - Tag: DT_FINI323 Value: 0x1000324 - Tag: DT_SONAME325 Value: 0x3326 - Tag: DT_RPATH327 Value: 0x5328 - Tag: DT_SYMBOLIC329 Value: 0x12345678330 - Tag: DT_REL331 Value: 0x1000332 - Tag: DT_RELSZ333 Value: 0x10334 - Tag: DT_RELENT335 Value: 0x123336 - Tag: DT_PLTREL337 Value: 0x7338 - Tag: DT_DEBUG339 Value: 0xfedcba09340 - Tag: DT_TEXTREL341 Value: 0x11223344342 - Tag: DT_JMPREL343 Value: 0x1000344 - Tag: DT_BIND_NOW345 Value: 0x88776655346 - Tag: DT_INIT_ARRAY347 Value: 0x1000348 - Tag: DT_FINI_ARRAY349 Value: 0x1000350 - Tag: DT_INIT_ARRAYSZ351 Value: 0x10352 - Tag: DT_FINI_ARRAYSZ353 Value: 0x10354 - Tag: DT_RUNPATH355 Value: 0x7356 - Tag: DT_FLAGS357 Value: 0xaabbccdd358 - Tag: DT_PREINIT_ARRAY359 Value: 0x1000360 - Tag: DT_PREINIT_ARRAYSZ361 Value: 0x10362 - Tag: DT_SYMTAB_SHNDX363 Value: 0x1000364 - Tag: DT_RELRSZ365 Value: 0x10366 - Tag: DT_RELR367 Value: 0x1000368 - Tag: DT_RELRENT369 Value: 0x4321370 - Tag: DT_ANDROID_REL371 Value: 0x1000372 - Tag: DT_ANDROID_RELSZ373 Value: 0x10374 - Tag: DT_ANDROID_RELA375 Value: 0x1000376 - Tag: DT_ANDROID_RELASZ377 Value: 0x10378 - Tag: DT_ANDROID_RELR379 Value: 0x1000380 - Tag: DT_ANDROID_RELRSZ381 Value: 0x10382 - Tag: DT_ANDROID_RELRENT383 Value: 0x1234384 - Tag: DT_GNU_HASH385 Value: 0x1000386 - Tag: DT_TLSDESC_PLT387 Value: 0x1000388 - Tag: DT_TLSDESC_GOT389 Value: 0x1000390 - Tag: DT_RELACOUNT391 Value: 0x0392 - Tag: DT_RELCOUNT393 Value: 0x0394 - Tag: DT_FLAGS_1395 Value: 0x87654321396 - Tag: DT_VERSYM397 Value: 0x1000398 - Tag: DT_VERDEF399 Value: 0x1000400 - Tag: DT_VERDEFNUM401 Value: 0x0402 - Tag: DT_VERNEED403 Value: 0x1000404 - Tag: DT_VERNEEDNUM405 Value: 0x0406 - Tag: DT_AUXILIARY407 Value: 0x1408 - Tag: DT_FILTER409 Value: 0x3410## Show behaviour for unknown values in special and unmarked ranges.411## An arbitrary unknown value outside of the special ranges.412 - Tag: 0x12345678413 Value: 0x87654321414## An OS specific tag.415 - Tag: 0x6abcdef0416 Value: 0x99887766417## A processor specific tags.418 - Tag: 0x76543210419 Value: 0x55556666420 - Tag: DT_NULL421 Value: 0x0422ProgramHeaders:423 - Type: PT_LOAD424 VAddr: 0x1000425 FirstSec: .dynstr426 LastSec: .dynamic427 - Type: PT_DYNAMIC428 VAddr: 0x1010429 FirstSec: .dynamic430 LastSec: .dynamic431 432## When printing the value column we want to have the minimal possible indentation.433## Use an arbitrary dynamic tag to demonstrate that.434 435# RUN: yaml2obj --docnum=3 %s -o %t3436# RUN: llvm-objdump -p %t3 | FileCheck %s --strict-whitespace --check-prefix=INDENT437 438# RUN: yaml2obj --docnum=4 %s -o %t4439# RUN: llvm-objdump -p %t4 | FileCheck %s --strict-whitespace --check-prefix=INDENT440 441# INDENT: {{^}}Dynamic Section:442# INDENT: {{^}} NEEDED 0x443 444--- !ELF445FileHeader:446 Class: ELFCLASS64447 Data: ELFDATA2LSB448 Type: ET_EXEC449 Machine: EM_X86_64450Sections:451 - Name: .dynamic452 Type: SHT_DYNAMIC453 Entries:454 - Tag: DT_NEEDED455 Value: 0x1456 - Tag: DT_NULL457 Value: 0x0458 459--- !ELF460FileHeader:461 Class: ELFCLASS32462 Data: ELFDATA2LSB463 Type: ET_EXEC464 Machine: EM_386465Sections:466 - Name: .dynamic467 Type: SHT_DYNAMIC468 Entries:469 - Tag: DT_NEEDED470 Value: 0x1471 - Tag: DT_NULL472 Value: 0x0473 474# RUN: yaml2obj --docnum=5 %s -o %t5475# RUN: llvm-objdump -p %t5 2>&1 | FileCheck %s --strict-whitespace -DFILE=%t5 --check-prefix=WARN476 477# WARN: Dynamic Section:478# WARN-NEXT: warning: '[[FILE]]': invalid string table offset479# WARN-NEXT: NEEDED 0x0000000000000010480# WARN-NEXT: NEEDED {{$}}481# WARN-NEXT: STRTAB 0x0000000000001000482# WARN-NEXT: STRSZ 0x0000000000000010483 484--- !ELF485FileHeader:486 Class: ELFCLASS64487 Data: ELFDATA2LSB488 Type: ET_EXEC489 Machine: EM_X86_64490Sections:491 - Name: .dynstr492 Type: SHT_STRTAB493 Address: 0x1000494 Size: 0x10495 - Name: .dynamic496 Type: SHT_DYNAMIC497 Entries:498 - Tag: DT_NEEDED499 Value: 0x10500 - Tag: DT_NEEDED501 Value: 0x0F502 - Tag: DT_STRTAB503 Value: 0x1000504 - Tag: DT_STRSZ505 Value: 0x10506 - Tag: DT_NULL507 Value: 0x0508ProgramHeaders:509 - Type: PT_LOAD510 VAddr: 0x1000511 FirstSec: .dynstr512 LastSec: .dynamic513 - Type: PT_DYNAMIC514 FirstSec: .dynamic515 LastSec: .dynamic516