FreeBSD links wrong library for tests if one is installed in $prefix
Emmanuel Thomé
Emmanuel.Thome at inria.fr
Wed Jun 28 07:39:10 UTC 2017
On Wed, Jun 28, 2017 at 02:09:54AM +0200, Vincent Lefevre wrote:
> I meant either RPATH or RUNPATH (whatever is used by ld). Here it
> would be RPATH. Under Debian jessie, here's what I got for MPFR:
>
> RPATH /home/vlefevre/software/mpfr-3.1/src/.libs:/home/vlefevre/debian8/gmp/k10/lib
>
> /home/vlefevre/debian8/gmp/k10/lib was the current installation
> in my home dir, and /home/vlefevre/software/mpfr-3.1/src/.libs is
> the directory from the build tree. You should have got something
> similar, i.e.
>
> RPATH /home/ci/gmp-6.1.2/.libs:/tmp/inst/lib
That's not really consistent with using a libtool wrapper. You said that
with mpfr you make do without the wrapper. I think that is the reason for
libtool embedding ..../src/.libs in the RPATH (at least that's what I
observe if I stick in AM_LDFLAGS = -no-install).
> > I'm skeptical about the intent to mention the current directory as a
> > r(un)path as well. Are you sure it's ever done that way ?
>
> Not the current directory, but the directory that contains the
> library that has just been built.
>
> > > > Prepending "env LD_LIBRARY_PATH_RPATH=1" before running scripts in e.g.
> > > > make check or make tune would be a workaround, I suppose.
> > >
> > > Generating a right RPATH would be a better solution.
> >
> > What's your definition of "right" ?
>
> See above.
I beg to differ. Surely various options can be considered. Depending on
the use case, one might be preferred to another.
- For a non-installed binary, probably -no-install is best.
- One cannot completely rule out the case of an installed binary which
also gets run within the build process. Then I certainly don't want
to see the build path appear as an rpath ! So the "right" thing can't
be the same.
- Granting libtool's wrapper script the power to override the binary's
embedded rpath information is not absurd after all. It's
idiosyncrasy-fixing, but that's really what libtool is all about...
Long story short, I think that gmp (and my package gf2x) have the
following options:
- AM_LDFLAGS = -no-install in {tune,tests}/Makefile.am
- env LD_LIBRARY_PATH_RPATH=1 prepended to tuning and test runs
- use a fixed libtool at ./autogen.sh time (see debbugs.gnu.org/27510 )
Thanks Vincent for your feedback, that was really helpful.
E.
More information about the gmp-bugs
mailing list