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