
#8696: linking fails with 'relocation R_X86_64_PC32 against undefined symbol' -----------------------------+---------------------------------- Reporter: Kata | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.1-rc1 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 (amd64) Type of failure: Other | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -----------------------------+---------------------------------- Comment (by rwbarton): I looked into this a bit (with `cabal install --ghc-option=-v3 -v -v -v`) and it looks like * there are (at least) two modules in `lens` which use Template Haskell, `Control.Lens.At` and `System.IO.Error.Lens` * when building the first one `Control.Lens.At`, ghc correctly links the modules it needs to run the TH into a little shared library * when building the second one `System.IO.Error.Lens`, ghc doesn't include any modules (I only did a couple spot checks here, but) that were built before `Control.Lens.At` when building the shared library for TH. In particular, it includes `Control.Lens.TH` but not `Control.Lens.Internal.TH` which the former depends on. I didn't attempt to investigate in the source code why this is happening. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8696#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler