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