144 lines · plain
1# RUN: yaml2obj --docnum=1 %s -o %t2# RUN: llvm-ifs --input-format=ELF --output-ifs=- %t | FileCheck %s -DTARGET="{ ObjectFormat: ELF, Arch: x86_64, Endianness: little, BitWidth: 64 }"3# RUN: llvm-ifs --input-format=ELF --output-ifs=- --hint-ifs-target="x86_64-linux-gnu" %t | FileCheck %s -DTARGET="x86_64-linux-gnu"4 5--- !ELF6FileHeader:7 Class: ELFCLASS648 Data: ELFDATA2LSB9 Type: ET_DYN10 Machine: EM_X86_6411Sections:12 - Name: .dynstr13 Type: SHT_STRTAB14 Flags: [ SHF_ALLOC ]15 Address: 0x000016 Content: "00"17 - Name: .dynamic18 Type: SHT_DYNAMIC19 Flags: [ SHF_ALLOC ]20 Address: 0x000000000000000821 Link: .dynstr22 AddressAlign: 0x000000000000000823 EntSize: 0x000000000000001024 Entries:25 - Tag: DT_STRSZ26 Value: 0x000000000000000127 - Tag: DT_STRTAB28 Value: 0x000000000000000029 - Tag: DT_SYMTAB30 Value: 0x000000000000000031 - Tag: DT_NULL32 Value: 0x000000000000000033ProgramHeaders:34 - Type: PT_LOAD35 Flags: [ PF_R ]36 VAddr: 0x000037 Align: 838 FirstSec: .dynstr39 LastSec: .dynamic40 - Type: PT_DYNAMIC41 Flags: [ PF_X, PF_R ]42 VAddr: 0x000843 FirstSec: .dynamic44 LastSec: .dynamic45 46# CHECK: --- !ifs-v147# CHECK-NEXT: IfsVersion: {{[1-9]\d*\.(0|([1-9]\d*))}}48# CHECK-NEXT: Target: [[TARGET]]49# CHECK-NEXT: Symbols: []50# CHECK-NEXT: ...51 52# HINTERR: error: Triple hint does not match the actual [[MSG]]53 54# RUN: yaml2obj --docnum=1 %s -o %t55# RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe --hint-ifs-target="aarch64-linux-gnu" %t 2>&1 | FileCheck %s -DMSG=architecture --check-prefix=HINTERR56 57--- !ELF58FileHeader:59 Class: ELFCLASS6460 Data: ELFDATA2MSB61 Type: ET_DYN62 Machine: EM_X86_6463Sections:64 - Name: .dynstr65 Type: SHT_STRTAB66 Flags: [ SHF_ALLOC ]67 Address: 0x000068 Content: "00"69 - Name: .dynamic70 Type: SHT_DYNAMIC71 Flags: [ SHF_ALLOC ]72 Address: 0x000000000000000873 Link: .dynstr74 AddressAlign: 0x000000000000000875 EntSize: 0x000000000000001076 Entries:77 - Tag: DT_STRSZ78 Value: 0x000000000000000179 - Tag: DT_STRTAB80 Value: 0x000000000000000081 - Tag: DT_SYMTAB82 Value: 0x000000000000000083 - Tag: DT_NULL84 Value: 0x000000000000000085ProgramHeaders:86 - Type: PT_LOAD87 Flags: [ PF_R ]88 VAddr: 0x000089 Align: 890 FirstSec: .dynstr91 LastSec: .dynamic92 - Type: PT_DYNAMIC93 Flags: [ PF_X, PF_R ]94 VAddr: 0x000895 FirstSec: .dynamic96 LastSec: .dynamic97 98# RUN: yaml2obj --docnum=2 %s -o %t99# RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe --hint-ifs-target="x86_64-unknown-linux-gnu" %t 2>&1 | FileCheck %s -DMSG="endianness" --check-prefix=HINTERR100 101--- !ELF102FileHeader:103 Class: ELFCLASS32104 Data: ELFDATA2LSB105 Type: ET_DYN106 Machine: EM_X86_64107Sections:108 - Name: .dynstr109 Type: SHT_STRTAB110 Flags: [ SHF_ALLOC ]111 Address: 0x0000112 Content: "00"113 - Name: .dynamic114 Type: SHT_DYNAMIC115 Flags: [ SHF_ALLOC ]116 Address: 0x0000000000000008117 Link: .dynstr118 AddressAlign: 0x0000000000000008119 EntSize: 0x0000000000000010120 Entries:121 - Tag: DT_STRSZ122 Value: 0x0000000000000001123 - Tag: DT_STRTAB124 Value: 0x0000000000000000125 - Tag: DT_SYMTAB126 Value: 0x0000000000000000127 - Tag: DT_NULL128 Value: 0x0000000000000000129ProgramHeaders:130 - Type: PT_LOAD131 Flags: [ PF_R ]132 VAddr: 0x0000133 Align: 8134 FirstSec: .dynstr135 LastSec: .dynamic136 - Type: PT_DYNAMIC137 Flags: [ PF_X, PF_R ]138 VAddr: 0x0008139 FirstSec: .dynamic140 LastSec: .dynamic141 142# RUN: yaml2obj --docnum=3 %s -o %t143# RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe --hint-ifs-target="x86_64-unknown-linux-gnu" %t 2>&1 | FileCheck %s -DMSG="bit width" --check-prefix=HINTERR144