[Hackage] #515: --extra-lib-dirs= should add -R/-rpath to hsc2hs calls

Hackage trac at galois.com
Tue Mar 3 04:31:43 EST 2009

#515: --extra-lib-dirs= should add -R/-rpath to hsc2hs calls
  Reporter:  duncan           |        Owner:           
      Type:  defect           |       Status:  new      
  Priority:  normal           |    Milestone:  Cabal-1.8
 Component:  Cabal library    |      Version:  
  Severity:  normal           |     Keywords:           
Difficulty:  easy (<4 hours)  |   Ghcversion:           
  Platform:                   |  
 Currently the `--extra-lib-dirs=` flag is only used to add extra `-L`
 flags in calls to `gcc`, `hsc2hs` etc. On systems where `--extra-lib-
 dirs=` is necessary it's almost always the case that we also need
 `-R`/`-rpath` too. Apparently `-rpath` is somewhat controversial and some
 people argue against using it.

 However one case where it is clearly necessary is in invoking `hsc2hs`.
 This is because `hsc2hs` compiles, links and runs a C program. The program
 is run once on the host machine and never installed or distributed. So all
 the usual arguments against `-rpath` do not apply. Hard coding the paths
 of libs is fine since the program is only used once, in the build tree.
 It's also essential for it to actually work.

 Here's an example log from someone hitting this problem:
 $ cabal install pcre-light --extra-include-dirs=/usr/local/include
 Resolving dependencies...
 'pcre-light-0.3.1' is cached.
 Configuring pcre-light-0.3.1...
 Preprocessing library pcre-light-0.3.1...
 dist/build/Text/Regex/PCRE/Light/Base_hsc_make: error while loading shared
 libraries: libpcre.so.0: cannot open shared object file: No such file or
 running dist/build/Text/Regex/PCRE/Light/Base_hsc_make failed
 command was: dist/build/Text/Regex/PCRE/Light/Base_hsc_make

 On this system it appears that `/usr/local/lib` is not on the default
 static linker path, or the default dynamic linker path. So we need
 `-L/usr/local/lib` for the static linker and `-R/usr/local/lib` for the
 dynamic linker.

Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/515>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects

More information about the cabal-devel mailing list