brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · 041b328 Raw
135 lines · plain
1# RUN: yaml2obj %p/Inputs/export.yaml -o %t.obj2#3# RUN: lld-link /out:%t.dll /dll %t.obj /export:exportfn1 /export:exportfn24# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK1 %s5 6CHECK1:      Export Table:7CHECK1-NEXT: DLL name: export.test.tmp.dll8CHECK1-NEXT: Ordinal base: 19CHECK1-NEXT: Ordinal      RVA  Name10CHECK1-NEXT:       1   0x1008  exportfn111CHECK1-NEXT:       2   0x1010  exportfn212 13# RUN: lld-link /out:%t.dll /dll %t.obj /export:exportfn1,@5 /export:exportfn214# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK2 %s15 16CHECK2:      Export Table:17CHECK2-NEXT: DLL name: export.test.tmp.dll18CHECK2-NEXT: Ordinal base: 519CHECK2-NEXT: Ordinal      RVA  Name20CHECK2-NEXT:       5   0x1008  exportfn121CHECK2-NEXT:       6   0x1010  exportfn222CHECK2-NEXT:       7   0x1010  exportfn323 24# RUN: lld-link /out:%t.dll /dll %t.obj /export:exportfn1,@5,noname /export:exportfn225# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK3 %s26 27CHECK3:      Export Table:28CHECK3-NEXT: DLL name: export.test.tmp.dll29CHECK3-NEXT: Ordinal base: 530CHECK3-NEXT: Ordinal      RVA  Name31CHECK3-NEXT:       5   0x100832CHECK3-NEXT:       6   0x1010  exportfn233 34# RUN: lld-link /out:%t.dll /dll %t.obj /export:f1=exportfn1 /export:f2=exportfn2 /implib:%t.lib35# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK4 %s36# RUN: llvm-nm %t.lib | FileCheck -check-prefix=CHECK4-NM %s37 38CHECK4:      Export Table:39CHECK4-NEXT: DLL name: export.test.tmp.dll40CHECK4-NEXT: Ordinal base: 141CHECK4-NEXT: Ordinal      RVA  Name42CHECK4-NEXT:       1   0x1010  exportfn343CHECK4-NEXT:       2   0x1008  f144CHECK4-NEXT:       3   0x1010  f245CHECK4-NM: 00000000 T f146CHECK4-NM: 00000000 T f247 48# RUN: echo "EXPORTS exportfn1 @3" > %t.def49# RUN: echo "fn2=exportfn2 @2" >> %t.def50# RUN: lld-link /out:%t.dll /dll %t.obj /def:%t.def51# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=CHECK5 %s52 53CHECK5:      Export Table:54CHECK5-NEXT: DLL name: export.test.tmp.dll55CHECK5-NEXT: Ordinal base: 256CHECK5-NEXT: Ordinal      RVA  Name57CHECK5-NEXT:       2   0x1010  fn258CHECK5-NEXT:       3   0x1008  exportfn159CHECK5-NEXT:       4   0x1010  exportfn360 61# RUN: lld-link /out:%t.DLL /dll %t.obj /export:exportfn1 /export:exportfn2 \62# RUN:   /export:exportfn1 /export:exportfn2,@5 >& %t.log63# RUN: FileCheck -check-prefix=CHECK6 %s < %t.log64 65CHECK6:     duplicate /export option: exportfn266CHECK6-NOT: duplicate /export option: exportfn167 68# RUN: llvm-nm -M %t.lib | FileCheck --check-prefix=SYMTAB %s69 70SYMTAB: __imp_exportfn1 in export.test.tmp.DLL71SYMTAB: __imp_exportfn2 in export.test.tmp.DLL72SYMTAB: __imp_exportfn3 in export.test.tmp.DLL73SYMTAB: exportfn1 in export.test.tmp.DLL74SYMTAB: exportfn2 in export.test.tmp.DLL75SYMTAB: exportfn3 in export.test.tmp.DLL76 77# RUN: lld-link /out:%t.dll /dll %t.obj /export:foo=kernel32.foobar78# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=FORWARDER %s79# RUN: llvm-nm -M %t.lib | FileCheck --check-prefix=SYMTAB-FWD %s80 81# RUN: echo "EXPORTS foo=kernel32.foobar" > %t.def82# RUN: lld-link /out:%t-def.dll /dll %t.obj /def:%t.def83# RUN: llvm-objdump -p %t-def.dll | FileCheck --check-prefix=FORWARDER %s84# RUN: llvm-nm -M %t-def.lib | FileCheck --check-prefix=SYMTAB-FWD %s85 86FORWARDER: Export Table:87FORWARDER:  DLL name: export.test.tmp88FORWARDER:  Ordinal base: 189FORWARDER:  Ordinal      RVA  Name90FORWARDER:        1   0x1010  exportfn91FORWARDER:        2           foo (forwarded to kernel32.foobar)92 93SYMTAB-FWD:      __imp_exportfn3 in export.test.tmp94SYMTAB-FWD-NEXT: __imp_foo in export.test.tmp95SYMTAB-FWD-NEXT: exportfn3 in export.test.tmp96SYMTAB-FWD-NEXT: foo in export.test.tmp97 98# RUN: lld-link /out:%t-fwd-priv.dll /dll %t.obj /export:foo=kernel32.foobar,DATA,PRIVATE99# RUN: llvm-objdump -p %t-fwd-priv.dll | FileCheck --check-prefix=FORWARDER %s100# RUN: llvm-nm -M %t-fwd-priv.lib | FileCheck --check-prefix=SYMTAB-FWD-PRIV %s101 102SYMTAB-FWD-PRIV:      __imp_exportfn3 in export.test.tmp-fwd-priv103SYMTAB-FWD-PRIV-NOT:  __imp_foo104SYMTAB-FWD-PRIV-NEXT: exportfn3 in export.test.tmp-fwd-priv105SYMTAB-FWD-PRIV-NOT:  foo106 107# RUN: echo "EXPORTS foo=kernel32.foobar DATA PRIVATE" > %t-fwd-priv.def108# RUN: lld-link /out:%t-fwd-priv-def.dll /dll %t.obj /def:%t-fwd-priv.def109# RUN: llvm-objdump -p %t-fwd-priv-def.dll | FileCheck --check-prefix=FORWARDER %s110# RUN: llvm-nm -M %t-fwd-priv-def.lib | FileCheck --check-prefix=SYMTAB-FWD-PRIV %s111 112# RUN: lld-link /out:%t-fwd-ord.dll /dll %t.obj /export:foo=kernel32.foobar,@3,NONAME113# RUN: llvm-objdump -p %t-fwd-ord.dll | FileCheck --check-prefix=FORWARDER-ORD %s114# RUN: llvm-nm -M %t-fwd-ord.lib | FileCheck --check-prefix=SYMTAB-FWD %s115 116FORWARDER-ORD:      Export Table:117FORWARDER-ORD-NEXT:  DLL name: export.test.tmp-fwd-ord118FORWARDER-ORD-NEXT:  Ordinal base: 3119FORWARDER-ORD-NEXT:  Ordinal      RVA  Name120FORWARDER-ORD-NEXT:        3           (forwarded to kernel32.foobar)121FORWARDER-ORD-NEXT:        4   0x1010  exportfn3122 123# RUN: echo "EXPORTS foo=kernel32.foobar @3 NONAME" > %t-fwd-ord.def124# RUN: lld-link /out:%t-fwd-ord-def.dll /dll %t.obj /def:%t-fwd-ord.def125# RUN: llvm-objdump -p %t-fwd-ord-def.dll | FileCheck --check-prefix=FORWARDER-ORD %s126# RUN: llvm-nm -M %t-fwd-ord-def.lib | FileCheck --check-prefix=SYMTAB-FWD %s127 128# RUN: lld-link /out:%t.dll /dll %t.obj /merge:.rdata=.text /export:exportfn1 /export:exportfn2129# RUN: llvm-objdump -p %t.dll | FileCheck --check-prefix=MERGE --match-full-lines %s130 131MERGE:      DLL name: export.test.tmp.dll132MERGE:      Ordinal      RVA  Name133MERGE-NEXT:       1   0x1008  exportfn1134MERGE-NEXT:       2   0x1010  exportfn2135