guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] build: cmake: Add input libraries to the rpath.


From: Andreas Enge
Subject: Re: [PATCH] build: cmake: Add input libraries to the rpath.
Date: Sun, 27 Apr 2014 10:59:27 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

On Fri, Apr 25, 2014 at 12:44:32PM -0500, Eric Bavier wrote:
> We can't set CMAKE_SKIP_BUILD_RPATH=OFF as it prevents tests from
> working, since the executables and libraries would not have references
> to libraries in the build tree (I ran the lapack build e.g. with your
> patch, and all the tests fail).

Yes, I noticed the same problem with lapack.

> Your post prompted me to look into this matter a bit more.  I found for
> the gmsh package I posted yesterday that I could add the following to
> #:configuration-flags instead of using the add-libs-to-runpath phase::
>     "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON"
>      ,(string-append "-DCMAKE_INSTALL_RPATH="
>                      (assoc-ref %outputs "out")
>                      "/lib")
> 
> I would defer to the cmake wiki page you linked above for a full
> explanation, but briefly: The CMAKE_INSTALL_RPATH_USE_LINK_PATH tells
> cmake to include in the installed rpath all of the directories of
> libraries it has linked into the library or executable, and the
> CMAKE_INSTALL_RPATH tells cmake that in addition there are libraries in
> the current project whose directory also needs to be added to the rpath.

Excellent, so we could drop all patchelf occurrences!

On Sat, Apr 26, 2014 at 10:52:52AM +0200, Ludovic Courtès wrote:
> One concern though: if a package installs libraries in a place other
> than $out/lib, like $out/lib/PACKAGE, this will break.

I think that Eric's following sentence gives the answer:
> I tried substituting the above two flags in for the lapack, gmsh, and
> slim builds, and the RUNPATHS seem to be at least as good as when using
> the manual augment-rpath method.

There is still the possibility of adding an augment-rpath phase manually
if a problem occurs, or maybe simply adding a second flag
"-DCMAKE_INSTALL_RPATH".

I will give it a try and commit a corresponding patch if everything works.

Andreas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]