HEAD doesn't build (was Re: patch applied (ghc): Add hardwire-lib-paths option and make it default for inplace invocations)

Roman Leshchinskiy rl at cse.unsw.edu.au
Wed Aug 1 22:11:01 EDT 2007


R Hayes wrote:
> 
> I will reiterate what I understand the goals to be:
> 
> 1) When creating an executable, specify where the dynamic loader should 
> look for shared libraries at runtime.  The intent is to expand the 
> shared library search space beyond the default search path and remove 
> the need to set environment variables.  
> 
> 2) When running an executable, override the default.  Primarily a 
> requirement for building GHC.

I would add:

   3) Building binary distributions of ghc-compiled programs. Those can't
      use -rpath for obvious reasons.

   4) ghc-inplace should be able to produce binaries which use libraries
      from the uninstalled tree. Hacking on ghc would become rather
      annoying otherwise.

> For Mac: The -rpath switch is not available on Mac OS X because it is 
> superfluous.  The default behavior of embedding a location for each 
> individual shared library is at least as good.  Cabal (and the GHC build 
> process) should use their knowledge of the ultimate install location to 
> set the install name when shared libraries are built.  In-place 
> compilation can override this with DYLD_LIBRARY_PATH

The problem is that this scheme doesn't really account for 3) and 4).

> For Linux: On linux, we should be sure to use the --enable-new-dtags 
> switch if we use -rpath.  Otherwise we risk having paths that can't be 
> overridden by LD_LIBRARY_PATH.  I know we don't want to have an install 
> that *requires* root access, but we should consider adding entries to 
> /etc/ld.so.conf and running ldconfig to eliminate the need to hardwire 
> path names.

IMO, this is a very bad idea. It shouldn't be necessary and if it was it
would be the OS package manager's job to add such entries upon
installation and, crucially, to remove them upon deinstallation.

Roman





More information about the Cvs-ghc mailing list