ANNOUNCE: GHC 7.8.1 Release Candidate 1
Christiaan Baaij
christiaan.baaij at gmail.com
Wed Feb 5 15:46:57 UTC 2014
On Feb 5, 2014, at 3:26 PM, Ryan Newton <rrnewton at gmail.com> wrote:
> I had some similar problems and had to fiddle with my DYLD_LIBRARY_PATH so that ghc-related executables would see the libffi.dylib that comes with GHC before any of my system-wide installed libffi.dylib.
>
> Why the permissive @rpath link for libffi.dylib if the GHC executables are supposed to come with their own?
See https://ghc.haskell.org/trac/ghc/ticket/8266 for more information about the dynamic linking on OS X.
The reason is two-fold:
- During development, the ghc binary, ghc-stage2, lives in 'TOP/inplace/lib/bin', while libffi lives in 'TOP/rts/dist/build'.
When deployed, the ghc binary lives in 'TOP/lib/ghc-<version>/bin', while libff lives in 'TOP/lib/ghc-<version>/rts-1.0'.
So, the relative paths differ during development and installation, meaning a hard-coded relative path was not an option.
- After some iterations, I decided to make OS X behave as much as Linux as possible.
Meaning that I just added LC_RPATH's for every library location on which a binary depends.
And every library on which binary depend is made @rpath-relative.
From the very bottom of the page https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/dyld.1.html it was my understanding that LC_RPATH were considered first when searching dylibs that had a path starting with @rpath.
But apparently that is not the case?
Christiaan
More information about the Glasgow-haskell-users
mailing list