116 lines · plain
1# RUN: yaml2obj %s -o %t.obj2#3# RUN: lld-link /out:%t.dll /dll %t.obj4# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK1 %s5#6# CHECK1: Export Table:7# CHECK1: DLL name: ordinals-override.test.tmp.dll8# CHECK1: Ordinal base: 19# CHECK1: Ordinal RVA Name10# CHECK1-NEXT: 1 0x1010 ?bar@@YAXXZ11# CHECK1-NEXT: 2 0x1000 ?foo@@YAXXZ12# CHECK1-NEXT: 3 0x1020 baz13#14# RUN: lld-link /out:%t.dll /dll %t.obj /EXPORT:?foo@@YAXXZ,@5515# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK2 %s16#17# CHECK2: Export Table:18# CHECK2: DLL name: ordinals-override.test.tmp.dll19# CHECK2: Ordinal base: 5520# CHECK2: Ordinal RVA Name21# CHECK2-NEXT: 55 0x1000 ?foo@@YAXXZ22# CHECK2-NEXT: 56 0x1010 ?bar@@YAXXZ23# CHECK2-NEXT: 57 0x1020 baz24#25# RUN: lld-link /out:%t.dll /dll %t.obj /EXPORT:?foo@@YAXXZ,@55 /EXPORT:?bar@@YAXXZ,@12226# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK3 %s27#28# CHECK3: Export Table:29# CHECK3: DLL name: ordinals-override.test.tmp.dll30# CHECK3: Ordinal base: 5531# CHECK3: Ordinal RVA Name32# CHECK3-NEXT: 55 0x1000 ?foo@@YAXXZ33# CHECK3-NEXT: 122 0x1010 ?bar@@YAXXZ34# CHECK3-NEXT: 123 0x1020 baz35#36# RUN: echo "EXPORTS" > %t.def37# RUN: echo "?foo@@YAXXZ @55" >> %t.def38# RUN: echo "?bar@@YAXXZ @122" >> %t.def39# RUN: lld-link /out:%t.dll /dll %t.obj /DEF:%t.def 2>&1 | FileCheck --check-prefix=WARN --allow-empty %s40# WARN-NOT: lld-link: warning41#42# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK3 %s43#44# RUN: lld-link /out:%t.dll /dll %t.obj /DEF:%t.def /EXPORT:?foo@@YAXXZ,@10000 2>&1 | FileCheck --check-prefix=DUPLICATED %s45# DUPLICATED: lld-link: warning: duplicate export: ?foo@@YAXXZ first seen in /export, now in /def46#47# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK4 %s48#49# CHECK4: Export Table:50# CHECK4: DLL name: ordinals-override.test.tmp.dll51# CHECK4: Ordinal base: 12252# CHECK4: Ordinal RVA Name53# CHECK4-NEXT: 122 0x1010 ?bar@@YAXXZ54# CHECK4-NEXT: 10000 0x1000 ?foo@@YAXXZ55# CHECK4-NEXT: 10001 0x1020 baz56 57# The .drectve section below contains the following:58#59# Linker Directives60# -----------------61# /export:baz=?baz@@YAXXZ62# /EXPORT:?foo@@YAXXZ63# /EXPORT:?bar@@YAXXZ64 65--- !COFF66header:67 Machine: IMAGE_FILE_MACHINE_AMD6468 Characteristics: [ ]69sections:70 - Name: .drectve71 Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]72 Alignment: 173 SectionData: 2f6578706f72743a62617a3d3f62617a4040594158585a202f4558504f52543a3f666f6f4040594158585a202f4558504f52543a3f6261724040594158585a74 - Name: '.text$mn'75 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]76 Alignment: 1677 SectionData: C20000CCCCCCCCCCCCCCCCCCCCCCCCCCC20000CCCCCCCCCCCCCCCCCCCCCCCCCCC2000078symbols:79 - Name: '.text$mn'80 Value: 081 SectionNumber: 282 SimpleType: IMAGE_SYM_TYPE_NULL83 ComplexType: IMAGE_SYM_DTYPE_NULL84 StorageClass: IMAGE_SYM_CLASS_STATIC85 SectionDefinition:86 Length: 3587 NumberOfRelocations: 088 NumberOfLinenumbers: 089 CheckSum: 090 Number: 091 - Name: _DllMainCRTStartup92 Value: 093 SectionNumber: 294 SimpleType: IMAGE_SYM_TYPE_NULL95 ComplexType: IMAGE_SYM_DTYPE_NULL96 StorageClass: IMAGE_SYM_CLASS_EXTERNAL97 - Name: '?foo@@YAXXZ'98 Value: 099 SectionNumber: 2100 SimpleType: IMAGE_SYM_TYPE_NULL101 ComplexType: IMAGE_SYM_DTYPE_FUNCTION102 StorageClass: IMAGE_SYM_CLASS_EXTERNAL103 - Name: '?bar@@YAXXZ'104 Value: 16105 SectionNumber: 2106 SimpleType: IMAGE_SYM_TYPE_NULL107 ComplexType: IMAGE_SYM_DTYPE_FUNCTION108 StorageClass: IMAGE_SYM_CLASS_EXTERNAL109 - Name: '?baz@@YAXXZ'110 Value: 32111 SectionNumber: 2112 SimpleType: IMAGE_SYM_TYPE_NULL113 ComplexType: IMAGE_SYM_DTYPE_FUNCTION114 StorageClass: IMAGE_SYM_CLASS_EXTERNAL115...116