1 RUN: llvm-readobj -h %p/Inputs/trivial.obj.coff-i386 \
2 RUN: | FileCheck %s -check-prefix COFF32
3 RUN: llvm-readobj -h %p/Inputs/trivial.obj.coff-x86-64 \
4 RUN: | FileCheck %s -check-prefix COFF64
5 RUN: llvm-readobj -h %p/Inputs/trivial.exe.coff-i386 \
6 RUN: | FileCheck %s -check-prefix PE32
7 RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-i386 \
8 RUN: | FileCheck %s -check-prefix ELF32
9 RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-x86-64 \
10 RUN: | FileCheck %s -check-prefix ELF64
11 RUN: llvm-readobj -h %p/Inputs/magic.coff-unknown \
12 RUN: | FileCheck %s -check-prefix COFF-UNKNOWN
13 RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \
14 RUN: | FileCheck %s -check-prefix COFF-IMPORTLIB
16 COFF32: File: {{(.*[/\\])?}}trivial.obj.coff-i386
17 COFF32-NEXT: Format: COFF-i386
18 COFF32-NEXT: Arch: i386
19 COFF32-NEXT: AddressSize: 32bit
20 COFF32-NEXT: ImageFileHeader {
21 COFF32-NEXT: Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
22 COFF32-NEXT: SectionCount: 2
23 COFF32-NEXT: TimeDateStamp: 2013-03-20 17:56:46 (0x5149F85E)
24 COFF32-NEXT: PointerToSymbolTable: 0xA5
25 COFF32-NEXT: SymbolCount: 7
26 COFF32-NEXT: OptionalHeaderSize: 0
27 COFF32-NEXT: Characteristics [ (0x0)
31 COFF64: File: {{(.*[/\\])?}}trivial.obj.coff-x86-64
32 COFF64-NEXT: Format: COFF-x86-64
33 COFF64-NEXT: Arch: x86_64
34 COFF64-NEXT: AddressSize: 64bit
35 COFF64-NEXT: ImageFileHeader {
36 COFF64-NEXT: Machine: IMAGE_FILE_MACHINE_AMD64 (0x8664)
37 COFF64-NEXT: SectionCount: 2
38 COFF64-NEXT: TimeDateStamp: 2013-03-20 17:56:46 (0x5149F85E)
39 COFF64-NEXT: PointerToSymbolTable: 0xAB
40 COFF64-NEXT: SymbolCount: 7
41 COFF64-NEXT: OptionalHeaderSize: 0
42 COFF64-NEXT: Characteristics [ (0x0)
46 ELF32: File: {{(.*[/\\])?}}trivial.obj.elf-i386
47 ELF32-NEXT: Format: ELF32-i386
48 ELF32-NEXT: Arch: i386
49 ELF32-NEXT: AddressSize: 32bit
51 ELF32-NEXT: ElfHeader {
53 ELF32-NEXT: Magic: (7F 45 4C 46)
54 ELF32-NEXT: Class: 32-bit (0x1)
55 ELF32-NEXT: DataEncoding: LittleEndian (0x1)
56 ELF32-NEXT: FileVersion: 1
57 ELF32-NEXT: OS/ABI: GNU/Linux (0x3)
58 ELF32-NEXT: ABIVersion: 0
59 ELF32-NEXT: Unused: (00 00 00 00 00 00 00)
61 ELF32-NEXT: Type: Relocatable (0x1)
62 ELF32-NEXT: Machine: EM_386 (0x3)
63 ELF32-NEXT: Version: 1
64 ELF32-NEXT: Entry: 0x0
65 ELF32-NEXT: ProgramHeaderOffset: 0x0
66 ELF32-NEXT: SectionHeaderOffset: 0xC8
67 ELF32-NEXT: Flags [ (0x0)
69 ELF32-NEXT: HeaderSize: 52
70 ELF32-NEXT: ProgramHeaderEntrySize: 0
71 ELF32-NEXT: ProgramHeaderCount: 0
72 ELF32-NEXT: SectionHeaderEntrySize: 40
73 ELF32-NEXT: SectionHeaderCount: 10
74 ELF32-NEXT: StringTableSectionIndex: 7
77 ELF64: File: {{(.*[/\\])?}}trivial.obj.elf-x86-64
78 ELF64-NEXT: Format: ELF64-x86-64
79 ELF64-NEXT: Arch: x86_64
80 ELF64-NEXT: AddressSize: 64bit
82 ELF64-NEXT: ElfHeader {
84 ELF64-NEXT: Magic: (7F 45 4C 46)
85 ELF64-NEXT: Class: 64-bit (0x2)
86 ELF64-NEXT: DataEncoding: LittleEndian (0x1)
87 ELF64-NEXT: FileVersion: 1
88 ELF64-NEXT: OS/ABI: GNU/Linux (0x3)
89 ELF64-NEXT: ABIVersion: 0
90 ELF64-NEXT: Unused: (00 00 00 00 00 00 00)
92 ELF64-NEXT: Type: Relocatable (0x1)
93 ELF64-NEXT: Machine: EM_X86_64 (0x3E)
94 ELF64-NEXT: Version: 1
95 ELF64-NEXT: Entry: 0x0
96 ELF64-NEXT: ProgramHeaderOffset: 0x0
97 ELF64-NEXT: SectionHeaderOffset: 0xB8
98 ELF64-NEXT: Flags [ (0x0)
100 ELF64-NEXT: HeaderSize: 64
101 ELF64-NEXT: ProgramHeaderEntrySize: 0
102 ELF64-NEXT: ProgramHeaderCount: 0
103 ELF64-NEXT: SectionHeaderEntrySize: 64
104 ELF64-NEXT: SectionHeaderCount: 10
105 ELF64-NEXT: StringTableSectionIndex: 7
108 PE32: File: {{(.*[/\\])?}}trivial.exe.coff-i386
109 PE32-NEXT: Format: COFF-i386
110 PE32-NEXT: Arch: i386
111 PE32-NEXT: AddressSize: 32bit
112 PE32-NEXT: ImageFileHeader {
113 PE32-NEXT: Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
114 PE32-NEXT: SectionCount: 3
115 PE32-NEXT: TimeDateStamp: 2013-07-16 00:39:15 (0x51E49633)
116 PE32-NEXT: PointerToSymbolTable: 0x0
117 PE32-NEXT: SymbolCount: 0
118 PE32-NEXT: OptionalHeaderSize: 224
119 PE32-NEXT: Characteristics [ (0x102)
120 PE32-NEXT: IMAGE_FILE_32BIT_MACHINE (0x100)
121 PE32-NEXT: IMAGE_FILE_EXECUTABLE_IMAGE (0x2)
124 PE32-NEXT: ImageOptionalHeader {
125 PE32-NEXT: MajorLinkerVersion: 11
126 PE32-NEXT: MinorLinkerVersion: 0
127 PE32-NEXT: SizeOfCode: 512
128 PE32-NEXT: SizeOfInitializedData: 1024
129 PE32-NEXT: SizeOfUninitializedData: 0
130 PE32-NEXT: AddressOfEntryPoint: 0x1000
131 PE32-NEXT: BaseOfCode: 0x1000
132 PE32-NEXT: BaseOfData: 0x2000
133 PE32-NEXT: ImageBase: 0x400000
134 PE32-NEXT: SectionAlignment: 4096
135 PE32-NEXT: FileAlignment: 512
136 PE32-NEXT: MajorOperatingSystemVersion: 6
137 PE32-NEXT: MinorOperatingSystemVersion: 0
138 PE32-NEXT: MajorImageVersion: 0
139 PE32-NEXT: MinorImageVersion: 0
140 PE32-NEXT: MajorSubsystemVersion: 6
141 PE32-NEXT: MinorSubsystemVersion: 0
142 PE32-NEXT: SizeOfImage: 16384
143 PE32-NEXT: SizeOfHeaders: 1024
144 PE32-NEXT: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI (0x3)
145 PE32-NEXT: Subsystem [ (0x8140)
146 PE32-NEXT: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE (0x40)
147 PE32-NEXT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT (0x100)
148 PE32-NEXT: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE (0x8000)
150 PE32-NEXT: SizeOfStackReserve: 1048576
151 PE32-NEXT: SizeOfStackCommit: 4096
152 PE32-NEXT: SizeOfHeapReserve: 1048576
153 PE32-NEXT: SizeOfHeapCommit: 4096
154 PE32-NEXT: NumberOfRvaAndSize: 16
155 PE32-NEXT: DataDirectory {
156 PE32-NEXT: ExportTableRVA: 0x0
157 PE32-NEXT: ExportTableSize: 0x0
158 PE32-NEXT: ImportTableRVA: 0x0
159 PE32-NEXT: ImportTableSize: 0x0
160 PE32-NEXT: ResourceTableRVA: 0x0
161 PE32-NEXT: ResourceTableSize: 0x0
162 PE32-NEXT: ExceptionTableRVA: 0x0
163 PE32-NEXT: ExceptionTableSize: 0x0
164 PE32-NEXT: CertificateTableRVA: 0x0
165 PE32-NEXT: CertificateTableSize: 0x0
166 PE32-NEXT: BaseRelocationTableRVA: 0x3000
167 PE32-NEXT: BaseRelocationTableSize: 0xC
168 PE32-NEXT: DebugRVA: 0x0
169 PE32-NEXT: DebugSize: 0x0
170 PE32-NEXT: ArchitectureRVA: 0x0
171 PE32-NEXT: ArchitectureSize: 0x0
172 PE32-NEXT: GlobalPtrRVA: 0x0
173 PE32-NEXT: GlobalPtrSize: 0x0
174 PE32-NEXT: TLSTableRVA: 0x0
175 PE32-NEXT: TLSTableSize: 0x0
176 PE32-NEXT: LoadConfigTableRVA: 0x0
177 PE32-NEXT: LoadConfigTableSize: 0x0
178 PE32-NEXT: BoundImportRVA: 0x0
179 PE32-NEXT: BoundImportSize: 0x0
180 PE32-NEXT: IATRVA: 0x0
181 PE32-NEXT: IATSize: 0x0
182 PE32-NEXT: DelayImportDescriptorRVA: 0x0
183 PE32-NEXT: DelayImportDescriptorSize: 0x0
184 PE32-NEXT: CLRRuntimeHeaderRVA: 0x0
185 PE32-NEXT: CLRRuntimeHeaderSize: 0x0
186 PE32-NEXT: ReservedRVA: 0x0
187 PE32-NEXT: ReservedSize: 0x0
191 COFF-UNKNOWN: Format: COFF-<unknown arch>
192 COFF-UNKNOWN-NEXT: Arch: unknown
193 COFF-UNKNOWN-NEXT: AddressSize: 32bit
194 COFF-UNKNOWN-NEXT: ImageFileHeader {
195 COFF-UNKNOWN-NEXT: Machine: IMAGE_FILE_MACHINE_UNKNOWN (0x0)
196 COFF-UNKNOWN-NEXT: SectionCount: 3
197 COFF-UNKNOWN-NEXT: TimeDateStamp: 2013-11-14 21:19:28 (0x52853E60)
198 COFF-UNKNOWN-NEXT: PointerToSymbolTable: 0xF8
199 COFF-UNKNOWN-NEXT: SymbolCount: 11
200 COFF-UNKNOWN-NEXT: OptionalHeaderSize: 0
201 COFF-UNKNOWN-NEXT: Characteristics [ (0x0)
205 COFF-IMPORTLIB: Format: COFF-<unknown arch>
206 COFF-IMPORTLIB-NEXT: Arch: unknown
207 COFF-IMPORTLIB-NEXT: AddressSize: 32bit
208 COFF-IMPORTLIB-NEXT: ImageFileHeader {
209 COFF-IMPORTLIB-NEXT: Machine: IMAGE_FILE_MACHINE_UNKNOWN (0x0)
210 COFF-IMPORTLIB-NEXT: SectionCount: 65535
211 COFF-IMPORTLIB-NEXT: TimeDateStamp: 1970-09-09 19:52:32 (0x14C0000)
212 COFF-IMPORTLIB-NEXT: PointerToSymbolTable: 0x528542EB
213 COFF-IMPORTLIB-NEXT: SymbolCount: 20
214 COFF-IMPORTLIB-NEXT: OptionalHeaderSize: 0
215 COFF-IMPORTLIB-NEXT: Characteristics [ (0x8)
216 COFF-IMPORTLIB-NEXT: IMAGE_FILE_LOCAL_SYMS_STRIPPED (0x8)
217 COFF-IMPORTLIB-NEXT: ]
218 COFF-IMPORTLIB-NEXT: }