hello32.test 4.62 KB
# RUN: yaml2obj < %p/Inputs/hello32.yaml > %t.obj
# RUN: lld-link -safeseh:no %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: 
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:   Magic: 0x10B
HEADER-NEXT:   MajorLinkerVersion: 14
HEADER-NEXT:   MinorLinkerVersion: 0
HEADER-NEXT:   SizeOfCode: 512
HEADER-NEXT:   SizeOfInitializedData: 1536
HEADER-NEXT:   SizeOfUninitializedData: 0
HEADER-NEXT:   AddressOfEntryPoint: 0x1000
HEADER-NEXT:   BaseOfCode: 0x1000
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: 20480
HEADER-NEXT:   SizeOfHeaders: 1024
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: 0x2000
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: 0x2034
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: 120
HEADER-NEXT:   FileSizeInPages: 1
HEADER-NEXT:   NumberOfRelocationItems: 0
HEADER-NEXT:   HeaderSizeInParagraphs: 4
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: 120
HEADER-NEXT: }

IMPORTS: Format: COFF-i386
IMPORTS: Arch: i386
IMPORTS: AddressSize: 32bit
IMPORTS: Import {
IMPORTS:   Name: std32.dll
IMPORTS:   ImportLookupTableRVA: 0x2028
IMPORTS:   ImportAddressTableRVA: 0x2034
IMPORTS:   Symbol: ExitProcess (0)
IMPORTS:   Symbol: MessageBoxA (1)
IMPORTS: }

BASEREL: BaseReloc [
BASEREL:   Entry {
BASEREL:     Type: HIGHLOW
BASEREL:     Address: 0x1005
BASEREL:   }
BASEREL:   Entry {
BASEREL:     Type: HIGHLOW
BASEREL:     Address: 0x100C
BASEREL:   }
BASEREL: ]