1# RUN: yaml2obj %s -o %t 2# RUN: llvm-objcopy %t %t2 3# RUN: llvm-readobj --symbols %t2 | FileCheck %s 4 5!ELF 6FileHeader: 7 Class: ELFCLASS64 8 Data: ELFDATA2LSB 9 Type: ET_EXEC 10 Machine: EM_X86_64 11Sections: 12 - Name: .text 13 Type: SHT_PROGBITS 14 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 15 Address: 0x1000 16 AddressAlign: 0x0000000000000010 17 Content: "0000000000000000" 18 - Name: .data 19 Type: SHT_PROGBITS 20 Flags: [ SHF_ALLOC ] 21 Address: 0x2000 22 AddressAlign: 0x0000000000000010 23 Content: "0000000000000000" 24Symbols: 25 - Name: _start 26 Type: STT_FUNC 27 Section: .text 28 Value: 0x1000 29 Size: 4 30 Binding: STB_GLOBAL 31 - Name: bam 32 Type: STT_FUNC 33 Section: .text 34 Value: 0x1001 35 Size: 4 36 Other: [ STV_HIDDEN ] 37 Binding: STB_GLOBAL 38 - Name: foo 39 Type: STT_FUNC 40 Section: .text 41 Value: 0x1004 42 Binding: STB_GLOBAL 43 - Name: faz 44 Type: STT_OBJECT 45 Section: .data 46 Value: 0x2002 47 Size: 2 48 Other: [ STV_INTERNAL ] 49 Binding: STB_GLOBAL 50 - Name: bar 51 Type: STT_OBJECT 52 Section: .data 53 Value: 0x2000 54 Size: 4 55 Binding: STB_GLOBAL 56 - Name: baz 57 Type: STT_OBJECT 58 Section: .data 59 Value: 0x2004 60 Size: 4 61 Binding: STB_GLOBAL 62 63#CHECK: Symbols [ 64#CHECK-NEXT: Symbol { 65#CHECK-NEXT: Name: 66#CHECK-NEXT: Value: 0x0 67#CHECK-NEXT: Size: 0 68#CHECK-NEXT: Binding: Local 69#CHECK-NEXT: Type: None 70#CHECK-NEXT: Other: 0 71#CHECK-NEXT: Section: Undefined 72#CHECK-NEXT: } 73#CHECK-NEXT: Symbol { 74#CHECK-NEXT: Name: _start 75#CHECK-NEXT: Value: 0x1000 76#CHECK-NEXT: Size: 4 77#CHECK-NEXT: Binding: Global 78#CHECK-NEXT: Type: Function 79#CHECK-NEXT: Other: 0 80#CHECK-NEXT: Section: .text 81#CHECK-NEXT: } 82#CHECK-NEXT: Symbol { 83#CHECK-NEXT: Name: bam 84#CHECK-NEXT: Value: 0x1001 85#CHECK-NEXT: Size: 4 86#CHECK-NEXT: Binding: Global 87#CHECK-NEXT: Type: Function 88#CHECK-NEXT: Other [ 89#CHECK-NEXT: STV_HIDDEN 90#CHECK-NEXT: ] 91#CHECK-NEXT: Section: .text 92#CHECK-NEXT: } 93#CHECK-NEXT: Symbol { 94#CHECK-NEXT: Name: foo 95#CHECK-NEXT: Value: 0x1004 96#CHECK-NEXT: Size: 0 97#CHECK-NEXT: Binding: Global 98#CHECK-NEXT: Type: Function 99#CHECK-NEXT: Other: 0 100#CHECK-NEXT: Section: .text 101#CHECK-NEXT: } 102#CHECK-NEXT: Symbol { 103#CHECK-NEXT: Name: faz 104#CHECK-NEXT: Value: 0x2002 105#CHECK-NEXT: Size: 2 106#CHECK-NEXT: Binding: Global 107#CHECK-NEXT: Type: Object 108#CHECK-NEXT: Other [ 109#CHECK-NEXT: STV_INTERNAL 110#CHECK-NEXT: ] 111#CHECK-NEXT: Section: .data 112#CHECK-NEXT: } 113#CHECK-NEXT: Symbol { 114#CHECK-NEXT: Name: bar 115#CHECK-NEXT: Value: 0x2000 116#CHECK-NEXT: Size: 4 117#CHECK-NEXT: Binding: Global 118#CHECK-NEXT: Type: Object 119#CHECK-NEXT: Other: 0 120#CHECK-NEXT: Section: .data 121#CHECK-NEXT: } 122#CHECK-NEXT: Symbol { 123#CHECK-NEXT: Name: baz 124#CHECK-NEXT: Value: 0x2004 125#CHECK-NEXT: Size: 4 126#CHECK-NEXT: Binding: Global 127#CHECK-NEXT: Type: Object 128#CHECK-NEXT: Other: 0 129#CHECK-NEXT: Section: .data 130#CHECK-NEXT: } 131#CHECK-NEXT:] 132