Dynamic libraries and GHCi

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Thu May 20 08:07:41 EDT 2010


On May 20, 2010, at 06:23 , Simon Marlow wrote:
> On 18/05/2010 17:48, John Lato wrote:
>>> From: Simon Marlow<marlowsd at gmail.com>
>>>> But currently there is one problem with "GhcShared=YES": with this
>>>> option, the stage-2 compiler gets linked dynamically but the
>>>> corresponding inplace shell wrapper does not set  
>>>> (DY)LD_LIBRARY_PATH,
>>>> thus ./inplace/bin/ghc-stage2 doesn't run at all. I could work  
>>>> around
>>>> this by manually symlinking all the dynamic libraries to ./ 
>>>> inplace/lib
>>>> and setting (DY)LD_LIBRARY_PATH to there, but obvisouly there  
>>>> should
>>>> be a solution better than this.
>>>
>>> On Linux we link the binary using -rpath (I know OS X doesn't have
>>> -rpath).  This is another issue we need to resolve before we can  
>>> switch
>>> to a dynamically-linked GHCi.
>>
>> When you say OSX doesn't have -rpath, do you mean there's some  
>> problem
>> with using -rpath on OSX?  I have code that links to a 3rd-party
>> library (libcudart.dylib) at runtime and it seems to use -rpath fine.
>> This is with ghc-6.12.1.
>
> It was my understanding that OS X doesn't have -rpath from reading
>
> http://hackage.haskell.org/trac/ghc/wiki/SharedLibraries/Management
>
> and from what I remember Mac people saying in the past.  Or maybe  
> they were just saying that -rpath is not the right thing on OS X  
> because libraries themselves have paths baked in.


The latter.  Also, I'd recommend DYLD_FALLBACK_LIBRARY_PATH per Apple  
recommendations, as you can otherwise get weird results.

Note also that the baked-in path is the path of last resort.  It might  
be possible to (ab)use this.

-- 
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH


-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
Url : http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20100520/ed87b064/PGP.bin


More information about the Glasgow-haskell-users mailing list