Home | History | Annotate | Download | only in llvm-readobj
      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/trivial.obj.macho-i386 \
     14 RUN:   | FileCheck %s -check-prefix MACHO32
     15 RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-x86-64 \
     16 RUN:   | FileCheck %s -check-prefix MACHO64
     17 RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-ppc \
     18 RUN:   | FileCheck %s -check-prefix MACHO-PPC
     19 RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-ppc64 \
     20 RUN:   | FileCheck %s -check-prefix MACHO-PPC64
     21 RUN: llvm-readobj -h %p/Inputs/trivial.obj.macho-arm \
     22 RUN:   | FileCheck %s -check-prefix MACHO-ARM
     23 RUN: llvm-readobj -h %p/Inputs/magic.coff-unknown \
     24 RUN:   | FileCheck %s -check-prefix COFF-UNKNOWN
     25 RUN: llvm-readobj -h %p/Inputs/magic.coff-importlib \
     26 RUN:   | FileCheck %s -check-prefix COFF-IMPORTLIB
     27 
     28 COFF-ARM:      File: {{(.*[/\\])?}}trivial.obj.coff-arm
     29 COFF-ARM-NEXT: Format: COFF-ARM
     30 COFF-ARM-NEXT: Arch: thumb
     31 COFF-ARM-NEXT: AddressSize: 32bit
     32 COFF-ARM-NEXT: ImageFileHeader {
     33 COFF-ARM-NEXT:   Machine: IMAGE_FILE_MACHINE_ARMNT (0x1C4)
     34 COFF-ARM-NEXT:   SectionCount: 2
     35 COFF-ARM-NEXT:   TimeDateStamp: 2014-03-13 02:48:34 (0x53211C82)
     36 COFF-ARM-NEXT:   PointerToSymbolTable: 0xFF
     37 COFF-ARM-NEXT:   SymbolCount: 6
     38 COFF-ARM-NEXT:   OptionalHeaderSize: 0
     39 COFF-ARM-NEXT:   Characteristics [ (0x0)
     40 COFF-ARM-NEXT:   ]
     41 COFF-ARM-NEXT: }
     42 
     43 COFF32:      File: {{(.*[/\\])?}}trivial.obj.coff-i386
     44 COFF32-NEXT: Format: COFF-i386
     45 COFF32-NEXT: Arch: i386
     46 COFF32-NEXT: AddressSize: 32bit
     47 COFF32-NEXT: ImageFileHeader {
     48 COFF32-NEXT:   Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
     49 COFF32-NEXT:   SectionCount: 2
     50 COFF32-NEXT:   TimeDateStamp: 2013-03-20 17:56:46 (0x5149F85E)
     51 COFF32-NEXT:   PointerToSymbolTable: 0xA5
     52 COFF32-NEXT:   SymbolCount: 9
     53 COFF32-NEXT:   OptionalHeaderSize: 0
     54 COFF32-NEXT:   Characteristics [ (0x0)
     55 COFF32-NEXT:   ]
     56 COFF32-NEXT: }
     57 
     58 COFF64:      File: {{(.*[/\\])?}}trivial.obj.coff-x86-64
     59 COFF64-NEXT: Format: COFF-x86-64
     60 COFF64-NEXT: Arch: x86_64
     61 COFF64-NEXT: AddressSize: 64bit
     62 COFF64-NEXT: ImageFileHeader {
     63 COFF64-NEXT:   Machine: IMAGE_FILE_MACHINE_AMD64 (0x8664)
     64 COFF64-NEXT:   SectionCount: 2
     65 COFF64-NEXT:   TimeDateStamp: 2013-03-20 17:56:46 (0x5149F85E)
     66 COFF64-NEXT:   PointerToSymbolTable: 0xAB
     67 COFF64-NEXT:   SymbolCount: 7
     68 COFF64-NEXT:   OptionalHeaderSize: 0
     69 COFF64-NEXT:   Characteristics [ (0x0)
     70 COFF64-NEXT:   ]
     71 COFF64-NEXT: }
     72 
     73 ELF32:      File: {{(.*[/\\])?}}trivial.obj.elf-i386
     74 ELF32-NEXT: Format: ELF32-i386
     75 ELF32-NEXT: Arch: i386
     76 ELF32-NEXT: AddressSize: 32bit
     77 ELF32-NEXT: LoadName:
     78 ELF32-NEXT: ElfHeader {
     79 ELF32-NEXT:   Ident {
     80 ELF32-NEXT:     Magic: (7F 45 4C 46)
     81 ELF32-NEXT:     Class: 32-bit (0x1)
     82 ELF32-NEXT:     DataEncoding: LittleEndian (0x1)
     83 ELF32-NEXT:     FileVersion: 1
     84 ELF32-NEXT:     OS/ABI: GNU/Linux (0x3)
     85 ELF32-NEXT:     ABIVersion: 0
     86 ELF32-NEXT:     Unused: (00 00 00 00 00 00 00)
     87 ELF32-NEXT:   }
     88 ELF32-NEXT:   Type: Relocatable (0x1)
     89 ELF32-NEXT:   Machine: EM_386 (0x3)
     90 ELF32-NEXT:   Version: 1
     91 ELF32-NEXT:   Entry: 0x0
     92 ELF32-NEXT:   ProgramHeaderOffset: 0x0
     93 ELF32-NEXT:   SectionHeaderOffset: 0xC8
     94 ELF32-NEXT:   Flags [ (0x0)
     95 ELF32-NEXT:   ]
     96 ELF32-NEXT:   HeaderSize: 52
     97 ELF32-NEXT:   ProgramHeaderEntrySize: 0
     98 ELF32-NEXT:   ProgramHeaderCount: 0
     99 ELF32-NEXT:   SectionHeaderEntrySize: 40
    100 ELF32-NEXT:   SectionHeaderCount: 10
    101 ELF32-NEXT:   StringTableSectionIndex: 7
    102 ELF32-NEXT: }
    103 
    104 ELF64:      File: {{(.*[/\\])?}}trivial.obj.elf-x86-64
    105 ELF64-NEXT: Format: ELF64-x86-64
    106 ELF64-NEXT: Arch: x86_64
    107 ELF64-NEXT: AddressSize: 64bit
    108 ELF64-NEXT: LoadName:
    109 ELF64-NEXT: ElfHeader {
    110 ELF64-NEXT:   Ident {
    111 ELF64-NEXT:     Magic: (7F 45 4C 46)
    112 ELF64-NEXT:     Class: 64-bit (0x2)
    113 ELF64-NEXT:     DataEncoding: LittleEndian (0x1)
    114 ELF64-NEXT:     FileVersion: 1
    115 ELF64-NEXT:     OS/ABI: GNU/Linux (0x3)
    116 ELF64-NEXT:     ABIVersion: 0
    117 ELF64-NEXT:     Unused: (00 00 00 00 00 00 00)
    118 ELF64-NEXT:   }
    119 ELF64-NEXT:   Type: Relocatable (0x1)
    120 ELF64-NEXT:   Machine: EM_X86_64 (0x3E)
    121 ELF64-NEXT:   Version: 1
    122 ELF64-NEXT:   Entry: 0x0
    123 ELF64-NEXT:   ProgramHeaderOffset: 0x0
    124 ELF64-NEXT:   SectionHeaderOffset: 0xB8
    125 ELF64-NEXT:   Flags [ (0x0)
    126 ELF64-NEXT:   ]
    127 ELF64-NEXT:   HeaderSize: 64
    128 ELF64-NEXT:   ProgramHeaderEntrySize: 0
    129 ELF64-NEXT:   ProgramHeaderCount: 0
    130 ELF64-NEXT:   SectionHeaderEntrySize: 64
    131 ELF64-NEXT:   SectionHeaderCount: 10
    132 ELF64-NEXT:   StringTableSectionIndex: 7
    133 ELF64-NEXT: }
    134 
    135 MACHO32:      File: {{(.*[/\\])?}}trivial.obj.macho-i386
    136 MACHO32-NEXT: Format: Mach-O 32-bit i386
    137 MACHO32-NEXT: Arch: i386
    138 MACHO32-NEXT: AddressSize: 32bit
    139 MACHO32-NEXT: MachHeader {
    140 MACHO32-NEXT:   Magic: Magic (0xFEEDFACE)
    141 MACHO32-NEXT:   CpuType: X86 (0x7)
    142 MACHO32-NEXT:   CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
    143 MACHO32-NEXT:   FileType: Relocatable (0x1)
    144 MACHO32-NEXT:   NumOfLoadCommands: 3
    145 MACHO32-NEXT:   SizeOfLoadCommands: 296
    146 MACHO32-NEXT:   Flags [ (0x2000)
    147 MACHO32-NEXT:     MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
    148 MACHO32-NEXT:   ]
    149 MACHO32-NEXT: }
    150 
    151 MACHO64:      File: {{(.*[/\\])?}}trivial.obj.macho-x86-64
    152 MACHO64-NEXT: Format: Mach-O 64-bit x86-64
    153 MACHO64-NEXT: Arch: x86_64
    154 MACHO64-NEXT: AddressSize: 64bit
    155 MACHO64-NEXT: MachHeader {
    156 MACHO64-NEXT:   Magic: Magic64 (0xFEEDFACF)
    157 MACHO64-NEXT:   CpuType: X86-64 (0x1000007)
    158 MACHO64-NEXT:   CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
    159 MACHO64-NEXT:   FileType: Relocatable (0x1)
    160 MACHO64-NEXT:   NumOfLoadCommands: 3
    161 MACHO64-NEXT:   SizeOfLoadCommands: 336
    162 MACHO64-NEXT:   Flags [ (0x2000)
    163 MACHO64-NEXT:     MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
    164 MACHO64-NEXT:   ]
    165 MACHO64-NEXT:   Reserved: 0x0
    166 MACHO64-NEXT: }
    167 
    168 MACHO-PPC:      File: {{(.*[/\\])?}}trivial.obj.macho-ppc
    169 MACHO-PPC-NEXT: Format: Mach-O 32-bit ppc
    170 MACHO-PPC-NEXT: Arch: powerpc
    171 MACHO-PPC-NEXT: AddressSize: 32bit
    172 MACHO-PPC-NEXT: MachHeader {
    173 MACHO-PPC-NEXT:   Magic: Magic (0xFEEDFACE)
    174 MACHO-PPC-NEXT:   CpuType: PowerPC (0x12)
    175 MACHO-PPC-NEXT:   CpuSubType: CPU_SUBTYPE_POWERPC_ALL (0x0)
    176 MACHO-PPC-NEXT:   FileType: Relocatable (0x1)
    177 MACHO-PPC-NEXT:   NumOfLoadCommands: 3
    178 MACHO-PPC-NEXT:   SizeOfLoadCommands: 500
    179 MACHO-PPC-NEXT:   Flags [ (0x2000)
    180 MACHO-PPC-NEXT:     MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
    181 MACHO-PPC-NEXT:   ]
    182 MACHO-PPC-NEXT: }
    183 
    184 MACHO-PPC64:      File: {{(.*[/\\])?}}trivial.obj.macho-ppc64
    185 MACHO-PPC64-NEXT: Format: Mach-O 64-bit ppc64
    186 MACHO-PPC64-NEXT: Arch: powerpc64
    187 MACHO-PPC64-NEXT: AddressSize: 64bit
    188 MACHO-PPC64-NEXT: MachHeader {
    189 MACHO-PPC64-NEXT:   Magic: Magic64 (0xFEEDFACF)
    190 MACHO-PPC64-NEXT:   CpuType: PowerPC64 (0x1000012)
    191 MACHO-PPC64-NEXT:   CpuSubtype: 0x0
    192 MACHO-PPC64-NEXT:   FileType: Relocatable (0x1)
    193 MACHO-PPC64-NEXT:   NumOfLoadCommands: 3
    194 MACHO-PPC64-NEXT:   SizeOfLoadCommands: 576
    195 MACHO-PPC64-NEXT:   Flags [ (0x2000)
    196 MACHO-PPC64-NEXT:     MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
    197 MACHO-PPC64-NEXT:   ]
    198 MACHO-PPC64-NEXT:   Reserved: 0x0
    199 MACHO-PPC64-NEXT: }
    200 
    201 MACHO-ARM:      File: {{(.*[/\\])?}}trivial.obj.macho-arm
    202 MACHO-ARM-NEXT: Format: Mach-O arm
    203 MACHO-ARM-NEXT: Arch: arm
    204 MACHO-ARM-NEXT: AddressSize: 32bit
    205 MACHO-ARM-NEXT: MachHeader {
    206 MACHO-ARM-NEXT:   Magic: Magic (0xFEEDFACE)
    207 MACHO-ARM-NEXT:   CpuType: Arm (0xC)
    208 MACHO-ARM-NEXT:   CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9)
    209 MACHO-ARM-NEXT:   FileType: Relocatable (0x1)
    210 MACHO-ARM-NEXT:   NumOfLoadCommands: 3
    211 MACHO-ARM-NEXT:   SizeOfLoadCommands: 636
    212 MACHO-ARM-NEXT:   Flags [ (0x2000)
    213 MACHO-ARM-NEXT:     MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
    214 MACHO-ARM-NEXT:   ]
    215 MACHO-ARM-NEXT: }
    216 
    217 PE32:      File: {{(.*[/\\])?}}trivial.exe.coff-i386
    218 PE32-NEXT: Format: COFF-i386
    219 PE32-NEXT: Arch: i386
    220 PE32-NEXT: AddressSize: 32bit
    221 PE32-NEXT: ImageFileHeader {
    222 PE32-NEXT:   Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
    223 PE32-NEXT:   SectionCount: 3
    224 PE32-NEXT:   TimeDateStamp: 2013-07-16 00:39:15 (0x51E49633)
    225 PE32-NEXT:   PointerToSymbolTable: 0x0
    226 PE32-NEXT:   SymbolCount: 0
    227 PE32-NEXT:   OptionalHeaderSize: 224
    228 PE32-NEXT:   Characteristics [ (0x102)
    229 PE32-NEXT:     IMAGE_FILE_32BIT_MACHINE (0x100)
    230 PE32-NEXT:     IMAGE_FILE_EXECUTABLE_IMAGE (0x2)
    231 PE32-NEXT:   ]
    232 PE32-NEXT: }
    233 PE32-NEXT: ImageOptionalHeader {
    234 PE32-NEXT:   MajorLinkerVersion: 11
    235 PE32-NEXT:   MinorLinkerVersion: 0
    236 PE32-NEXT:   SizeOfCode: 512
    237 PE32-NEXT:   SizeOfInitializedData: 1024
    238 PE32-NEXT:   SizeOfUninitializedData: 0
    239 PE32-NEXT:   AddressOfEntryPoint: 0x1000
    240 PE32-NEXT:   BaseOfCode: 0x1000
    241 PE32-NEXT:   BaseOfData: 0x2000
    242 PE32-NEXT:   ImageBase: 0x400000
    243 PE32-NEXT:   SectionAlignment: 4096
    244 PE32-NEXT:   FileAlignment: 512
    245 PE32-NEXT:   MajorOperatingSystemVersion: 6
    246 PE32-NEXT:   MinorOperatingSystemVersion: 0
    247 PE32-NEXT:   MajorImageVersion: 0
    248 PE32-NEXT:   MinorImageVersion: 0
    249 PE32-NEXT:   MajorSubsystemVersion: 6
    250 PE32-NEXT:   MinorSubsystemVersion: 0
    251 PE32-NEXT:   SizeOfImage: 16384
    252 PE32-NEXT:   SizeOfHeaders: 1024
    253 PE32-NEXT:   Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI (0x3)
    254 PE32-NEXT:   Characteristics [ (0x8140)
    255 PE32-NEXT:     IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE (0x40)
    256 PE32-NEXT:     IMAGE_DLL_CHARACTERISTICS_NX_COMPAT (0x100)
    257 PE32-NEXT:     IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE (0x8000)
    258 PE32-NEXT:   ]
    259 PE32-NEXT:   SizeOfStackReserve: 1048576
    260 PE32-NEXT:   SizeOfStackCommit: 4096
    261 PE32-NEXT:   SizeOfHeapReserve: 1048576
    262 PE32-NEXT:   SizeOfHeapCommit: 4096
    263 PE32-NEXT:   NumberOfRvaAndSize: 16
    264 PE32-NEXT:   DataDirectory {
    265 PE32-NEXT:     ExportTableRVA: 0x0
    266 PE32-NEXT:     ExportTableSize: 0x0
    267 PE32-NEXT:     ImportTableRVA: 0x0
    268 PE32-NEXT:     ImportTableSize: 0x0
    269 PE32-NEXT:     ResourceTableRVA: 0x0
    270 PE32-NEXT:     ResourceTableSize: 0x0
    271 PE32-NEXT:     ExceptionTableRVA: 0x0
    272 PE32-NEXT:     ExceptionTableSize: 0x0
    273 PE32-NEXT:     CertificateTableRVA: 0x0
    274 PE32-NEXT:     CertificateTableSize: 0x0
    275 PE32-NEXT:     BaseRelocationTableRVA: 0x3000
    276 PE32-NEXT:     BaseRelocationTableSize: 0xC
    277 PE32-NEXT:     DebugRVA: 0x0
    278 PE32-NEXT:     DebugSize: 0x0
    279 PE32-NEXT:     ArchitectureRVA: 0x0
    280 PE32-NEXT:     ArchitectureSize: 0x0
    281 PE32-NEXT:     GlobalPtrRVA: 0x0
    282 PE32-NEXT:     GlobalPtrSize: 0x0
    283 PE32-NEXT:     TLSTableRVA: 0x0
    284 PE32-NEXT:     TLSTableSize: 0x0
    285 PE32-NEXT:     LoadConfigTableRVA: 0x0
    286 PE32-NEXT:     LoadConfigTableSize: 0x0
    287 PE32-NEXT:     BoundImportRVA: 0x0
    288 PE32-NEXT:     BoundImportSize: 0x0
    289 PE32-NEXT:     IATRVA: 0x0
    290 PE32-NEXT:     IATSize: 0x0
    291 PE32-NEXT:     DelayImportDescriptorRVA: 0x0
    292 PE32-NEXT:     DelayImportDescriptorSize: 0x0
    293 PE32-NEXT:     CLRRuntimeHeaderRVA: 0x0
    294 PE32-NEXT:     CLRRuntimeHeaderSize: 0x0
    295 PE32-NEXT:     ReservedRVA: 0x0
    296 PE32-NEXT:     ReservedSize: 0x0
    297 PE32-NEXT:   }
    298 PE32-NEXT: }
    299 PE32-NEXT: DOSHeader {
    300 PE32-NEXT:   Magic: MZ
    301 PE32-NEXT:   UsedBytesInTheLastPage: 144
    302 PE32-NEXT:   FileSizeInPages: 3
    303 PE32-NEXT:   NumberOfRelocationItems: 0
    304 PE32-NEXT:   HeaderSizeInParagraphs: 4
    305 PE32-NEXT:   MinimumExtraParagraphs: 0
    306 PE32-NEXT:   MaximumExtraParagraphs: 65535
    307 PE32-NEXT:   InitialRelativeSS: 0
    308 PE32-NEXT:   InitialSP: 184
    309 PE32-NEXT:   Checksum: 0
    310 PE32-NEXT:   InitialIP: 0
    311 PE32-NEXT:   InitialRelativeCS: 0
    312 PE32-NEXT:   AddressOfRelocationTable: 64
    313 PE32-NEXT:   OverlayNumber: 0
    314 PE32-NEXT:   OEMid: 0
    315 PE32-NEXT:   OEMinfo: 0
    316 PE32-NEXT:   AddressOfNewExeHeader: 176
    317 PE32-NEXT: }
    318 
    319 COFF-UNKNOWN:      Format: COFF-<unknown arch>
    320 COFF-UNKNOWN-NEXT: Arch: unknown
    321 COFF-UNKNOWN-NEXT: AddressSize: 32bit
    322 COFF-UNKNOWN-NEXT: ImageFileHeader {
    323 COFF-UNKNOWN-NEXT:   Machine: IMAGE_FILE_MACHINE_UNKNOWN (0x0)
    324 COFF-UNKNOWN-NEXT:   SectionCount: 3
    325 COFF-UNKNOWN-NEXT:   TimeDateStamp: 2013-11-14 21:19:28 (0x52853E60)
    326 COFF-UNKNOWN-NEXT:   PointerToSymbolTable: 0xF8
    327 COFF-UNKNOWN-NEXT:   SymbolCount: 11
    328 COFF-UNKNOWN-NEXT:   OptionalHeaderSize: 0
    329 COFF-UNKNOWN-NEXT:   Characteristics [ (0x0)
    330 COFF-UNKNOWN-NEXT:   ]
    331 COFF-UNKNOWN-NEXT: }
    332 
    333 COFF-IMPORTLIB:      Format: COFF-import-file
    334 COFF-IMPORTLIB-NEXT: Type: code
    335 COFF-IMPORTLIB-NEXT: Name type: noprefix
    336 COFF-IMPORTLIB-NEXT: Symbol: __imp__func
    337 COFF-IMPORTLIB-NEXT: Symbol: _func
    338