bug-libtool
[Top][All Lists]
Advanced

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

Re: bug in libtool rpath setting for _LT_AC_TAGVAR(hardcode_libdir_flag_


From: Ralf Wildenhues
Subject: Re: bug in libtool rpath setting for _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) (libtool 1.5.22)
Date: Fri, 15 Dec 2006 09:45:06 +0100
User-agent: Mutt/1.5.13 (2006-11-01)

Hello James,

* James Andrewartha wrote on Wed, Dec 13, 2006 at 05:23:01PM CET:
> On Wed, 13 Dec 2006, Ralf Wildenhues wrote:
> >
> > Where are libnss3.so, libsmime3.so, libssl3.so, and libsoftokn3.so
> > located?  Could you rerun 'make' non-parallel so we see which link
> > is actually failing?
> 
> They're located in 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1
> which is included via -L. pkg-config --libs xulrunner-nspr returns:
> -L/scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1 
> -lplds4 -lplc4 -lnspr4 -lpthread -ldl

Your libtool has link_all_deplibs=no (see the --config output).  This
shows that it's Debian's modified libtool.  It avoid linking against
indirect dependencies.  This change has not made it into GNU Libtool
because it has bugs, and also because it has some different semantics
which would need to be documented.  From the information you posted,
both of these alternative possibilities exist:

1)
You cannot be sure anymore that a library (or program) links against the
dependencies of dependent libraries directly.  So if you need those
depdepls (if you allow me to call them that way), then with Debian's
libtool you need to specify them explicitly on the command line.

2)
If you do not need them in your program, then you just observe a known
bug in Debian's libtool: while linking against uninstalled libraries,
the paths to depdepls are not found correctly, because libtool does not
walk the dependency path.

I think you are seeing (2).  In that case you could work around the
issue by linking directly against the needed libs, by adding these
arguments to the link (if you use Automake, add them to
create_account_LDADD):
  
/scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1/libnss3.la
  
/scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1/libsmime3.la
  
/scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1/libssl3.la
  
/scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1/libsoftokn3.la
  
Or you could just avoid Debian's libtool.  You could also file a bug
with them (point to this thread then, please).

Hope that helps.

Cheers,
Ralf

> failing build:
> make[4]: Entering directory 
> `/scratch/gnometinderbox/jhautobuild/cvs/evolution-data-server/addressbook/backends/groupwise'
> /bin/sh ../../../libtool --tag=CC --mode=link gcc  -O2 -Wall 
> -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-format -Wno-cast-align -
> Wall -Wmissing-prototypes  -Wno-sign-compare   -o create-account 
> create-account.o ../../../addressbook/libedata-book/libedata-book-1.2.la 
> ../../../libedataserver/libedataserver-1.2.la 
> ../../../servers/groupwise/libegroupwise-1.2.la -pthread 
> -L/scratch/gnometinderbox/jhautobuild/build-output/lib 
> -L/scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1 
> -lxml2 -lbonobo-2 -lbonobo-activation -lgmodule-2.0 -lgconf-2 -lORBit-2 
> -lgthread-2.0 -lgobject-2.0 -lglib-2.0 -lplds4 -lplc4 -lnspr4 -lpthread 
> -ldl   -lpthread
> gcc -O2 -Wall -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-format 
> -Wno-cast-align -Wall -Wmissing-prototypes -Wno-sign-compare -o 
> .libs/create-account create-account.o -pthread 
> ../../../addressbook/libedata-book/.libs/libedata-book-1.2.so 
> ../../../libedataserver/.libs/libedataserver-1.2.so 
> ../../../servers/groupwise/.libs/libegroupwise-1.2.so 
> -L/scratch/gnometinderbox/jhautobuild/build-output/lib 
> -L/scratch/gnometinderbox/jhautobuild/build-output/lib/xulrunner-1.8.1.1 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libxml2.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libbonobo-2.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libbonobo-activation.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libgmodule-2.0.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libgconf-2.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libORBit-2.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libgthread-2.0.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libgobject-2.0.so 
> /scratch/gnometinderbox/jhautobuild/build-output/lib/libglib-2.0.so 
> -lplds4 -lplc4 -lnspr4 -ldl -lpthread -Wl,--rpath 
> -Wl,/scratch/gnometinderbox/jhautobuild/build-output/lib
> /usr/bin/ld: warning: libnss3.so, needed by 
> /scratch/gnometinderbox/jhautobuild/cvs/evolution-data-server/camel/.libs/libcamel-1.2.so.0,
>  
> not found (try using -rpath or -rpath-link)




reply via email to

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