| # RUN: yaml2obj --docnum=1 %s -o %t |
| # RUN: llvm-ifs --input-format=ELF --output-format=IFS --output=- %t | FileCheck %s -DTARGET="{ ObjectFormat: ELF, Arch: x86_64, Endianness: little, BitWidth: 64 }" |
| # RUN: llvm-ifs --input-format=ELF --output-format=IFS --output=- --hint-ifs-target="x86_64-linux-gnu" %t | FileCheck %s -DTARGET="x86_64-linux-gnu" |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Flags: [ SHF_ALLOC ] |
| Address: 0x0000 |
| Content: "00" |
| - Name: .dynamic |
| Type: SHT_DYNAMIC |
| Flags: [ SHF_ALLOC ] |
| Address: 0x0000000000000008 |
| Link: .dynstr |
| AddressAlign: 0x0000000000000008 |
| EntSize: 0x0000000000000010 |
| Entries: |
| - Tag: DT_STRSZ |
| Value: 0x0000000000000001 |
| - Tag: DT_STRTAB |
| Value: 0x0000000000000000 |
| - Tag: DT_SYMTAB |
| Value: 0x0000000000000000 |
| - Tag: DT_NULL |
| Value: 0x0000000000000000 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| Flags: [ PF_R ] |
| VAddr: 0x0000 |
| Align: 8 |
| FirstSec: .dynstr |
| LastSec: .dynamic |
| - Type: PT_DYNAMIC |
| Flags: [ PF_X, PF_R ] |
| VAddr: 0x0008 |
| FirstSec: .dynamic |
| LastSec: .dynamic |
| |
| # CHECK: --- !ifs-v1 |
| # CHECK-NEXT: IfsVersion: {{[1-9]\d*\.(0|([1-9]\d*))}} |
| # CHECK-NEXT: Target: [[TARGET]] |
| # CHECK-NEXT: Symbols: [] |
| # CHECK-NEXT: ... |
| |
| # HINTERR: error: Triple hint does not match the actual [[MSG]] |
| |
| # RUN: yaml2obj --docnum=1 %s -o %t |
| # RUN: not llvm-ifs --input-format=ELF --output-format=IFS --output=%t.tbe --hint-ifs-target="aarch64-linux-gnu" %t 2>&1 | FileCheck %s -DMSG=architecture --check-prefix=HINTERR |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2MSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Flags: [ SHF_ALLOC ] |
| Address: 0x0000 |
| Content: "00" |
| - Name: .dynamic |
| Type: SHT_DYNAMIC |
| Flags: [ SHF_ALLOC ] |
| Address: 0x0000000000000008 |
| Link: .dynstr |
| AddressAlign: 0x0000000000000008 |
| EntSize: 0x0000000000000010 |
| Entries: |
| - Tag: DT_STRSZ |
| Value: 0x0000000000000001 |
| - Tag: DT_STRTAB |
| Value: 0x0000000000000000 |
| - Tag: DT_SYMTAB |
| Value: 0x0000000000000000 |
| - Tag: DT_NULL |
| Value: 0x0000000000000000 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| Flags: [ PF_R ] |
| VAddr: 0x0000 |
| Align: 8 |
| FirstSec: .dynstr |
| LastSec: .dynamic |
| - Type: PT_DYNAMIC |
| Flags: [ PF_X, PF_R ] |
| VAddr: 0x0008 |
| FirstSec: .dynamic |
| LastSec: .dynamic |
| |
| # RUN: yaml2obj --docnum=2 %s -o %t |
| # RUN: not llvm-ifs --input-format=ELF --output-format=IFS --output=%t.tbe --hint-ifs-target="x86_64-unknown-linux-gnu" %t 2>&1 | FileCheck %s -DMSG="endianness" --check-prefix=HINTERR |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_DYN |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .dynstr |
| Type: SHT_STRTAB |
| Flags: [ SHF_ALLOC ] |
| Address: 0x0000 |
| Content: "00" |
| - Name: .dynamic |
| Type: SHT_DYNAMIC |
| Flags: [ SHF_ALLOC ] |
| Address: 0x0000000000000008 |
| Link: .dynstr |
| AddressAlign: 0x0000000000000008 |
| EntSize: 0x0000000000000010 |
| Entries: |
| - Tag: DT_STRSZ |
| Value: 0x0000000000000001 |
| - Tag: DT_STRTAB |
| Value: 0x0000000000000000 |
| - Tag: DT_SYMTAB |
| Value: 0x0000000000000000 |
| - Tag: DT_NULL |
| Value: 0x0000000000000000 |
| ProgramHeaders: |
| - Type: PT_LOAD |
| Flags: [ PF_R ] |
| VAddr: 0x0000 |
| Align: 8 |
| FirstSec: .dynstr |
| LastSec: .dynamic |
| - Type: PT_DYNAMIC |
| Flags: [ PF_X, PF_R ] |
| VAddr: 0x0008 |
| FirstSec: .dynamic |
| LastSec: .dynamic |
| |
| # RUN: yaml2obj --docnum=3 %s -o %t |
| # RUN: not llvm-ifs --input-format=ELF --output-format=IFS --output=%t.tbe --hint-ifs-target="x86_64-unknown-linux-gnu" %t 2>&1 | FileCheck %s -DMSG="bit width" --check-prefix=HINTERR |