Ticket #5507 (closed bug: fixed)

Opened 21 months ago

Last modified 21 months ago

Template Haskell needs extra library dirs

Reported by: jwlato Owned by: igloo
Priority: normal Milestone: 7.4.1
Component: Template Haskell Version: 7.2.1
Keywords: template haskell, link Cc: jwlato@…
Operating System: MacOS X Architecture: x86_64 (amd64)
Type of failure: Compile-time crash Difficulty:
Test Case: Blocked By:
Blocking: Related Tickets:

Description

Template Haskell fails to link c libraries which are located in non-standard locations. On my system, gtk libraries are installed in /opt/local/lib; ghc-pkg describe reports:

library-dirs: /Users/kathleenhouse/.cabal/lib/cairo-0.12.1/ghc-7.2.1
              /opt/local/lib

and building ordinary Haskell packages with cairo/gtk works properly.

However, if a package imports Cairo, Template Haskell fails to find the C library. The error (from ghc) is:

Loading package cairo-0.12.1 ... <command line>: can't load .so/.DLL for: libcairo.dylib (dlopen(libcairo.dylib, 9): image not found)
cabal: Error: some packages failed to install:

Attachments

tester.tar.bz2 Download (11.2 KB) - added by jwlato 21 months ago.
test case

Change History

Changed 21 months ago by jwlato

test case

Changed 21 months ago by jwlato

In the test code, run the script runner.sh. This will install a Haskell package named testmod, then load ghci. In ghci, run main and TH should fail.

Changed 21 months ago by igloo

  • owner set to igloo
  • os changed from Unknown/Multiple to MacOS X

Works for me on Linux. I'll try on OS X.

Changed 21 months ago by igloo

  • status changed from new to closed
  • resolution set to fixed
  • milestone set to 7.4.1

Aha, on OS X I can reproduce this with 7.2 but not HEAD. So I think this is fixed, although I can't easily find the patch that fixed it.

Changed 21 months ago by jwlato

Great, thanks for looking into it.

Note: See TracTickets for help on using tickets.