summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorPeter Trommler <ptrommler@acm.org>2015-05-19 01:21:09 -0500
committerAustin Seipp <austin@well-typed.com>2015-05-19 01:24:57 -0500
commit85bf9e49f5ab4e0681eeda2549dbd4b5faf3ef7f (patch)
treea95bdf71538c87e74d0633b65463550227c10a9f /testsuite
parenteaaa38ba24d5152623cb202a98f71ed09deef0bb (diff)
downloadhaskell-85bf9e49f5ab4e0681eeda2549dbd4b5faf3ef7f.tar.gz
Add regression test for #10110.
Module C imports a from Module A and b from module B. B does not import anything from A. So if ld is configured to drop DT_NEEDED tags for libraries it does not depend on no DT_NEEDED tag for the temporary shared object containing module A is recorded in the temp SO containing module B. This leads to an undefined symbol when linking the temp SO for module C. Fixes #10110. Reviewed By: austin Differential Revision: https://phabricator.haskell.org/D895 GHC Trac Issues: #10110
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/ghci/scripts/T10110.script5
-rw-r--r--testsuite/tests/ghci/scripts/T10110.stdout3
-rw-r--r--testsuite/tests/ghci/scripts/T10110A.hs4
-rw-r--r--testsuite/tests/ghci/scripts/T10110B.hs3
-rw-r--r--testsuite/tests/ghci/scripts/T10110C.hs5
-rwxr-xr-xtestsuite/tests/ghci/scripts/all.T1
6 files changed, 21 insertions, 0 deletions
diff --git a/testsuite/tests/ghci/scripts/T10110.script b/testsuite/tests/ghci/scripts/T10110.script
new file mode 100644
index 0000000000..df67c30f2b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110.script
@@ -0,0 +1,5 @@
+:set -fobject-code
+:load T10110A T10110B T10110C
+T10110A.a
+T10110B.b
+T10110C.c
diff --git a/testsuite/tests/ghci/scripts/T10110.stdout b/testsuite/tests/ghci/scripts/T10110.stdout
new file mode 100644
index 0000000000..21cc9a89d1
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110.stdout
@@ -0,0 +1,3 @@
+3
+5
+8
diff --git a/testsuite/tests/ghci/scripts/T10110A.hs b/testsuite/tests/ghci/scripts/T10110A.hs
new file mode 100644
index 0000000000..8482e7f673
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110A.hs
@@ -0,0 +1,4 @@
+module T10110A (a) where
+{-# NOINLINE a #-}
+a :: Int
+a = 3
diff --git a/testsuite/tests/ghci/scripts/T10110B.hs b/testsuite/tests/ghci/scripts/T10110B.hs
new file mode 100644
index 0000000000..65cfc7efed
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110B.hs
@@ -0,0 +1,3 @@
+module T10110B (b) where
+b :: Int
+b = 5
diff --git a/testsuite/tests/ghci/scripts/T10110C.hs b/testsuite/tests/ghci/scripts/T10110C.hs
new file mode 100644
index 0000000000..70692076a4
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110C.hs
@@ -0,0 +1,5 @@
+module T10110C (c) where
+import T10110A (a)
+import T10110B (b)
+c :: Int
+c = a+b
diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T
index 85ba5afe17..e0f230185b 100755
--- a/testsuite/tests/ghci/scripts/all.T
+++ b/testsuite/tests/ghci/scripts/all.T
@@ -217,3 +217,4 @@ test('T10408A', normal, run_command,
test('T10408B', normal, run_command,
['$MAKE -s --no-print-directory T10408B'])
test('T10248', normal, ghci_script, ['T10248.script'])
+test('T10110', normal, ghci_script, ['T10110.script'])