[GHC] #14856: GHC API: Linker failure on loading target multiple times

GHC ghc-devs at haskell.org
Sun Feb 25 23:11:09 UTC 2018


#14856: GHC API: Linker failure on loading target multiple times
-------------------------------+----------------------------------------
        Reporter:  fizzixnerd  |                Owner:  (none)
            Type:  bug         |               Status:  new
        Priority:  normal      |            Milestone:
       Component:  GHC API     |              Version:  8.2.2
      Resolution:              |             Keywords:  GHC API Linker
Operating System:  Linux       |         Architecture:  Unknown/Multiple
 Type of failure:  Other       |            Test Case:
      Blocked By:              |             Blocking:
 Related Tickets:              |  Differential Rev(s):
       Wiki Page:              |
-------------------------------+----------------------------------------

Old description:

> Minimum Working Example: https://github.com/Fizzixnerd/ghc-bug
>
> `stack exec -- ghc --version`
> >The Glorious Glasgow Haskell Compilation System, version 8.2.2
>
> `uname --all`
> >Linux <REDACTED> 4.14.0-3-amd64 #1 SMP Debian 4.14.13-1 (2018-01-14)
> x86_64 GNU/Linux
>
> Description: Loading a dynamic module more than once causes a linker
> failure with the following message:
>
> '''
> /usr/bin/ld.gold: error: cannot find -lghc_2
> collect2: error: ld returned 1 exit status
> `gcc' failed in phase `Linker'. (Exit code: 1)
> *** Exception: ExitFailure 1
> '''
>
> `-lghc_2' sometimes is `-lghc_5' or other numbers.
>
> Steps to Reproduce:
> 1) Clone above repo.
> 2) `stack build`
> 3) `stack exec mwe-exe`
>
> The repo code will use the GHC API to load a string from the file
> contained in scripts/ named `val'.  There are three functions defined in
> src/Lib.hs.  `anotherFunc' should behave normally.  `someFunc' should
> display the bad behavior.
>
> Notes:
> - When using `intero`: intero must be restarted if this bug is
> encountered at the prompt, or else you will keep getting it over and over
> again.
>
> - I could not figure out how to load it up without using the `-dynamic'
> flag, but that should probably be checked out too.

New description:

 Minimum Working Example: https://github.com/Fizzixnerd/ghc-bug

 `stack exec -- ghc --version`
 >The Glorious Glasgow Haskell Compilation System, version 8.2.2

 `uname --all`
 >Linux <REDACTED> 4.14.0-3-amd64 #1 SMP Debian 4.14.13-1 (2018-01-14)
 x86_64 GNU/Linux

 Description: Loading a dynamic module more than once causes a linker
 failure with the following message:

 '''
 /usr/bin/ld.gold: error: cannot find -lghc_2
 collect2: error: ld returned 1 exit status
 `gcc' failed in phase `Linker'. (Exit code: 1)
 *** Exception: ExitFailure 1
 '''

 `-lghc_2' sometimes is `-lghc_5' or other numbers.

 Steps to Reproduce:
 1) Clone above repo.
 2) `stack build`
 3) `stack exec mwe-exe`

 The repo code will use the GHC API to load a string from the file
 contained in scripts/ named `val`.  There are three functions defined in
 src/Lib.hs.  `anotherFunc` should behave normally.  `someFunc' should
 display the bad behavior.

 Notes:
 - When using `intero`: intero must be restarted if this bug is encountered
 at the prompt, or else you will keep getting it over and over again.

 - I could not figure out how to load it up without using the `-dynamic'
 flag, but that should probably be checked out too.

--

Comment (by fizzixnerd):

 fixed formatting.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14856#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list