Bad LD_LIBRARY_PATH set in the libtool wrapper

2011-12-26 Thread Sam Varshavchik
My source tree builds two libraries, from two separate directories in the  
source tree.


libxtls.la gets linked against libx.la in a different directory, as well as  
some system libraries in /usr/local/lib. Makefile.am declares thusly:


libxtls_la_LIBADD=../base/libx.la
libxtls_la_LDFLAGS=-version-info 1 $(GNUTLS_LIBS) $(GCRYPT_LIBS) -lpthread

These macros expand to a search path that includes /usr/local/lib. In  
libxtls.la I end up with this (leaving out some unrelated stuff):


dependency_libs=-R/usr/local/lib -L/usr/local/lib  
[SOURCETREEPATH]/base/libx.la


I then build an executable named testuseragent_shared that gets linked  
against libxtls.la:


testuseragent_shared_SOURCES=testuseragent.C
testuseragent_shared_LDADD=libxtls.la

From this, libtool produces a wrapper for testuseragent_shared in the source  

tree, that reads as follows (linewrapped):

LD_LIBRARY_PATH=[CURRENTDIR]/.libs:/usr/local/lib: 
[SOURCETREEPATH]/base/.libs:$LD_LIBRARY_PATH


The search path places /usr/local/lib ahead of …/base/.libs, for libx.so.1.  
It obviously gets it from libxtls_la_LDFLAGS.


The problem here is when I already have a previously installed, older  
libx.so.1 build in /usr/local/lib, and I run testuseragent_shared from the  
source tree, it ends up loading the older libx.so.1 from /usr/local/lib,  
rather than the one that also gets built in the source tree. Hilarity ensues.


Yes, I know about -static, and I also produce a testuseragent_static linked  
with -static, that works splendidly from the source tree. But I'd really  
like to have a dynamically-linked testuseragent_shared and run it from the  
source tree, with the wrapper's help, for regression testing purposes.


I must be doing something fundamentally wrong here, but I can't figure it  
out. The more I think about it, the more I'm leaning towards thinking that  
libtool should always put source tree paths ahead of any system paths, in  
the wrapper. This is libtool 2.4.




pgpj4qALO6AA6.pgp
Description: PGP signature
___
https://lists.gnu.org/mailman/listinfo/libtool


Re: Bad LD_LIBRARY_PATH set in the libtool wrapper

2011-12-26 Thread Roumen Petrov

Sam Varshavchik wrote:
My source tree builds two libraries, from two separate directories in 
the source tree.


libxtls.la gets linked against libx.la in a different directory, as 
well as some system libraries in /usr/local/lib. Makefile.am declares 
thusly:


libxtls_la_LIBADD=../base/libx.la
libxtls_la_LDFLAGS=-version-info 1 $(GNUTLS_LIBS) $(GCRYPT_LIBS) 
-lpthread
libtool use LDFLAGS before LIBADD as result paths form LDFLAGS will be 
used first.


Move $(GNUTLS_LIBS) $(GCRYPT_LIBS) -lpthread  to LIBADD adn try again.

Roumen


___
https://lists.gnu.org/mailman/listinfo/libtool