Simon Marlow wrote:
Roman Leshchinskiy wrote:
Simon Marlow wrote:
Roman Leshchinskiy wrote:
Simon Marlow wrote:
We had a discussion on glasgow-haskell-users recently about whether
to use libtool, and the general concensus was not:
Hmm, I missed that one completely. It's probably too late for me to
jump in but I just don't see how the approach you outlined in
http://www.haskell.org/pipermail/glasgow-haskell-users/2007-June/012740.html
deals with systems which don't *have* an rpath and with users who
manually set LD_LIBRARY_PATH. To be entirely honest, I suspect that
what you are trying to achieve can't be done portably and reliably.
I don't expect it to be portable. So on MacOS X, is it the case that
the only way to build a binary that links to a particular shared
library outside the system location is to use LD_LIBRARY_PATH?
IIUC yes, except that it's called DYLD_LIBRARY_PATH. From man dyld:
For each library that a program uses, the dynamic linker looks
for it in each directory in DYLD_LIBRARY_PATH in turn. If it
still can't find the library, it then searches DYLD_FALL-
BACK_FRAMEWORK_PATH and DYLD_FALLBACK_LIBRARY_PATH in turn.
But I think on MacOS, the library paths are usually hardcoded in the
executable.
If you can hardcode the library paths in the executable, then that's
exactly what -rpath does isn't it?
After looking at the documentation I think I sort of understand how the
system works. When you build a shared library you can specify its
install_name which is the location where it will ultimately be
installed. When linking against the library, the linker hardcodes the
library's install_name into the executable. When the executable is run,
the dynamic loader looks for the library at that location. If it finds
the library, it's happy. If not, it will (appently) look in
DYLD_LIBRARY_PATH and friends and then in standard locations (/usr/lib
etc.) but will ignore DYLD_LIBRARY_PATH for setuid and setgid processes.
Roman
_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc