1# RUN: yaml2obj %p/Inputs/hello32.yaml -o %t.obj 2# RUN: lld-link -safeseh:no %t.obj %p/Inputs/std32.lib /subsystem:console \ 3# RUN: /entry:main@0 /out:%t.exe /appcontainer 4# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=HEADER %s 5# RUN: llvm-readobj --coff-imports %t.exe | FileCheck -check-prefix=IMPORTS %s 6# RUN: llvm-readobj --coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s 7 8HEADER: Format: COFF-i386 9HEADER-NEXT: Arch: i386 10HEADER-NEXT: AddressSize: 32bit 11HEADER-NEXT: ImageFileHeader { 12HEADER-NEXT: Machine: IMAGE_FILE_MACHINE_I386 (0x14C) 13HEADER-NEXT: SectionCount: 4 14HEADER-NEXT: TimeDateStamp: 15HEADER-NEXT: PointerToSymbolTable: 0x0 16HEADER-NEXT: SymbolCount: 0 17HEADER-NEXT: StringTableSize: 0 18HEADER-NEXT: OptionalHeaderSize: 224 19HEADER-NEXT: Characteristics [ (0x102) 20HEADER-NEXT: IMAGE_FILE_32BIT_MACHINE (0x100) 21HEADER-NEXT: IMAGE_FILE_EXECUTABLE_IMAGE (0x2) 22HEADER-NEXT: ] 23HEADER-NEXT: } 24HEADER-NEXT: ImageOptionalHeader { 25HEADER-NEXT: Magic: 0x10B 26HEADER-NEXT: MajorLinkerVersion: 14 27HEADER-NEXT: MinorLinkerVersion: 0 28HEADER-NEXT: SizeOfCode: 512 29HEADER-NEXT: SizeOfInitializedData: 1536 30HEADER-NEXT: SizeOfUninitializedData: 0 31HEADER-NEXT: AddressOfEntryPoint: 0x1000 32HEADER-NEXT: BaseOfCode: 0x1000 33HEADER-NEXT: BaseOfData: 0x0 34HEADER-NEXT: ImageBase: 0x400000 35HEADER-NEXT: SectionAlignment: 4096 36HEADER-NEXT: FileAlignment: 512 37HEADER-NEXT: MajorOperatingSystemVersion: 6 38HEADER-NEXT: MinorOperatingSystemVersion: 0 39HEADER-NEXT: MajorImageVersion: 0 40HEADER-NEXT: MinorImageVersion: 0 41HEADER-NEXT: MajorSubsystemVersion: 6 42HEADER-NEXT: MinorSubsystemVersion: 0 43HEADER-NEXT: SizeOfImage: 20480 44HEADER-NEXT: SizeOfHeaders: 1024 45HEADER-NEXT: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI (0x3) 46HEADER-NEXT: Characteristics [ (0x9140) 47HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_APPCONTAINER (0x1000) 48HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE (0x40) 49HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_NX_COMPAT (0x100) 50HEADER-NEXT: IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE (0x8000) 51HEADER-NEXT: ] 52HEADER-NEXT: SizeOfStackReserve: 1048576 53HEADER-NEXT: SizeOfStackCommit: 4096 54HEADER-NEXT: SizeOfHeapReserve: 1048576 55HEADER-NEXT: SizeOfHeapCommit: 4096 56HEADER-NEXT: NumberOfRvaAndSize: 16 57HEADER-NEXT: DataDirectory { 58HEADER-NEXT: ExportTableRVA: 0x0 59HEADER-NEXT: ExportTableSize: 0x0 60HEADER-NEXT: ImportTableRVA: 0x2000 61HEADER-NEXT: ImportTableSize: 0x28 62HEADER-NEXT: ResourceTableRVA: 0x0 63HEADER-NEXT: ResourceTableSize: 0x0 64HEADER-NEXT: ExceptionTableRVA: 0x0 65HEADER-NEXT: ExceptionTableSize: 0x0 66HEADER-NEXT: CertificateTableRVA: 0x0 67HEADER-NEXT: CertificateTableSize: 0x0 68HEADER-NEXT: BaseRelocationTableRVA: 0x4000 69HEADER-NEXT: BaseRelocationTableSize: 0x10 70HEADER-NEXT: DebugRVA: 0x0 71HEADER-NEXT: DebugSize: 0x0 72HEADER-NEXT: ArchitectureRVA: 0x0 73HEADER-NEXT: ArchitectureSize: 0x0 74HEADER-NEXT: GlobalPtrRVA: 0x0 75HEADER-NEXT: GlobalPtrSize: 0x0 76HEADER-NEXT: TLSTableRVA: 0x0 77HEADER-NEXT: TLSTableSize: 0x0 78HEADER-NEXT: LoadConfigTableRVA: 0x0 79HEADER-NEXT: LoadConfigTableSize: 0x0 80HEADER-NEXT: BoundImportRVA: 0x0 81HEADER-NEXT: BoundImportSize: 0x0 82HEADER-NEXT: IATRVA: 0x2034 83HEADER-NEXT: IATSize: 0xC 84HEADER-NEXT: DelayImportDescriptorRVA: 0x0 85HEADER-NEXT: DelayImportDescriptorSize: 0x0 86HEADER-NEXT: CLRRuntimeHeaderRVA: 0x0 87HEADER-NEXT: CLRRuntimeHeaderSize: 0x0 88HEADER-NEXT: ReservedRVA: 0x0 89HEADER-NEXT: ReservedSize: 0x0 90HEADER-NEXT: } 91HEADER-NEXT: } 92HEADER-NEXT: DOSHeader { 93HEADER-NEXT: Magic: MZ 94HEADER-NEXT: UsedBytesInTheLastPage: 120 95HEADER-NEXT: FileSizeInPages: 1 96HEADER-NEXT: NumberOfRelocationItems: 0 97HEADER-NEXT: HeaderSizeInParagraphs: 4 98HEADER-NEXT: MinimumExtraParagraphs: 0 99HEADER-NEXT: MaximumExtraParagraphs: 0 100HEADER-NEXT: InitialRelativeSS: 0 101HEADER-NEXT: InitialSP: 0 102HEADER-NEXT: Checksum: 0 103HEADER-NEXT: InitialIP: 0 104HEADER-NEXT: InitialRelativeCS: 0 105HEADER-NEXT: AddressOfRelocationTable: 64 106HEADER-NEXT: OverlayNumber: 0 107HEADER-NEXT: OEMid: 0 108HEADER-NEXT: OEMinfo: 0 109HEADER-NEXT: AddressOfNewExeHeader: 120 110HEADER-NEXT: } 111 112IMPORTS: Format: COFF-i386 113IMPORTS: Arch: i386 114IMPORTS: AddressSize: 32bit 115IMPORTS: Import { 116IMPORTS: Name: std32.dll 117IMPORTS: ImportLookupTableRVA: 0x2028 118IMPORTS: ImportAddressTableRVA: 0x2034 119IMPORTS: Symbol: ExitProcess (0) 120IMPORTS: Symbol: MessageBoxA (1) 121IMPORTS: } 122 123BASEREL: BaseReloc [ 124BASEREL: Entry { 125BASEREL: Type: HIGHLOW 126BASEREL: Address: 0x1005 127BASEREL: } 128BASEREL: Entry { 129BASEREL: Type: HIGHLOW 130BASEREL: Address: 0x100C 131BASEREL: } 132BASEREL: ] 133