llvm-project/lld/test/COFF/hello32.test
Saleem Abdulrasool 671029daec COFF: support the /appcontainer flag
The /appcontainer flag indicates that the module may only be used inside
an application container (for isolation).  This has been supported by
link.exe since Windows 8.0.  It sets an additional bit in the PE DLL
Characteristics flag to indicate the behavioural change.

llvm-svn: 299728
2017-04-06 23:07:53 +00:00

131 lines
4.6 KiB
Plaintext

# 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: ]