aboutsummaryrefslogtreecommitdiff
path: root/test/COFF/imports-gnu.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/COFF/imports-gnu.test')
-rw-r--r--test/COFF/imports-gnu.test29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/COFF/imports-gnu.test b/test/COFF/imports-gnu.test
new file mode 100644
index 000000000000..e56be2f446b7
--- /dev/null
+++ b/test/COFF/imports-gnu.test
@@ -0,0 +1,29 @@
+# REQUIRES: x86
+# Verify that the lld can link to GNU import libs.
+#
+# RUN: llvm-mc -triple=x86_64-windows-gnu %p/Inputs/gnu-implib-head.s -filetype=obj -o %t-dabcdh.o
+# RUN: llvm-mc -triple=x86_64-windows-gnu %p/Inputs/gnu-implib-func.s -filetype=obj -o %t-dabcds00000.o
+# RUN: llvm-mc -triple=x86_64-windows-gnu %p/Inputs/gnu-implib-tail.s -filetype=obj -o %t-dabcdt.o
+# RUN: rm -f %t-implib.a
+# RUN: llvm-ar rcs %t-implib.a %t-dabcdh.o %t-dabcds00000.o %t-dabcdt.o
+# Not linking with -lldmingw; one can link to GNU import libs even if not targeting MinGW.
+# RUN: lld-link -out:%t.exe -entry:main -subsystem:console \
+# RUN: %p/Inputs/hello64.obj %p/Inputs/std64.lib %t-implib.a -include:func
+# RUN: llvm-readobj -coff-imports %t.exe | FileCheck -check-prefix=IMPORT %s
+
+# Check that import entries from both libraries show up.
+
+IMPORT: Import {
+IMPORT-NEXT: Name: foo.dll
+IMPORT-NEXT: ImportLookupTableRVA:
+IMPORT-NEXT: ImportAddressTableRVA:
+IMPORT-NEXT: Symbol: func (0)
+IMPORT-NEXT: }
+IMPORT-NEXT: Import {
+IMPORT-NEXT: Name: std64.dll
+IMPORT-NEXT: ImportLookupTableRVA:
+IMPORT-NEXT: ImportAddressTableRVA:
+IMPORT-NEXT: Symbol: ExitProcess (0)
+IMPORT-NEXT: Symbol: (50)
+IMPORT-NEXT: Symbol: MessageBoxA (1)
+IMPORT-NEXT: }