[GHC] #11042: Template Haskell / GHCi does not respect extra-lib-dirs

GHC ghc-devs at haskell.org
Sun Nov 1 08:41:36 UTC 2015


#11042: Template Haskell / GHCi does not respect extra-lib-dirs
-------------------------------------+-------------------------------------
           Reporter:  mboes          |             Owner:
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  7.10.2
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:  #10458 #5289
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 In particular when compiling on NixOS, but also in many other situations,
 it is often needed to pass --extra-lib-dirs / --extra-include-dirs to
 cabal/stack, to help GHC find required system libraries. This works fine
 for GHC, but not GHCi, and therefore also not Template Haskell code.

 Minimal example attached. Try it in an environment where libz is not in a
 standard location, e.g. inside a nix-shell. Note that if you remove the
 template Haskell splice in Main.hs, the code compiles just fine.

 This affects GHC 7.10.2, but also HEAD from 2015-08-28, even one including
 Tamar Christina's 5d841108acef950fed6a5e608ac9b18e7431aa87 commit cherry-
 picked. I haven't been able to test more recent HEAD, because of unrelated
 compilation issues.

 I surmise that a fix to #10458, which currently blocks using HaskellR in
 GHCi, would also fix this, but I'm not sure. The error message I get is
 different:

 {{{
 $ stack build --skip-ghc-check --extra-lib-
 dirs=/nix/store/31w31mc8immhpnmxvcl4l0fvc3i5iwh0-zlib-1.2.8/lib --extra-
 include-
 dirs=/nix/store/31w31mc8immhpnmxvcl4l0fvc3i5iwh0-zlib-1.2.8/include
 b-0.1.0.0: build
 Preprocessing executable 'b' for b-0.1.0.0...
 [2 of 2] Compiling Main             ( src/Main.hs, .stack-
 work/dist/x86_64-linux/Cabal-1.23.0.0/build/b/b-tmp/Main.o )
 <command line>: can't load .so/.DLL for: libz.so (libz.so: cannot open
 shared object file: No such file or directory)

 --  While building package b-0.1.0.0 using:
       /home/mboes/.stack/setup-exe-cache/setup-Simple-
 Cabal-1.23.0.0-x86_64-linux-ghc-7.11.20150828 --builddir=.stack-
 work/dist/x86_64-linux/Cabal-1.23.0.0/ build exe:b --ghc-options " -ddump-
 hi -ddump-to-file"
     Process exited with code: ExitFailure 1
 }}}

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


More information about the ghc-tickets mailing list