
#9625: ghc: panic using --enable-executable-dynamic -------------------------------------+------------------------------------- Reporter: | Owner: CoreyOConnor | Status: new Type: bug | Milestone: Priority: normal | Version: 7.8.3 Component: Package | Keywords: system | Architecture: Unknown/Multiple Resolution: | Difficulty: Unknown Operating System: | Blocked By: Unknown/Multiple | Related Tickets: Type of failure: Compile- | time crash | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Changes (by thomie): * cc: ezyang (added) * component: Compiler => Package system Old description:
(from: https://github.com/haskell/cabal/issues/2039)
Using --enable-executable-dynamic leads to a ghc panic.
Reproduction steps:
1. clone https://github.com/coreyoconnor/executable-dynamic-issue 2. cabal configure --enable-tests --enable-executable-dynamic 3. cabal test
Expected results: Test executes and passes.
Actual results:
{{{ ghc: panic! (the 'impossible' happened) (GHC version 7.8.2 for x86_64 -unknown-linux): Don't understand library name verify-foo }}}
Actual results varies based on the name of "verify-foo" test suite. Other names tried: "verifyFoo", "VerifyFoo". All of which also fail.
Removing "--enable-executable-dynamic" results in a pass regardless of test suite name.
Reproduced on GHC 7.8.2, GHC 7.8.3, Cabal 1.18, Cabal 1.20. Ubuntu.
New description: (from: https://github.com/haskell/cabal/issues/2039) Using --enable-executable-dynamic leads to a ghc panic. Reproduction steps: {{{ 1. git clone https://github.com/coreyoconnor/executable-dynamic-issue 2. cabal configure --enable-tests --enable-executable-dynamic 3. cabal test }}} Expected results: Test executes and passes. Actual results: {{{ ghc: panic! (the 'impossible' happened) (GHC version 7.8.2 for x86_64 -unknown-linux): Don't understand library name verify-foo }}} Actual results varies based on the name of "verify-foo" test suite. Other names tried: "verifyFoo", "VerifyFoo". All of which also fail. Removing "--enable-executable-dynamic" results in a pass regardless of test suite name. Reproduced on GHC 7.8.2, GHC 7.8.3, Cabal 1.18, Cabal 1.20. Ubuntu. -- Comment: I ran into other problems trying to reproduce this with ghc HEAD, but can confirm the bug exists in 7.8.3 (and 7.8.3.20141105). Here's a slightly simplified testcase: {{{ #!haskell $ cat foo.cabal name: foo version: 0.1.0.0 build-type: Simple cabal-version: >=1.8 Library Test-Suite bar type: detailed-0.9 test-module: Test build-depends: foo, base, Cabal $ cat Setup.hs import Distribution.Simple main = defaultMain $ cat Test.hs module Test where import Distribution.TestSuite tests :: IO [Test] tests = return [] $ cabal configure --enable-tests --enable-executable-dynamic Resolving dependencies... Configuring foo-0.1.0.0... $ cabal build Building foo-0.1.0.0... Preprocessing library foo-0.1.0.0... In-place registering foo-0.1.0.0... Preprocessing test suite 'bar' for foo-0.1.0.0... [1 of 1] Compiling Test ( Test.hs, dist/build/Test.o ) In-place registering bar-0.1.0.0... [1 of 1] Compiling Main ( dist/build/barStub/barStub- tmp/barStub.hs, dist/build/barStub/barStub-tmp/Main.dyn_o ) Linking dist/build/barStub/barStub ... ghc: panic! (the 'impossible' happened) (GHC version 7.8.3 for x86_64-unknown-linux): Don't understand library name bar }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9625#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler