xref: /llvm-project/llvm/test/tools/llvm-objdump/ELF/dynamic-section.test (revision a7a447be0fa934505f0c423fb97b91a68c1cc715)
16d026c89SFangrui Song# RUN: yaml2obj --docnum=1 %s -o %t1
26d026c89SFangrui Song# RUN: llvm-objdump -p %t1 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF64
36d026c89SFangrui Song
46d026c89SFangrui Song#      ELF64:Dynamic Section:
56d026c89SFangrui Song# ELF64-NEXT:  NEEDED               D
66d026c89SFangrui Song# ELF64-NEXT:  PLTRELSZ             0x0000000000000010
76d026c89SFangrui Song# ELF64-NEXT:  PLTGOT               0x0000000000001000
86d026c89SFangrui Song# ELF64-NEXT:  HASH                 0x0000000000001000
96d026c89SFangrui Song# ELF64-NEXT:  STRTAB               0x0000000000001000
106d026c89SFangrui Song# ELF64-NEXT:  SYMTAB               0x0000000000001000
116d026c89SFangrui Song# ELF64-NEXT:  RELA                 0x0000000000001000
126d026c89SFangrui Song# ELF64-NEXT:  RELASZ               0x0000000000000010
136d026c89SFangrui Song# ELF64-NEXT:  RELAENT              0x0000000000000789
146d026c89SFangrui Song# ELF64-NEXT:  STRSZ                0x0000000000000010
156d026c89SFangrui Song# ELF64-NEXT:  SYMENT               0x0000000000000987
166d026c89SFangrui Song# ELF64-NEXT:  INIT                 0x0000000000001000
176d026c89SFangrui Song# ELF64-NEXT:  FINI                 0x0000000000001000
186d026c89SFangrui Song# ELF64-NEXT:  SONAME               U
196d026c89SFangrui Song# ELF64-NEXT:  RPATH                f
206d026c89SFangrui Song# ELF64-NEXT:  SYMBOLIC             0x1234567890abcdef
216d026c89SFangrui Song# ELF64-NEXT:  REL                  0x0000000000001000
226d026c89SFangrui Song# ELF64-NEXT:  RELSZ                0x0000000000000010
236d026c89SFangrui Song# ELF64-NEXT:  RELENT               0x0000000000000123
246d026c89SFangrui Song# ELF64-NEXT:  PLTREL               0x0000000000000007
256d026c89SFangrui Song# ELF64-NEXT:  DEBUG                0xfedcba0987654321
266d026c89SFangrui Song# ELF64-NEXT:  TEXTREL              0x1122334455667788
276d026c89SFangrui Song# ELF64-NEXT:  JMPREL               0x0000000000001000
286d026c89SFangrui Song# ELF64-NEXT:  BIND_NOW             0x8877665544332211
296d026c89SFangrui Song# ELF64-NEXT:  INIT_ARRAY           0x0000000000001000
306d026c89SFangrui Song# ELF64-NEXT:  FINI_ARRAY           0x0000000000001000
316d026c89SFangrui Song# ELF64-NEXT:  INIT_ARRAYSZ         0x0000000000000010
326d026c89SFangrui Song# ELF64-NEXT:  FINI_ARRAYSZ         0x0000000000000010
336d026c89SFangrui Song# ELF64-NEXT:  RUNPATH              w
346d026c89SFangrui Song# ELF64-NEXT:  FLAGS                0xaabbccddeeff9900
356d026c89SFangrui Song# ELF64-NEXT:  PREINIT_ARRAY        0x0000000000001000
366d026c89SFangrui Song# ELF64-NEXT:  PREINIT_ARRAYSZ      0x0000000000000010
376d026c89SFangrui Song# ELF64-NEXT:  SYMTAB_SHNDX         0x0000000000001000
386d026c89SFangrui Song# ELF64-NEXT:  RELRSZ               0x0000000000000010
396d026c89SFangrui Song# ELF64-NEXT:  RELR                 0x0000000000001000
406d026c89SFangrui Song# ELF64-NEXT:  RELRENT              0x0000000000004321
416d026c89SFangrui Song# ELF64-NEXT:  ANDROID_REL          0x0000000000001000
426d026c89SFangrui Song# ELF64-NEXT:  ANDROID_RELSZ        0x0000000000000010
436d026c89SFangrui Song# ELF64-NEXT:  ANDROID_RELA         0x0000000000001000
446d026c89SFangrui Song# ELF64-NEXT:  ANDROID_RELASZ       0x0000000000000010
456d026c89SFangrui Song# ELF64-NEXT:  ANDROID_RELR         0x0000000000001000
466d026c89SFangrui Song# ELF64-NEXT:  ANDROID_RELRSZ       0x0000000000000010
476d026c89SFangrui Song# ELF64-NEXT:  ANDROID_RELRENT      0x0000000000001234
486d026c89SFangrui Song# ELF64-NEXT:  GNU_HASH             0x0000000000001000
496d026c89SFangrui Song# ELF64-NEXT:  TLSDESC_PLT          0x0000000000001000
506d026c89SFangrui Song# ELF64-NEXT:  TLSDESC_GOT          0x0000000000001000
516d026c89SFangrui Song# ELF64-NEXT:  RELACOUNT            0x0000000000000000
526d026c89SFangrui Song# ELF64-NEXT:  RELCOUNT             0x0000000000000000
536d026c89SFangrui Song# ELF64-NEXT:  FLAGS_1              0x0000000087654321
546d026c89SFangrui Song# ELF64-NEXT:  VERSYM               0x0000000000001000
556d026c89SFangrui Song# ELF64-NEXT:  VERDEF               0x0000000000001000
566d026c89SFangrui Song# ELF64-NEXT:  VERDEFNUM            0x0000000000000000
576d026c89SFangrui Song# ELF64-NEXT:  VERNEED              0x0000000000001000
586d026c89SFangrui Song# ELF64-NEXT:  VERNEEDNUM           0x0000000000000000
596d026c89SFangrui Song# ELF64-NEXT:  AUXILIARY            D
606d026c89SFangrui Song# ELF64-NEXT:  FILTER               U
616d026c89SFangrui Song# ELF64-NEXT:  <unknown:>0x12345678 0x8765432187654321
626d026c89SFangrui Song# ELF64-NEXT:  <unknown:>0x6abcdef0 0x9988776655443322
636d026c89SFangrui Song# ELF64-NEXT:  <unknown:>0x76543210 0x5555666677778888
646d026c89SFangrui Song# ELF64-NOT:{{.}}
656d026c89SFangrui Song
666d026c89SFangrui Song--- !ELF
676d026c89SFangrui SongFileHeader:
686d026c89SFangrui Song  Class:   ELFCLASS64
696d026c89SFangrui Song  Data:    ELFDATA2LSB
706d026c89SFangrui Song  Type:    ET_EXEC
716d026c89SFangrui Song  Machine: EM_X86_64
726d026c89SFangrui SongSections:
736d026c89SFangrui Song  - Name:    .dynstr
746d026c89SFangrui Song    Type:    SHT_STRTAB
756d026c89SFangrui Song    Address: 0x1000
766d026c89SFangrui Song    Size:    0x10
776d026c89SFangrui Song    Content: "004400550066007700"
786d026c89SFangrui Song  - Name:    .dynamic
796d026c89SFangrui Song    Type:    SHT_DYNAMIC
806d026c89SFangrui Song    Address: 0x1010
816d026c89SFangrui Song    Link:    1
826d026c89SFangrui Song    Entries:
836d026c89SFangrui Song     - Tag:   DT_NEEDED
846d026c89SFangrui Song       Value: 0x1
856d026c89SFangrui Song     - Tag:   DT_PLTRELSZ
866d026c89SFangrui Song       Value: 0x10
876d026c89SFangrui Song     - Tag:   DT_PLTGOT
886d026c89SFangrui Song       Value: 0x1000
896d026c89SFangrui Song     - Tag:   DT_HASH
906d026c89SFangrui Song       Value: 0x1000
916d026c89SFangrui Song     - Tag:   DT_STRTAB
926d026c89SFangrui Song       Value: 0x1000
936d026c89SFangrui Song     - Tag:   DT_SYMTAB
946d026c89SFangrui Song       Value: 0x1000
956d026c89SFangrui Song     - Tag:   DT_RELA
966d026c89SFangrui Song       Value: 0x1000
976d026c89SFangrui Song     - Tag:   DT_RELASZ
986d026c89SFangrui Song       Value: 0x10
996d026c89SFangrui Song     - Tag:   DT_RELAENT
1006d026c89SFangrui Song       Value: 0x789
1016d026c89SFangrui Song     - Tag:   DT_STRSZ
1026d026c89SFangrui Song       Value: 0x10
1036d026c89SFangrui Song     - Tag:   DT_SYMENT
1046d026c89SFangrui Song       Value: 0x987
1056d026c89SFangrui Song     - Tag:   DT_INIT
1066d026c89SFangrui Song       Value: 0x1000
1076d026c89SFangrui Song     - Tag:   DT_FINI
1086d026c89SFangrui Song       Value: 0x1000
1096d026c89SFangrui Song     - Tag:   DT_SONAME
1106d026c89SFangrui Song       Value: 0x3
1116d026c89SFangrui Song     - Tag:   DT_RPATH
1126d026c89SFangrui Song       Value: 0x5
1136d026c89SFangrui Song     - Tag:   DT_SYMBOLIC
1146d026c89SFangrui Song       Value: 0x1234567890abcdef
1156d026c89SFangrui Song     - Tag:   DT_REL
1166d026c89SFangrui Song       Value: 0x1000
1176d026c89SFangrui Song     - Tag:   DT_RELSZ
1186d026c89SFangrui Song       Value: 0x10
1196d026c89SFangrui Song     - Tag:   DT_RELENT
1206d026c89SFangrui Song       Value: 0x123
1216d026c89SFangrui Song     - Tag:   DT_PLTREL
1226d026c89SFangrui Song       Value: 0x7
1236d026c89SFangrui Song     - Tag:   DT_DEBUG
1246d026c89SFangrui Song       Value: 0xfedcba0987654321
1256d026c89SFangrui Song     - Tag:   DT_TEXTREL
1266d026c89SFangrui Song       Value: 0x1122334455667788
1276d026c89SFangrui Song     - Tag:   DT_JMPREL
1286d026c89SFangrui Song       Value: 0x1000
1296d026c89SFangrui Song     - Tag:   DT_BIND_NOW
1306d026c89SFangrui Song       Value: 0x8877665544332211
1316d026c89SFangrui Song     - Tag:   DT_INIT_ARRAY
1326d026c89SFangrui Song       Value: 0x1000
1336d026c89SFangrui Song     - Tag:   DT_FINI_ARRAY
1346d026c89SFangrui Song       Value: 0x1000
1356d026c89SFangrui Song     - Tag:   DT_INIT_ARRAYSZ
1366d026c89SFangrui Song       Value: 0x10
1376d026c89SFangrui Song     - Tag:   DT_FINI_ARRAYSZ
1386d026c89SFangrui Song       Value: 0x10
1396d026c89SFangrui Song     - Tag:   DT_RUNPATH
1406d026c89SFangrui Song       Value: 0x7
1416d026c89SFangrui Song     - Tag:   DT_FLAGS
1426d026c89SFangrui Song       Value: 0xaabbccddeeff9900
1436d026c89SFangrui Song     - Tag:   DT_PREINIT_ARRAY
1446d026c89SFangrui Song       Value: 0x1000
1456d026c89SFangrui Song     - Tag:   DT_PREINIT_ARRAYSZ
1466d026c89SFangrui Song       Value: 0x10
1476d026c89SFangrui Song     - Tag:   DT_SYMTAB_SHNDX
1486d026c89SFangrui Song       Value: 0x1000
1496d026c89SFangrui Song     - Tag:   DT_RELRSZ
1506d026c89SFangrui Song       Value: 0x10
1516d026c89SFangrui Song     - Tag:   DT_RELR
1526d026c89SFangrui Song       Value: 0x1000
1536d026c89SFangrui Song     - Tag:   DT_RELRENT
1546d026c89SFangrui Song       Value: 0x4321
1556d026c89SFangrui Song     - Tag:   DT_ANDROID_REL
1566d026c89SFangrui Song       Value: 0x1000
1576d026c89SFangrui Song     - Tag:   DT_ANDROID_RELSZ
1586d026c89SFangrui Song       Value: 0x10
1596d026c89SFangrui Song     - Tag:   DT_ANDROID_RELA
1606d026c89SFangrui Song       Value: 0x1000
1616d026c89SFangrui Song     - Tag:   DT_ANDROID_RELASZ
1626d026c89SFangrui Song       Value: 0x10
1636d026c89SFangrui Song     - Tag:   DT_ANDROID_RELR
1646d026c89SFangrui Song       Value: 0x1000
1656d026c89SFangrui Song     - Tag:   DT_ANDROID_RELRSZ
1666d026c89SFangrui Song       Value: 0x10
1676d026c89SFangrui Song     - Tag:   DT_ANDROID_RELRENT
1686d026c89SFangrui Song       Value: 0x1234
1696d026c89SFangrui Song     - Tag:   DT_GNU_HASH
1706d026c89SFangrui Song       Value: 0x1000
1716d026c89SFangrui Song     - Tag:   DT_TLSDESC_PLT
1726d026c89SFangrui Song       Value: 0x1000
1736d026c89SFangrui Song     - Tag:   DT_TLSDESC_GOT
1746d026c89SFangrui Song       Value: 0x1000
1756d026c89SFangrui Song     - Tag:   DT_RELACOUNT
1766d026c89SFangrui Song       Value: 0x0
1776d026c89SFangrui Song     - Tag:   DT_RELCOUNT
1786d026c89SFangrui Song       Value: 0x0
1796d026c89SFangrui Song     - Tag:   DT_FLAGS_1
1806d026c89SFangrui Song       Value: 0x87654321
1816d026c89SFangrui Song     - Tag:   DT_VERSYM
1826d026c89SFangrui Song       Value: 0x1000
1836d026c89SFangrui Song     - Tag:   DT_VERDEF
1846d026c89SFangrui Song       Value: 0x1000
1856d026c89SFangrui Song     - Tag:   DT_VERDEFNUM
1866d026c89SFangrui Song       Value: 0x0
1876d026c89SFangrui Song     - Tag:   DT_VERNEED
1886d026c89SFangrui Song       Value: 0x1000
1896d026c89SFangrui Song     - Tag:   DT_VERNEEDNUM
1906d026c89SFangrui Song       Value: 0x0
1916d026c89SFangrui Song     - Tag:   DT_AUXILIARY
1926d026c89SFangrui Song       Value: 0x1
1936d026c89SFangrui Song     - Tag:   DT_FILTER
1946d026c89SFangrui Song       Value: 0x3
1956d026c89SFangrui Song## Show behaviour for unknown values in special and unmarked ranges.
1966d026c89SFangrui Song## An arbitrary unknown value outside of the special ranges.
1976d026c89SFangrui Song     - Tag:   0x12345678
1986d026c89SFangrui Song       Value: 0x8765432187654321
1996d026c89SFangrui Song## An OS specific tag.
2006d026c89SFangrui Song     - Tag:   0x6abcdef0
2016d026c89SFangrui Song       Value: 0x9988776655443322
2026d026c89SFangrui Song## A processor specific tags.
2036d026c89SFangrui Song     - Tag:   0x76543210
2046d026c89SFangrui Song       Value: 0x5555666677778888
2056d026c89SFangrui Song     - Tag:   DT_NULL
2066d026c89SFangrui Song       Value: 0x0
2076d026c89SFangrui SongProgramHeaders:
2086d026c89SFangrui Song  - Type:     PT_LOAD
2096d026c89SFangrui Song    VAddr:    0x1000
210*a7a447beSGeorgii Rymar    FirstSec: .dynstr
211*a7a447beSGeorgii Rymar    LastSec:  .dynamic
2126d026c89SFangrui Song  - Type:     PT_DYNAMIC
2136d026c89SFangrui Song    VAddr:    0x1010
214*a7a447beSGeorgii Rymar    FirstSec: .dynamic
215*a7a447beSGeorgii Rymar    LastSec:  .dynamic
2166d026c89SFangrui Song
2176d026c89SFangrui Song# RUN: yaml2obj --docnum=2 %s -o %t2
2186d026c89SFangrui Song# RUN: llvm-objdump -p %t2 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF32
2196d026c89SFangrui Song
2206d026c89SFangrui Song#      ELF32:Dynamic Section:
2216d026c89SFangrui Song# ELF32-NEXT:  NEEDED               D
2226d026c89SFangrui Song# ELF32-NEXT:  PLTRELSZ             0x00000010
2236d026c89SFangrui Song# ELF32-NEXT:  PLTGOT               0x00001000
2246d026c89SFangrui Song# ELF32-NEXT:  HASH                 0x00001000
2256d026c89SFangrui Song# ELF32-NEXT:  STRTAB               0x00001000
2266d026c89SFangrui Song# ELF32-NEXT:  SYMTAB               0x00001000
2276d026c89SFangrui Song# ELF32-NEXT:  RELA                 0x00001000
2286d026c89SFangrui Song# ELF32-NEXT:  RELASZ               0x00000010
2296d026c89SFangrui Song# ELF32-NEXT:  RELAENT              0x00000789
2306d026c89SFangrui Song# ELF32-NEXT:  STRSZ                0x00000010
2316d026c89SFangrui Song# ELF32-NEXT:  SYMENT               0x00000987
2326d026c89SFangrui Song# ELF32-NEXT:  INIT                 0x00001000
2336d026c89SFangrui Song# ELF32-NEXT:  FINI                 0x00001000
2346d026c89SFangrui Song# ELF32-NEXT:  SONAME               U
2356d026c89SFangrui Song# ELF32-NEXT:  RPATH                f
2366d026c89SFangrui Song# ELF32-NEXT:  SYMBOLIC             0x12345678
2376d026c89SFangrui Song# ELF32-NEXT:  REL                  0x00001000
2386d026c89SFangrui Song# ELF32-NEXT:  RELSZ                0x00000010
2396d026c89SFangrui Song# ELF32-NEXT:  RELENT               0x00000123
2406d026c89SFangrui Song# ELF32-NEXT:  PLTREL               0x00000007
2416d026c89SFangrui Song# ELF32-NEXT:  DEBUG                0xfedcba09
2426d026c89SFangrui Song# ELF32-NEXT:  TEXTREL              0x11223344
2436d026c89SFangrui Song# ELF32-NEXT:  JMPREL               0x00001000
2446d026c89SFangrui Song# ELF32-NEXT:  BIND_NOW             0x88776655
2456d026c89SFangrui Song# ELF32-NEXT:  INIT_ARRAY           0x00001000
2466d026c89SFangrui Song# ELF32-NEXT:  FINI_ARRAY           0x00001000
2476d026c89SFangrui Song# ELF32-NEXT:  INIT_ARRAYSZ         0x00000010
2486d026c89SFangrui Song# ELF32-NEXT:  FINI_ARRAYSZ         0x00000010
2496d026c89SFangrui Song# ELF32-NEXT:  RUNPATH              w
2506d026c89SFangrui Song# ELF32-NEXT:  FLAGS                0xaabbccdd
2516d026c89SFangrui Song# ELF32-NEXT:  PREINIT_ARRAY        0x00001000
2526d026c89SFangrui Song# ELF32-NEXT:  PREINIT_ARRAYSZ      0x00000010
2536d026c89SFangrui Song# ELF32-NEXT:  SYMTAB_SHNDX         0x00001000
2546d026c89SFangrui Song# ELF32-NEXT:  RELRSZ               0x00000010
2556d026c89SFangrui Song# ELF32-NEXT:  RELR                 0x00001000
2566d026c89SFangrui Song# ELF32-NEXT:  RELRENT              0x00004321
2576d026c89SFangrui Song# ELF32-NEXT:  ANDROID_REL          0x00001000
2586d026c89SFangrui Song# ELF32-NEXT:  ANDROID_RELSZ        0x00000010
2596d026c89SFangrui Song# ELF32-NEXT:  ANDROID_RELA         0x00001000
2606d026c89SFangrui Song# ELF32-NEXT:  ANDROID_RELASZ       0x00000010
2616d026c89SFangrui Song# ELF32-NEXT:  ANDROID_RELR         0x00001000
2626d026c89SFangrui Song# ELF32-NEXT:  ANDROID_RELRSZ       0x00000010
2636d026c89SFangrui Song# ELF32-NEXT:  ANDROID_RELRENT      0x00001234
2646d026c89SFangrui Song# ELF32-NEXT:  GNU_HASH             0x00001000
2656d026c89SFangrui Song# ELF32-NEXT:  TLSDESC_PLT          0x00001000
2666d026c89SFangrui Song# ELF32-NEXT:  TLSDESC_GOT          0x00001000
2676d026c89SFangrui Song# ELF32-NEXT:  RELACOUNT            0x00000000
2686d026c89SFangrui Song# ELF32-NEXT:  RELCOUNT             0x00000000
2696d026c89SFangrui Song# ELF32-NEXT:  FLAGS_1              0x87654321
2706d026c89SFangrui Song# ELF32-NEXT:  VERSYM               0x00001000
2716d026c89SFangrui Song# ELF32-NEXT:  VERDEF               0x00001000
2726d026c89SFangrui Song# ELF32-NEXT:  VERDEFNUM            0x00000000
2736d026c89SFangrui Song# ELF32-NEXT:  VERNEED              0x00001000
2746d026c89SFangrui Song# ELF32-NEXT:  VERNEEDNUM           0x00000000
2756d026c89SFangrui Song# ELF32-NEXT:  AUXILIARY            D
2766d026c89SFangrui Song# ELF32-NEXT:  FILTER               U
2776d026c89SFangrui Song# ELF32-NEXT:  <unknown:>0x12345678 0x87654321
2786d026c89SFangrui Song# ELF32-NEXT:  <unknown:>0x6abcdef0 0x99887766
2796d026c89SFangrui Song# ELF32-NEXT:  <unknown:>0x76543210 0x55556666
2806d026c89SFangrui Song
2816d026c89SFangrui Song--- !ELF
2826d026c89SFangrui SongFileHeader:
2836d026c89SFangrui Song  Class:   ELFCLASS32
2846d026c89SFangrui Song  Data:    ELFDATA2LSB
2856d026c89SFangrui Song  Type:    ET_EXEC
2866d026c89SFangrui Song  Machine: EM_386
2876d026c89SFangrui SongSections:
2886d026c89SFangrui Song  - Name:    .dynstr
2896d026c89SFangrui Song    Type:    SHT_STRTAB
2906d026c89SFangrui Song    Address: 0x1000
2916d026c89SFangrui Song    Size:    0x10
2926d026c89SFangrui Song    Content: "004400550066007700"
2936d026c89SFangrui Song  - Name:    .dynamic
2946d026c89SFangrui Song    Type:    SHT_DYNAMIC
2956d026c89SFangrui Song    Address: 0x1010
2966d026c89SFangrui Song    Link:    1
2976d026c89SFangrui Song    Entries:
2986d026c89SFangrui Song     - Tag:   DT_NEEDED
2996d026c89SFangrui Song       Value: 0x1
3006d026c89SFangrui Song     - Tag:   DT_PLTRELSZ
3016d026c89SFangrui Song       Value: 0x10
3026d026c89SFangrui Song     - Tag:   DT_PLTGOT
3036d026c89SFangrui Song       Value: 0x1000
3046d026c89SFangrui Song     - Tag:   DT_HASH
3056d026c89SFangrui Song       Value: 0x1000
3066d026c89SFangrui Song     - Tag:   DT_STRTAB
3076d026c89SFangrui Song       Value: 0x1000
3086d026c89SFangrui Song     - Tag:   DT_SYMTAB
3096d026c89SFangrui Song       Value: 0x1000
3106d026c89SFangrui Song     - Tag:   DT_RELA
3116d026c89SFangrui Song       Value: 0x1000
3126d026c89SFangrui Song     - Tag:   DT_RELASZ
3136d026c89SFangrui Song       Value: 0x10
3146d026c89SFangrui Song     - Tag:   DT_RELAENT
3156d026c89SFangrui Song       Value: 0x789
3166d026c89SFangrui Song     - Tag:   DT_STRSZ
3176d026c89SFangrui Song       Value: 0x10
3186d026c89SFangrui Song     - Tag:   DT_SYMENT
3196d026c89SFangrui Song       Value: 0x987
3206d026c89SFangrui Song     - Tag:   DT_INIT
3216d026c89SFangrui Song       Value: 0x1000
3226d026c89SFangrui Song     - Tag:   DT_FINI
3236d026c89SFangrui Song       Value: 0x1000
3246d026c89SFangrui Song     - Tag:   DT_SONAME
3256d026c89SFangrui Song       Value: 0x3
3266d026c89SFangrui Song     - Tag:   DT_RPATH
3276d026c89SFangrui Song       Value: 0x5
3286d026c89SFangrui Song     - Tag:   DT_SYMBOLIC
3296d026c89SFangrui Song       Value: 0x12345678
3306d026c89SFangrui Song     - Tag:   DT_REL
3316d026c89SFangrui Song       Value: 0x1000
3326d026c89SFangrui Song     - Tag:   DT_RELSZ
3336d026c89SFangrui Song       Value: 0x10
3346d026c89SFangrui Song     - Tag:   DT_RELENT
3356d026c89SFangrui Song       Value: 0x123
3366d026c89SFangrui Song     - Tag:   DT_PLTREL
3376d026c89SFangrui Song       Value: 0x7
3386d026c89SFangrui Song     - Tag:   DT_DEBUG
3396d026c89SFangrui Song       Value: 0xfedcba09
3406d026c89SFangrui Song     - Tag:   DT_TEXTREL
3416d026c89SFangrui Song       Value: 0x11223344
3426d026c89SFangrui Song     - Tag:   DT_JMPREL
3436d026c89SFangrui Song       Value: 0x1000
3446d026c89SFangrui Song     - Tag:   DT_BIND_NOW
3456d026c89SFangrui Song       Value: 0x88776655
3466d026c89SFangrui Song     - Tag:   DT_INIT_ARRAY
3476d026c89SFangrui Song       Value: 0x1000
3486d026c89SFangrui Song     - Tag:   DT_FINI_ARRAY
3496d026c89SFangrui Song       Value: 0x1000
3506d026c89SFangrui Song     - Tag:   DT_INIT_ARRAYSZ
3516d026c89SFangrui Song       Value: 0x10
3526d026c89SFangrui Song     - Tag:   DT_FINI_ARRAYSZ
3536d026c89SFangrui Song       Value: 0x10
3546d026c89SFangrui Song     - Tag:   DT_RUNPATH
3556d026c89SFangrui Song       Value: 0x7
3566d026c89SFangrui Song     - Tag:   DT_FLAGS
3576d026c89SFangrui Song       Value: 0xaabbccdd
3586d026c89SFangrui Song     - Tag:   DT_PREINIT_ARRAY
3596d026c89SFangrui Song       Value: 0x1000
3606d026c89SFangrui Song     - Tag:   DT_PREINIT_ARRAYSZ
3616d026c89SFangrui Song       Value: 0x10
3626d026c89SFangrui Song     - Tag:   DT_SYMTAB_SHNDX
3636d026c89SFangrui Song       Value: 0x1000
3646d026c89SFangrui Song     - Tag:   DT_RELRSZ
3656d026c89SFangrui Song       Value: 0x10
3666d026c89SFangrui Song     - Tag:   DT_RELR
3676d026c89SFangrui Song       Value: 0x1000
3686d026c89SFangrui Song     - Tag:   DT_RELRENT
3696d026c89SFangrui Song       Value: 0x4321
3706d026c89SFangrui Song     - Tag:   DT_ANDROID_REL
3716d026c89SFangrui Song       Value: 0x1000
3726d026c89SFangrui Song     - Tag:   DT_ANDROID_RELSZ
3736d026c89SFangrui Song       Value: 0x10
3746d026c89SFangrui Song     - Tag:   DT_ANDROID_RELA
3756d026c89SFangrui Song       Value: 0x1000
3766d026c89SFangrui Song     - Tag:   DT_ANDROID_RELASZ
3776d026c89SFangrui Song       Value: 0x10
3786d026c89SFangrui Song     - Tag:   DT_ANDROID_RELR
3796d026c89SFangrui Song       Value: 0x1000
3806d026c89SFangrui Song     - Tag:   DT_ANDROID_RELRSZ
3816d026c89SFangrui Song       Value: 0x10
3826d026c89SFangrui Song     - Tag:   DT_ANDROID_RELRENT
3836d026c89SFangrui Song       Value: 0x1234
3846d026c89SFangrui Song     - Tag:   DT_GNU_HASH
3856d026c89SFangrui Song       Value: 0x1000
3866d026c89SFangrui Song     - Tag:   DT_TLSDESC_PLT
3876d026c89SFangrui Song       Value: 0x1000
3886d026c89SFangrui Song     - Tag:   DT_TLSDESC_GOT
3896d026c89SFangrui Song       Value: 0x1000
3906d026c89SFangrui Song     - Tag:   DT_RELACOUNT
3916d026c89SFangrui Song       Value: 0x0
3926d026c89SFangrui Song     - Tag:   DT_RELCOUNT
3936d026c89SFangrui Song       Value: 0x0
3946d026c89SFangrui Song     - Tag:   DT_FLAGS_1
3956d026c89SFangrui Song       Value: 0x87654321
3966d026c89SFangrui Song     - Tag:   DT_VERSYM
3976d026c89SFangrui Song       Value: 0x1000
3986d026c89SFangrui Song     - Tag:   DT_VERDEF
3996d026c89SFangrui Song       Value: 0x1000
4006d026c89SFangrui Song     - Tag:   DT_VERDEFNUM
4016d026c89SFangrui Song       Value: 0x0
4026d026c89SFangrui Song     - Tag:   DT_VERNEED
4036d026c89SFangrui Song       Value: 0x1000
4046d026c89SFangrui Song     - Tag:   DT_VERNEEDNUM
4056d026c89SFangrui Song       Value: 0x0
4066d026c89SFangrui Song     - Tag:   DT_AUXILIARY
4076d026c89SFangrui Song       Value: 0x1
4086d026c89SFangrui Song     - Tag:   DT_FILTER
4096d026c89SFangrui Song       Value: 0x3
4106d026c89SFangrui Song## Show behaviour for unknown values in special and unmarked ranges.
4116d026c89SFangrui Song## An arbitrary unknown value outside of the special ranges.
4126d026c89SFangrui Song     - Tag:   0x12345678
4136d026c89SFangrui Song       Value: 0x87654321
4146d026c89SFangrui Song## An OS specific tag.
4156d026c89SFangrui Song     - Tag:   0x6abcdef0
4166d026c89SFangrui Song       Value: 0x99887766
4176d026c89SFangrui Song## A processor specific tags.
4186d026c89SFangrui Song     - Tag:   0x76543210
4196d026c89SFangrui Song       Value: 0x55556666
4206d026c89SFangrui Song     - Tag:   DT_NULL
4216d026c89SFangrui Song       Value: 0x0
4226d026c89SFangrui SongProgramHeaders:
4236d026c89SFangrui Song  - Type:     PT_LOAD
4246d026c89SFangrui Song    VAddr:    0x1000
425*a7a447beSGeorgii Rymar    FirstSec: .dynstr
426*a7a447beSGeorgii Rymar    LastSec:  .dynamic
4276d026c89SFangrui Song  - Type:     PT_DYNAMIC
4286d026c89SFangrui Song    VAddr:    0x1010
429*a7a447beSGeorgii Rymar    FirstSec: .dynamic
430*a7a447beSGeorgii Rymar    LastSec:  .dynamic
4316d026c89SFangrui Song
4326d026c89SFangrui Song## When printing the value column we want to have the minimal possible indentation.
4336d026c89SFangrui Song## Use an arbitrary dynamic tag to demonstrate that.
4346d026c89SFangrui Song
4356d026c89SFangrui Song# RUN: yaml2obj --docnum=3 %s -o %t3
4366d026c89SFangrui Song# RUN: llvm-objdump -p %t3 | FileCheck %s --strict-whitespace --check-prefix=INDENT
4376d026c89SFangrui Song
4386d026c89SFangrui Song# RUN: yaml2obj --docnum=4 %s -o %t4
4396d026c89SFangrui Song# RUN: llvm-objdump -p %t4 | FileCheck %s --strict-whitespace --check-prefix=INDENT
4406d026c89SFangrui Song
4416d026c89SFangrui Song# INDENT: {{^}}Dynamic Section:
4426d026c89SFangrui Song# INDENT: {{^}}  NEEDED 0x
4436d026c89SFangrui Song
4446d026c89SFangrui Song--- !ELF
4456d026c89SFangrui SongFileHeader:
4466d026c89SFangrui Song  Class:   ELFCLASS64
4476d026c89SFangrui Song  Data:    ELFDATA2LSB
4486d026c89SFangrui Song  Type:    ET_EXEC
4496d026c89SFangrui Song  Machine: EM_X86_64
4506d026c89SFangrui SongSections:
4516d026c89SFangrui Song  - Name: .dynamic
4526d026c89SFangrui Song    Type: SHT_DYNAMIC
4536d026c89SFangrui Song    Entries:
4546d026c89SFangrui Song     - Tag:   DT_NEEDED
4556d026c89SFangrui Song       Value: 0x1
4566d026c89SFangrui Song     - Tag:   DT_NULL
4576d026c89SFangrui Song       Value: 0x0
4586d026c89SFangrui Song
4596d026c89SFangrui Song--- !ELF
4606d026c89SFangrui SongFileHeader:
4616d026c89SFangrui Song  Class:   ELFCLASS32
4626d026c89SFangrui Song  Data:    ELFDATA2LSB
4636d026c89SFangrui Song  Type:    ET_EXEC
4646d026c89SFangrui Song  Machine: EM_386
4656d026c89SFangrui SongSections:
4666d026c89SFangrui Song  - Name: .dynamic
4676d026c89SFangrui Song    Type: SHT_DYNAMIC
4686d026c89SFangrui Song    Entries:
4696d026c89SFangrui Song     - Tag:   DT_NEEDED
4706d026c89SFangrui Song       Value: 0x1
4716d026c89SFangrui Song     - Tag:   DT_NULL
4726d026c89SFangrui Song       Value: 0x0
473