Problem resolving library paths (missing path in package.conf?)
Hi,
When I run ghci and try to load the readline package, I get an error:
crossroads-able> ghci -package readline
___ ___ _
/ _ \ /\ /\/ __(_)
/ /_\// /_/ / / | | GHC Interactive, version 6.4.1, for Haskell 98.
/ /_\\/ __ / /___| | http://www.haskell.org/ghc/
\____/\/ /_/\____/|_| Type :? for help.
Loading package base-1.0 ... linking ... done.
Loading package readline-1.0 ... ghc-6.4.1: can't load .so/.DLL for: readline.5 (dlopen(libreadline.5.dylib, 10): image not found)
crossroads-able>
The reason for this is that in package.conf, under the InstalledPackageInfo for readline, the libraryDirs entry is
libraryDirs = ["/opt/local/lib/ghc-6.4.1"]
However, the readline library is in /opt/local/lib. If I manually edit the package.conf so that the above is
libraryDirs = ["/opt/local/lib/ghc-6.4.1","/opt/local/lib"]
the above problem is fixed.
I can tweak the darwinports installation procedure to do this editing automatically, but it shouldn't be necessary. Is this a bug in the build or configuration system, or is there something else I have overlooked? My ghci has readline support so certainly the configuration system has found the library.
In case it helps, the build.mk file used was
#
# Local configuration overrides for DarwinPorts
#
ReadlineIncludePath=/opt/local/include
SRC_CC_OPTS += -I/opt/local/include
SRC_HC_OPTS += -I/usr/include -I/opt/local/include -L/usr/lib -L/opt/local/lib
EXTRA_HSC2HS_OPTS += -I/opt/local/include
EXTRA_LD_OPTS += -L/usr/lib
EXTRA_LD_OPTS += -L/opt/local/lib
Thanks, Greg Wright
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.4.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |