blob: b7bc887d46eb5e6d1d5e448eea9b39671d928ef0 [file] [log] [blame]
# RUN: yaml2obj < %p/Inputs/hello32.yaml > %t.obj
# RUN: lld-link %t.obj %p/Inputs/std32.lib /subsystem:console \
# RUN: /entry:main@0 /out:%t.exe /appcontainer
# RUN: llvm-readobj -file-headers %t.exe | FileCheck -check-prefix=HEADER %s
# RUN: llvm-readobj -coff-imports %t.exe | FileCheck -check-prefix=IMPORTS %s
# RUN: llvm-readobj -coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s
HEADER: Format: COFF-i386
HEADER-NEXT: Arch: i386
HEADER-NEXT: AddressSize: 32bit
HEADER-NEXT: ImageFileHeader {
HEADER-NEXT: Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
HEADER-NEXT: SectionCount: 4
HEADER-NEXT: TimeDateStamp: 1970-01-01 00:00:00 (0x0)
HEADER-NEXT: PointerToSymbolTable: 0x0
HEADER-NEXT: SymbolCount: 0
HEADER-NEXT: OptionalHeaderSize: 224
HEADER-NEXT: Characteristics [ (0x102)
HEADER-NEXT: IMAGE_FILE_32BIT_MACHINE (0x100)
HEADER-NEXT: IMAGE_FILE_EXECUTABLE_IMAGE (0x2)
HEADER-NEXT: ]
HEADER-NEXT: }
HEADER-NEXT: ImageOptionalHeader {
HEADER-NEXT: MajorLinkerVersion: 0
HEADER-NEXT: MinorLinkerVersion: 0
HEADER-NEXT: SizeOfCode: 512
HEADER-NEXT: SizeOfInitializedData: 1536
HEADER-NEXT: SizeOfUninitializedData: 0
HEADER-NEXT: AddressOfEntryPoint: 0x2000
HEADER-NEXT: BaseOfCode: 0x2000
HEADER-NEXT: BaseOfData: 0x0
HEADER-NEXT: ImageBase: 0x400000
HEADER-NEXT: SectionAlignment: 4096
HEADER-NEXT: FileAlignment: 512
HEADER-NEXT: MajorOperatingSystemVersion: 6
HEADER-NEXT: MinorOperatingSystemVersion: 0
HEADER-NEXT: MajorImageVersion: 0
HEADER-NEXT: MinorImageVersion: 0
HEADER-NEXT: MajorSubsystemVersion: 6
HEADER-NEXT: MinorSubsystemVersion: 0
HEADER-NEXT: SizeOfImage: 16896
HEADER-NEXT: SizeOfHeaders: 512
HEADER-NEXT: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI (0x3)
HEADER-NEXT: Characteristics [ (0x9140)
HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_APPCONTAINER (0x1000)
HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE (0x40)
HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT (0x100)
HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE (0x8000)
HEADER-NEXT: ]
HEADER-NEXT: SizeOfStackReserve: 1048576
HEADER-NEXT: SizeOfStackCommit: 4096
HEADER-NEXT: SizeOfHeapReserve: 1048576
HEADER-NEXT: SizeOfHeapCommit: 4096
HEADER-NEXT: NumberOfRvaAndSize: 16
HEADER-NEXT: DataDirectory {
HEADER-NEXT: ExportTableRVA: 0x0
HEADER-NEXT: ExportTableSize: 0x0
HEADER-NEXT: ImportTableRVA: 0x3000
HEADER-NEXT: ImportTableSize: 0x28
HEADER-NEXT: ResourceTableRVA: 0x0
HEADER-NEXT: ResourceTableSize: 0x0
HEADER-NEXT: ExceptionTableRVA: 0x0
HEADER-NEXT: ExceptionTableSize: 0x0
HEADER-NEXT: CertificateTableRVA: 0x0
HEADER-NEXT: CertificateTableSize: 0x0
HEADER-NEXT: BaseRelocationTableRVA: 0x4000
HEADER-NEXT: BaseRelocationTableSize: 0x10
HEADER-NEXT: DebugRVA: 0x0
HEADER-NEXT: DebugSize: 0x0
HEADER-NEXT: ArchitectureRVA: 0x0
HEADER-NEXT: ArchitectureSize: 0x0
HEADER-NEXT: GlobalPtrRVA: 0x0
HEADER-NEXT: GlobalPtrSize: 0x0
HEADER-NEXT: TLSTableRVA: 0x0
HEADER-NEXT: TLSTableSize: 0x0
HEADER-NEXT: LoadConfigTableRVA: 0x0
HEADER-NEXT: LoadConfigTableSize: 0x0
HEADER-NEXT: BoundImportRVA: 0x0
HEADER-NEXT: BoundImportSize: 0x0
HEADER-NEXT: IATRVA: 0x3034
HEADER-NEXT: IATSize: 0xC
HEADER-NEXT: DelayImportDescriptorRVA: 0x0
HEADER-NEXT: DelayImportDescriptorSize: 0x0
HEADER-NEXT: CLRRuntimeHeaderRVA: 0x0
HEADER-NEXT: CLRRuntimeHeaderSize: 0x0
HEADER-NEXT: ReservedRVA: 0x0
HEADER-NEXT: ReservedSize: 0x0
HEADER-NEXT: }
HEADER-NEXT: }
HEADER-NEXT: DOSHeader {
HEADER-NEXT: Magic: MZ
HEADER-NEXT: UsedBytesInTheLastPage: 0
HEADER-NEXT: FileSizeInPages: 0
HEADER-NEXT: NumberOfRelocationItems: 0
HEADER-NEXT: HeaderSizeInParagraphs: 0
HEADER-NEXT: MinimumExtraParagraphs: 0
HEADER-NEXT: MaximumExtraParagraphs: 0
HEADER-NEXT: InitialRelativeSS: 0
HEADER-NEXT: InitialSP: 0
HEADER-NEXT: Checksum: 0
HEADER-NEXT: InitialIP: 0
HEADER-NEXT: InitialRelativeCS: 0
HEADER-NEXT: AddressOfRelocationTable: 64
HEADER-NEXT: OverlayNumber: 0
HEADER-NEXT: OEMid: 0
HEADER-NEXT: OEMinfo: 0
HEADER-NEXT: AddressOfNewExeHeader: 64
HEADER-NEXT: }
IMPORTS: Format: COFF-i386
IMPORTS: Arch: i386
IMPORTS: AddressSize: 32bit
IMPORTS: Import {
IMPORTS: Name: std32.dll
IMPORTS: ImportLookupTableRVA: 0x3028
IMPORTS: ImportAddressTableRVA: 0x3034
IMPORTS: Symbol: ExitProcess (0)
IMPORTS: Symbol: MessageBoxA (1)
IMPORTS: }
BASEREL: BaseReloc [
BASEREL: Entry {
BASEREL: Type: HIGHLOW
BASEREL: Address: 0x2005
BASEREL: }
BASEREL: Entry {
BASEREL: Type: HIGHLOW
BASEREL: Address: 0x200C
BASEREL: }
BASEREL: ]