155 lines · plain
1# RUN: yaml2obj %s -o %t.o2# Preserve input to verify it is not modified.3# RUN: cp %t.o %t-copy.o4# RUN: llvm-objcopy %t.o -O elf64-x86-64 %t.2.o5# RUN: llvm-readobj --sections --symbols %t.2.o | FileCheck %s6# RUN: cmp %t.o %t-copy.o7 8!ELF9FileHeader:10 Class: ELFCLASS3211 Data: ELFDATA2LSB12 Type: ET_EXEC13 Machine: EM_38614Sections:15 - Name: .text16 Type: SHT_PROGBITS17 Flags: [ SHF_ALLOC, SHF_EXECINSTR ]18 Size: 3219 - Name: .data20 Type: SHT_PROGBITS21 Flags: [ SHF_ALLOC ]22 Content: DEADBEEF23 Size: 1624Symbols:25 - Name: foo26 Type: STT_FUNC27 Section: .text28 Value: 1629 Size: 830 Binding: STB_GLOBAL31 - Name: bar32 Type: STT_OBJECT33 Section: .data34 Size: 1635 Binding: STB_GLOBAL36 37# CHECK: Sections [38# CHECK-NEXT: Section {39# CHECK-NEXT: Index: 040# CHECK-NEXT: Name: (0)41# CHECK-NEXT: Type: SHT_NULL (0x0)42# CHECK-NEXT: Flags [ (0x0)43# CHECK-NEXT: ]44# CHECK-NEXT: Address:45# CHECK-NEXT: Offset:46# CHECK-NEXT: Size: 047# CHECK-NEXT: Link: 048# CHECK-NEXT: Info: 049# CHECK-NEXT: AddressAlignment: 050# CHECK-NEXT: EntrySize: 051# CHECK-NEXT: }52# CHECK-NEXT: Section {53# CHECK-NEXT: Index: 154# CHECK-NEXT: Name: .text55# CHECK-NEXT: Type: SHT_PROGBITS (0x1)56# CHECK-NEXT: Flags [ (0x6)57# CHECK-NEXT: SHF_ALLOC (0x2)58# CHECK-NEXT: SHF_EXECINSTR (0x4)59# CHECK-NEXT: ]60# CHECK-NEXT: Address:61# CHECK-NEXT: Offset:62# CHECK-NEXT: Size: 3263# CHECK-NEXT: Link: 064# CHECK-NEXT: Info: 065# CHECK-NEXT: AddressAlignment: 066# CHECK-NEXT: EntrySize: 067# CHECK-NEXT: }68# CHECK-NEXT: Section {69# CHECK-NEXT: Index: 270# CHECK-NEXT: Name: .data71# CHECK-NEXT: Type: SHT_PROGBITS (0x1)72# CHECK-NEXT: Flags [ (0x2)73# CHECK-NEXT: SHF_ALLOC (0x2)74# CHECK-NEXT: ]75# CHECK-NEXT: Address:76# CHECK-NEXT: Offset:77# CHECK-NEXT: Size: 1678# CHECK-NEXT: Link: 079# CHECK-NEXT: Info: 080# CHECK-NEXT: AddressAlignment: 081# CHECK-NEXT: EntrySize: 082# CHECK-NEXT: }83# CHECK-NEXT: Section {84# CHECK-NEXT: Index: 385# CHECK-NEXT: Name: .symtab86# CHECK-NEXT: Type: SHT_SYMTAB (0x2)87# CHECK-NEXT: Flags [ (0x0)88# CHECK-NEXT: ]89# CHECK-NEXT: Address:90# CHECK-NEXT: Offset:91# CHECK-NEXT: Size: 7292# CHECK-NEXT: Link: 493# CHECK-NEXT: Info: 194# CHECK-NEXT: AddressAlignment: 895# CHECK-NEXT: EntrySize: 2496# CHECK-NEXT: }97# CHECK-NEXT: Section {98# CHECK-NEXT: Index: 499# CHECK-NEXT: Name: .strtab100# CHECK-NEXT: Type: SHT_STRTAB (0x3)101# CHECK-NEXT: Flags [ (0x0)102# CHECK-NEXT: ]103# CHECK-NEXT: Address:104# CHECK-NEXT: Offset:105# CHECK-NEXT: Size: 9106# CHECK-NEXT: Link: 0107# CHECK-NEXT: Info: 0108# CHECK-NEXT: AddressAlignment: 1109# CHECK-NEXT: EntrySize: 0110# CHECK-NEXT: }111# CHECK-NEXT: Section {112# CHECK-NEXT: Index: 5113# CHECK-NEXT: Name: .shstrtab114# CHECK-NEXT: Type: SHT_STRTAB (0x3)115# CHECK-NEXT: Flags [ (0x0)116# CHECK-NEXT: ]117# CHECK-NEXT: Address:118# CHECK-NEXT: Offset:119# CHECK-NEXT: Size: 39120# CHECK-NEXT: Link: 0121# CHECK-NEXT: Info: 0122# CHECK-NEXT: AddressAlignment: 1123# CHECK-NEXT: EntrySize: 0124# CHECK-NEXT: }125# CHECK-NEXT: ]126# CHECK-NEXT: Symbols [127# CHECK-NEXT: Symbol {128# CHECK-NEXT: Name:129# CHECK-NEXT: Value: 0x0130# CHECK-NEXT: Size: 0131# CHECK-NEXT: Binding: Local (0x0)132# CHECK-NEXT: Type: None (0x0)133# CHECK-NEXT: Other: 0134# CHECK-NEXT: Section: Undefined135# CHECK-NEXT: }136# CHECK-NEXT: Symbol {137# CHECK-NEXT: Name: foo138# CHECK-NEXT: Value: 0x10139# CHECK-NEXT: Size: 8140# CHECK-NEXT: Binding: Global (0x1)141# CHECK-NEXT: Type: Function (0x2)142# CHECK-NEXT: Other: 0143# CHECK-NEXT: Section: .text144# CHECK-NEXT: }145# CHECK-NEXT: Symbol {146# CHECK-NEXT: Name: bar147# CHECK-NEXT: Value: 0x0148# CHECK-NEXT: Size: 16149# CHECK-NEXT: Binding: Global (0x1)150# CHECK-NEXT: Type: Object (0x1)151# CHECK-NEXT: Other: 0152# CHECK-NEXT: Section: .data153# CHECK-NEXT: }154# CHECK-NEXT: ]155