Problem resolving library paths (missing path in package.conf?)
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