| # RUN: mkdir -p %t.dir |
| # RUN: yaml2obj %s -o %t.dir/foo.obj |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver foo.obj |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=DRIVER %s |
| |
| # DRIVER-NOT: IMAGE_FILE_UP_SYSTEM_ONLY |
| # DRIVER-NOT: IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER |
| # DRIVER: AddressOfEntryPoint: 0x1000 |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver:uponly foo.obj |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=UPONLY %s |
| |
| # UPONLY: IMAGE_FILE_UP_SYSTEM_ONLY |
| # UPONLY: AddressOfEntryPoint: 0x1000 |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver:wdm foo.obj |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=WDM %s |
| |
| # WDM: AddressOfEntryPoint: 0x1004 |
| # WDM: IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver:wdm,uponly foo.obj |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=BOTH %s |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver:uponly,wdm foo.obj |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=BOTH %s |
| |
| # BOTH: IMAGE_FILE_UP_SYSTEM_ONLY |
| # BOTH: AddressOfEntryPoint: 0x1004 |
| # BOTH: IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver foo.obj |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=FIXED1 %s |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver foo.obj /fixed:no |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=FIXED1 %s |
| |
| # FIXED1: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE |
| |
| # RUN: rm -f %t.dir/foo.sys |
| # RUN: cd %t.dir; lld-link /driver foo.obj /fixed |
| # RUN: llvm-readobj --file-headers %t.dir/foo.sys | FileCheck -check-prefix=FIXED2 %s |
| |
| # FIXED2-NOT: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE |
| |
| --- !COFF |
| header: |
| Machine: IMAGE_FILE_MACHINE_AMD64 |
| Characteristics: [] |
| sections: |
| - Name: .text |
| Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] |
| Alignment: 4096 |
| SectionData: 0000000000000000 |
| Relocations: |
| - VirtualAddress: 0 |
| SymbolName: __ImageBase |
| Type: IMAGE_REL_AMD64_ADDR64 |
| symbols: |
| - Name: .text |
| Value: 0 |
| SectionNumber: 1 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_STATIC |
| SectionDefinition: |
| Length: 8 |
| NumberOfRelocations: 1 |
| NumberOfLinenumbers: 0 |
| CheckSum: 0 |
| Number: 0 |
| - Name: main |
| Value: 0 |
| SectionNumber: 1 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_EXTERNAL |
| - Name: mainCRTStartup |
| Value: 0 |
| SectionNumber: 1 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_EXTERNAL |
| - Name: _NtProcessStartup |
| Value: 4 |
| SectionNumber: 1 |
| SimpleType: IMAGE_SYM_TYPE_NULL |
| ComplexType: IMAGE_SYM_DTYPE_NULL |
| StorageClass: IMAGE_SYM_CLASS_EXTERNAL |
| ... |