1 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.coff-i386 \
2 RUN: | FileCheck %s -check-prefix COFF
3 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.elf-i386 \
4 RUN: | FileCheck %s -check-prefix ELF
5 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.macho-i386 \
6 RUN: | FileCheck %s -check-prefix MACHO-I386
7 RUN: llvm-readobj -s -st -sr -sd %p/Inputs/trivial.obj.macho-x86-64 \
8 RUN: | FileCheck %s -check-prefix MACHO-X86-64
13 COFF-NEXT: Name: .text (2E 74 65 78 74 00 00 00)
14 COFF-NEXT: VirtualSize: 0x0
15 COFF-NEXT: VirtualAddress: 0x0
16 COFF-NEXT: RawDataSize: 22
17 COFF-NEXT: PointerToRawData: 0x64
18 COFF-NEXT: PointerToRelocations: 0x7A
19 COFF-NEXT: PointerToLineNumbers: 0x0
20 COFF-NEXT: RelocationCount: 3
21 COFF-NEXT: LineNumberCount: 0
22 COFF-NEXT: Characteristics [ (0x60500020)
23 COFF-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000)
24 COFF-NEXT: IMAGE_SCN_CNT_CODE (0x20)
25 COFF-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000)
26 COFF-NEXT: IMAGE_SCN_MEM_READ (0x40000000)
28 COFF-NEXT: Relocations [
29 COFF-NEXT: 0x4 IMAGE_REL_I386_DIR32 .data
30 COFF-NEXT: 0x9 IMAGE_REL_I386_REL32 _puts
31 COFF-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction
35 COFF-NEXT: Name: .text
37 COFF-NEXT: Section: .text (1)
38 COFF-NEXT: BaseType: Null (0x0)
39 COFF-NEXT: ComplexType: Null (0x0)
40 COFF-NEXT: StorageClass: Static (0x3)
41 COFF-NEXT: AuxSymbolCount: 1
42 COFF-NEXT: AuxSectionDef {
44 COFF-NEXT: RelocationCount: 3
45 COFF-NEXT: LineNumberCount: 0
46 COFF-NEXT: Checksum: 0x0
48 COFF-NEXT: Selection: 0x0
49 COFF-NEXT: Unused: (00 00 00)
53 COFF-NEXT: Name: _main
55 COFF-NEXT: Section: .text (1)
56 COFF-NEXT: BaseType: Null (0x0)
57 COFF-NEXT: ComplexType: Function (0x2)
58 COFF-NEXT: StorageClass: External (0x2)
59 COFF-NEXT: AuxSymbolCount: 0
62 COFF-NEXT: SectionData (
63 COFF-NEXT: 0000: 50C70424 00000000 E8000000 00E80000 |P..$............|
64 COFF-NEXT: 0010: 000031C0 5AC3 |..1.Z.|
72 ELF-NEXT: Type: SHT_NULL (0x0)
73 ELF-NEXT: Flags [ (0x0)
75 ELF-NEXT: Address: 0x0
80 ELF-NEXT: AddressAlignment: 0
81 ELF-NEXT: EntrySize: 0
82 ELF-NEXT: Relocations [
86 ELF-NEXT: SectionData (
91 ELF-NEXT: Name: .text (5)
92 ELF-NEXT: Type: SHT_PROGBITS (0x1)
93 ELF-NEXT: Flags [ (0x6)
94 ELF-NEXT: SHF_ALLOC (0x2)
95 ELF-NEXT: SHF_EXECINSTR (0x4)
97 ELF-NEXT: Address: 0x0
98 ELF-NEXT: Offset: 0x40
102 ELF-NEXT: AddressAlignment: 16
103 ELF-NEXT: EntrySize: 0
104 ELF-NEXT: Relocations [
105 ELF-NEXT: 0xC R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0
106 ELF-NEXT: 0x12 R_386_GOTOFF .L.str 0x0
107 ELF-NEXT: 0x1A R_386_PLT32 puts 0x0
108 ELF-NEXT: 0x1F R_386_PLT32 SomeOtherFunction 0x0
112 ELF-NEXT: Name: .text (0)
115 ELF-NEXT: Binding: Local (0x0)
116 ELF-NEXT: Type: Section (0x3)
118 ELF-NEXT: Section: .text (0x1)
121 ELF-NEXT: Name: main (12)
124 ELF-NEXT: Binding: Global (0x1)
125 ELF-NEXT: Type: Function (0x2)
127 ELF-NEXT: Section: .text (0x1)
130 ELF-NEXT: SectionData (
131 ELF-NEXT: 0000: 5383EC08 E8000000 005B81C3 03000000 |S........[......|
132 ELF-NEXT: 0010: 8D830000 00008904 24E8FCFF FFFFE8FC |........$.......|
133 ELF-NEXT: 0020: FFFFFF31 C083C408 5BC3 |...1....[.|
137 MACHO-I386: Sections [
138 MACHO-I386-NEXT: Section {
139 MACHO-I386-NEXT: Index: 0
140 MACHO-I386-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
141 MACHO-I386-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
142 MACHO-I386-NEXT: Address: 0x0
143 MACHO-I386-NEXT: Size: 0x22
144 MACHO-I386-NEXT: Offset: 324
145 MACHO-I386-NEXT: Alignment: 4
146 MACHO-I386-NEXT: RelocationOffset: 0x174
147 MACHO-I386-NEXT: RelocationCount: 4
148 MACHO-I386-NEXT: Type: 0x0
149 MACHO-I386-NEXT: Attributes [ (0x800004)
150 MACHO-I386-NEXT: PureInstructions (0x800000)
151 MACHO-I386-NEXT: SomeInstructions (0x4)
153 MACHO-I386-NEXT: Reserved1: 0x0
154 MACHO-I386-NEXT: Reserved2: 0x0
155 MACHO-I386-NEXT: Relocations [
156 MACHO-I386-NEXT: 0x18 GENERIC_RELOC_VANILLA _SomeOtherFunction 0x0
157 MACHO-I386-NEXT: 0x13 GENERIC_RELOC_VANILLA _puts 0x0
158 MACHO-I386-NEXT: 0xB GENERIC_RELOC_LOCAL_SECTDIFF _main 0x{{[0-9A-F]+}}
159 MACHO-I386-NEXT: 0x0 GENERIC_RELOC_PAIR _main 0x{{[0-9A-F]+}}
161 MACHO-I386-NEXT: Symbols [
162 MACHO-I386-NEXT: Symbol {
163 MACHO-I386-NEXT: Name: _main (1)
164 MACHO-I386-NEXT: Type: 0xF
165 MACHO-I386-NEXT: Section: __text (0x1)
166 MACHO-I386-NEXT: RefType: UndefinedNonLazy (0x0)
167 MACHO-I386-NEXT: Flags [ (0x0)
169 MACHO-I386-NEXT: Value: 0x0
172 MACHO-I386-NEXT: SectionData (
173 MACHO-I386-NEXT: 0000: 83EC0CE8 00000000 588D801A 00000089 |........X.......|
174 MACHO-I386-NEXT: 0010: 0424E8E9 FFFFFFE8 E4FFFFFF 31C083C4 |.$..........1...|
175 MACHO-I386-NEXT: 0020: 0CC3 |..|
180 MACHO-X86-64: Sections [
181 MACHO-X86-64-NEXT: Section {
182 MACHO-X86-64-NEXT: Index: 0
183 MACHO-X86-64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
184 MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
185 MACHO-X86-64-NEXT: Address: 0x0
186 MACHO-X86-64-NEXT: Size: 0x16
187 MACHO-X86-64-NEXT: Offset: 368
188 MACHO-X86-64-NEXT: Alignment: 4
189 MACHO-X86-64-NEXT: RelocationOffset: 0x194
190 MACHO-X86-64-NEXT: RelocationCount: 3
191 MACHO-X86-64-NEXT: Type: 0x0
192 MACHO-X86-64-NEXT: Attributes [ (0x800004)
193 MACHO-X86-64-NEXT: PureInstructions (0x800000)
194 MACHO-X86-64-NEXT: SomeInstructions (0x4)
196 MACHO-X86-64-NEXT: Reserved1: 0x0
197 MACHO-X86-64-NEXT: Reserved2: 0x0
198 MACHO-X86-64-NEXT: Relocations [
199 MACHO-X86-64-NEXT: 0xE X86_64_RELOC_BRANCH _SomeOtherFunction 0x0
200 MACHO-X86-64-NEXT: 0x9 X86_64_RELOC_BRANCH _puts 0x0
201 MACHO-X86-64-NEXT: 0x4 X86_64_RELOC_SIGNED L_.str 0x0
203 MACHO-X86-64-NEXT: Symbols [
204 MACHO-X86-64-NEXT: Symbol {
205 MACHO-X86-64-NEXT: Name: _main (1)
206 MACHO-X86-64-NEXT: Type: 0xF
207 MACHO-X86-64-NEXT: Section: __text (0x1)
208 MACHO-X86-64-NEXT: RefType: UndefinedNonLazy (0x0)
209 MACHO-X86-64-NEXT: Flags [ (0x0)
211 MACHO-X86-64-NEXT: Value: 0x0
214 MACHO-X86-64-NEXT: SectionData (
215 MACHO-X86-64-NEXT: 0000: 50488D3D 00000000 E8000000 00E80000 |PH.=............|
216 MACHO-X86-64-NEXT: 0010: 000031C0 5AC3 |..1.Z.|
219 MACHO-X86-64-NEXT: Section {
220 MACHO-X86-64-NEXT: Index: 1
221 MACHO-X86-64-NEXT: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
222 MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
223 MACHO-X86-64-NEXT: Address: 0x16
224 MACHO-X86-64-NEXT: Size: 0xD
225 MACHO-X86-64-NEXT: Offset: 390
226 MACHO-X86-64-NEXT: Alignment: 0
227 MACHO-X86-64-NEXT: RelocationOffset: 0x0
228 MACHO-X86-64-NEXT: RelocationCount: 0
229 MACHO-X86-64-NEXT: Type: ExtReloc (0x2)
230 MACHO-X86-64-NEXT: Attributes [ (0x0)
232 MACHO-X86-64-NEXT: Reserved1: 0x0
233 MACHO-X86-64-NEXT: Reserved2: 0x0
234 MACHO-X86-64-NEXT: Relocations [
236 MACHO-X86-64-NEXT: Symbols [
237 MACHO-X86-64-NEXT: Symbol {
238 MACHO-X86-64-NEXT: Name: L_.str (32)
239 MACHO-X86-64-NEXT: Type: Section (0xE)
240 MACHO-X86-64-NEXT: Section: __cstring (0x2)
241 MACHO-X86-64-NEXT: RefType: UndefinedNonLazy (0x0)
242 MACHO-X86-64-NEXT: Flags [ (0x0)
244 MACHO-X86-64-NEXT: Value: 0x16
247 MACHO-X86-64-NEXT: SectionData (
248 MACHO-X86-64-NEXT: 0000: 48656C6C 6F20576F 726C640A 00 |Hello World..|