1# RUN: yaml2obj --docnum=1 %s -o %t 2# RUN: llvm-objdump -p %t | FileCheck %s --check-prefix=PE32PLUS --strict-whitespace --match-full-lines 3 4# PE32PLUS:{{.*}}file format coff-arm64 5# PE32PLUS-NEXT:Characteristics 0x22 6# PE32PLUS-NEXT: executable 7# PE32PLUS-NEXT: large address aware 8#PE32PLUS-EMPTY: 9# PE32PLUS-NEXT:Time/Date {{.*}} 19{{69|70}} 10# PE32PLUS-NEXT:Magic 020b (PE32+) 11# PE32PLUS-NEXT:MajorLinkerVersion 0 12# PE32PLUS-NEXT:MinorLinkerVersion 0 13# PE32PLUS-NEXT:SizeOfCode 0000000000000200 14# PE32PLUS-NEXT:SizeOfInitializedData 0000000000000400 15# PE32PLUS-NEXT:SizeOfUninitializedData 0000000000000000 16# PE32PLUS-NEXT:AddressOfEntryPoint 0000000000001000 17# PE32PLUS-NEXT:BaseOfCode 0000000000001000 18# PE32PLUS-NEXT:ImageBase 0000000140000000 19# PE32PLUS-NEXT:SectionAlignment 00001000 20# PE32PLUS-NEXT:FileAlignment 00000200 21# PE32PLUS-NEXT:MajorOSystemVersion 6 22# PE32PLUS-NEXT:MinorOSystemVersion 1 23# PE32PLUS-NEXT:MajorImageVersion 7 24# PE32PLUS-NEXT:MinorImageVersion 2 25# PE32PLUS-NEXT:MajorSubsystemVersion 8 26# PE32PLUS-NEXT:MinorSubsystemVersion 3 27# PE32PLUS-NEXT:Win32Version 00000000 28# PE32PLUS-NEXT:SizeOfImage 00004000 29# PE32PLUS-NEXT:SizeOfHeaders 00000200 30# PE32PLUS-NEXT:CheckSum 00000000 31# PE32PLUS-NEXT:Subsystem 00000003 (Windows CUI) 32# PE32PLUS-NEXT:DllCharacteristics 00008160 33# PE32PLUS-NEXT: HIGH_ENTROPY_VA 34# PE32PLUS-NEXT: DYNAMIC_BASE 35# PE32PLUS-NEXT: NX_COMPAT 36# PE32PLUS-NEXT: TERMINAL_SERVER_AWARE 37# PE32PLUS-NEXT:SizeOfStackReserve 0000000000100000 38# PE32PLUS-NEXT:SizeOfStackCommit 0000000000001000 39# PE32PLUS-NEXT:SizeOfHeapReserve 0000000000100000 40# PE32PLUS-NEXT:SizeOfHeapCommit 0000000000001000 41# PE32PLUS-NEXT:LoaderFlags 00000000 42# PE32PLUS-NEXT:NumberOfRvaAndSizes 00000010 43#PE32PLUS-EMPTY: 44# PE32PLUS-NEXT:The Data Directory 45# PE32PLUS-NEXT:Entry 0 0000000000000000 00000000 Export Directory [.edata (or where ever we found it)] 46# PE32PLUS-NEXT:Entry 1 0000000000000000 00000000 Import Directory [parts of .idata] 47# PE32PLUS-NEXT:Entry 2 0000000000000000 00000000 Resource Directory [.rsrc] 48# PE32PLUS-NEXT:Entry 3 0000000000003000 00000008 Exception Directory [.pdata] 49# PE32PLUS-NEXT:Entry 4 0000000000000000 00000000 Security Directory 50# PE32PLUS-NEXT:Entry 5 0000000000000000 00000000 Base Relocation Directory [.reloc] 51# PE32PLUS-NEXT:Entry 6 0000000000000000 00000000 Debug Directory 52# PE32PLUS-NEXT:Entry 7 0000000000000000 00000000 Description Directory 53# PE32PLUS-NEXT:Entry 8 0000000000000000 00000000 Special Directory 54# PE32PLUS-NEXT:Entry 9 0000000000000000 00000000 Thread Storage Directory [.tls] 55# PE32PLUS-NEXT:Entry a 0000000000000000 00000000 Load Configuration Directory 56# PE32PLUS-NEXT:Entry b 0000000000000000 00000000 Bound Import Directory 57# PE32PLUS-NEXT:Entry c 0000000000000000 00000000 Import Address Table Directory 58# PE32PLUS-NEXT:Entry d 0000000000000000 00000000 Delay Import Directory 59# PE32PLUS-NEXT:Entry e 0000000000000000 00000000 CLR Runtime Header 60# PE32PLUS-NEXT:Entry f 0000000000000000 00000000 Reserved 61 62--- !COFF 63OptionalHeader: 64 AddressOfEntryPoint: 4096 65 ImageBase: 0x140000000 66 SectionAlignment: 4096 67 FileAlignment: 512 68 MajorOperatingSystemVersion: 6 69 MinorOperatingSystemVersion: 1 70 MajorImageVersion: 7 71 MinorImageVersion: 2 72 MajorSubsystemVersion: 8 73 MinorSubsystemVersion: 3 74 Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI 75 DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ] 76 SizeOfStackReserve: 1048576 77 SizeOfStackCommit: 4096 78 SizeOfHeapReserve: 1048576 79 SizeOfHeapCommit: 4096 80 ExceptionTable: 81 RelativeVirtualAddress: 12288 82 Size: 8 83header: 84 Machine: IMAGE_FILE_MACHINE_ARM64 85 Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE ] 86sections: 87 - Name: .text 88 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] 89 VirtualAddress: 4096 90 VirtualSize: 4 91 SectionData: C0035FD6 92 - Name: .rdata 93 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] 94 VirtualAddress: 8192 95 VirtualSize: 12 96 SectionData: 0100400800000000E4E3E3E3 97 - Name: .pdata 98 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ] 99 VirtualAddress: 12288 100 VirtualSize: 8 101 SectionData: '0010000000200000' 102symbols: [] 103... 104 105## Test 32-bit object with full Characteristics and DllCharacteristics. 106# RUN: yaml2obj --docnum=2 %s -o %t2 107# RUN: llvm-objdump -p %t2 | FileCheck %s --check-prefix=PE32 --match-full-lines 108# PE32:{{.*}}file format coff-i386 109# PE32:Characteristics 0xffbf 110# PE32-NEXT: relocations stripped 111# PE32-NEXT: executable 112# PE32-NEXT: line numbers stripped 113# PE32-NEXT: symbols stripped 114# PE32-NEXT: large address aware 115# PE32-NEXT: little endian 116# PE32-NEXT: 32 bit words 117# PE32-NEXT: debugging information removed 118# PE32-NEXT: copy to swap file if on removable media 119# PE32-NEXT: copy to swap file if on network media 120# PE32-NEXT: system file 121# PE32-NEXT: DLL 122# PE32-NEXT: run only on uniprocessor machine 123# PE32-NEXT: big endian 124#PE32-EMPTY: 125# PE32:Time/Date {{.*}} 126# PE32-NEXT:Magic 010b (PE32) 127# PE32-NEXT:MajorLinkerVersion 0 128# PE32-NEXT:MinorLinkerVersion 0 129# PE32-NEXT:SizeOfCode 00000004 130# PE32-NEXT:SizeOfInitializedData 00000000 131# PE32-NEXT:SizeOfUninitializedData 00000000 132# PE32-NEXT:AddressOfEntryPoint 00000000 133# PE32-NEXT:BaseOfCode 00001000 134# PE32-NEXT:BaseOfData 00000000 135# PE32-NEXT:ImageBase 00000000 136# PE32-NEXT:SectionAlignment 00000001 137# PE32-NEXT:FileAlignment 00000001 138# PE32-NEXT:MajorOSystemVersion 0 139# PE32-NEXT:MinorOSystemVersion 0 140# PE32-NEXT:MajorImageVersion 0 141# PE32-NEXT:MinorImageVersion 0 142# PE32-NEXT:MajorSubsystemVersion 0 143# PE32-NEXT:MinorSubsystemVersion 0 144# PE32-NEXT:Win32Version 00000000 145# PE32-NEXT:SizeOfImage 000001a4 146# PE32-NEXT:SizeOfHeaders 000001a0 147# PE32-NEXT:CheckSum 00000000 148# PE32-NEXT:Subsystem 0000000a (EFI application) 149# PE32-NEXT:DllCharacteristics 0000ffe0 150# PE32-NEXT: HIGH_ENTROPY_VA 151# PE32-NEXT: DYNAMIC_BASE 152# PE32-NEXT: FORCE_INTEGRITY 153# PE32-NEXT: NX_COMPAT 154# PE32-NEXT: NO_ISOLATION 155# PE32-NEXT: NO_SEH 156# PE32-NEXT: NO_BIND 157# PE32-NEXT: APPCONTAINER 158# PE32-NEXT: WDM_DRIVER 159# PE32-NEXT: GUARD_CF 160# PE32-NEXT: TERMINAL_SERVER_AWARE 161--- !COFF 162header: 163 Machine: IMAGE_FILE_MACHINE_I386 164 Characteristics: [ IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LINE_NUMS_STRIPPED, 165 IMAGE_FILE_LOCAL_SYMS_STRIPPED, IMAGE_FILE_AGGRESSIVE_WS_TRIM, IMAGE_FILE_LARGE_ADDRESS_AWARE, 166 IMAGE_FILE_BYTES_REVERSED_LO, IMAGE_FILE_32BIT_MACHINE, IMAGE_FILE_DEBUG_STRIPPED, 167 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP, IMAGE_FILE_NET_RUN_FROM_SWAP, IMAGE_FILE_SYSTEM, 168 IMAGE_FILE_DLL, IMAGE_FILE_UP_SYSTEM_ONLY, IMAGE_FILE_BYTES_REVERSED_HI ] 169OptionalHeader: 170 Subsystem: IMAGE_SUBSYSTEM_EFI_APPLICATION 171 DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, 172 IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, 173 IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION, IMAGE_DLL_CHARACTERISTICS_NO_SEH, 174 IMAGE_DLL_CHARACTERISTICS_NO_BIND, IMAGE_DLL_CHARACTERISTICS_APPCONTAINER, 175 IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER, IMAGE_DLL_CHARACTERISTICS_GUARD_CF, 176 IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ] 177sections: 178 - Name: .text 179 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] 180 VirtualAddress: 4096 181 VirtualSize: 4 182 SectionData: C0035FD6 183symbols: 184