diff options
author | Peter Trommler <ptrommler@acm.org> | 2015-05-19 01:21:09 -0500 |
---|---|---|
committer | Austin Seipp <austin@well-typed.com> | 2015-05-19 01:24:57 -0500 |
commit | 85bf9e49f5ab4e0681eeda2549dbd4b5faf3ef7f (patch) | |
tree | a95bdf71538c87e74d0633b65463550227c10a9f /testsuite | |
parent | eaaa38ba24d5152623cb202a98f71ed09deef0bb (diff) | |
download | haskell-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.script | 5 | ||||
-rw-r--r-- | testsuite/tests/ghci/scripts/T10110.stdout | 3 | ||||
-rw-r--r-- | testsuite/tests/ghci/scripts/T10110A.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/ghci/scripts/T10110B.hs | 3 | ||||
-rw-r--r-- | testsuite/tests/ghci/scripts/T10110C.hs | 5 | ||||
-rwxr-xr-x | testsuite/tests/ghci/scripts/all.T | 1 |
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']) |