brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.9 KiB · b84a6e5 Raw
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