[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svnversion_tests.py: lt-svnversion uses wrong libraries

From: Philip Martin <philip_at_codematters.co.uk>
Date: 2003-08-08 17:39:15 CEST

Erik Hülsmann <e.huelsmann@gmx.net> writes:

> I'm using:
> - RedHat Linux 8.0.
> - libtool --version reports:
> ltmain.sh (GNU libtool) 1.4.2 (1.922.2.54 2001/09/11 03:33:37)

I think I have used 1.4.2 in the past with no problems, but I don't have the
exact version string. I'm using 1.4.3 at the moment.

>>Which libraries are wrongly located?
>
> These libraries where wronly located in lt-svnversion:
> libsvn_ra_svn-1.so.0 => /usr/local/lib/libsvn_ra_svn-1.so.0
> libsvn_delta-1.so.0 => /usr/local/lib/libsvn_delta-1.so.0
> libsvn_diff-1.so.0 => /usr/local/lib/libsvn_diff-1.so.0
> libsvn_subr-1.so.0 => /usr/local/lib/libsvn_subr-1.so.0

[snip]

> Which results in the following gcc command:
> gcc -O2 -pipe -pthread -DNEON_ZLIB -DNEON_SSL -o .libs/svnversion main.o ../../subversion/libsvn_client/.libs/libsvn_client-1.so /home/erik/svn/subversion/libsvn_wc/.libs/libsvn_wc-1.so /home/erik/svn/subversion/libsvn_ra/.libs/libsvn_ra-1.so /home/erik/svn/subversion/libsvn_ra_local/.libs/libsvn_ra_local-1.so /home/erik/svn/subversion/libsvn_repos/.libs/libsvn_repos-1.so /home/erik/svn/subversion/libsvn_fs/.libs/libsvn_fs-1.so -ldb /home/erik/svn/subversion/libsvn_ra_dav/.libs/libsvn_ra_dav-1.so /home/erik/svn/neon/src/.libs/libneon.so -L/usr/local/lib -lssl -lcrypto /usr/local/lib/libxml2.so /home/erik/svn/subversion/libsvn_ra_svn/.libs/libsvn_ra_svn-1.so /home/erik/svn/subversion/libsvn_delta/.libs/libsvn_delta-1.so /home/erik/svn/subversion/libsvn_diff/.libs/libsvn_diff-1.so /home/erik/svn/subversion/libsvn_subr/.libs/libsvn_subr-1.so /home/erik/svn/apr-util/.libs/libaprutil-0.so /usr/lib/libgdbm.so /usr/lib/libdb-4.0.so /usr/lib/libexpat.so /home/erik/svn/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl
-ldl -lz -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/apr/lib

The link command explicitly mentions the build tree versions of all
the libraries that are wrongly located, I would expect it to work. I
don't know why it doesn't, perhaps some sort of RPATH problem. You
can see the RPATH by using things like

  objdump -x subversion/libsvn_client/.libs/libsvn_client-1.so | grep RPATH
  objdump -x subversion/svnversion/.libs/lt-svnversion | grep RPATH

[snip]

> After running the make command *all* libraries point to /usr/local and
> the contents of the .libs directory is empty.

Huh? Which .libs is empty?

> When I have run
> make check CLEANUP=1 TESTS=subversion/tests/clients/cmdline/svnversion_tests.py
>
> the .libs directories is not empty anymore and the ldd command says
> that libraries are linked agains the versions in my build tree
> again.

I'm confused--do you mean that all the libraries are found in the
build tree? Has the problem been solved?

> I tried to find where this happens, but I didn't find any
> call to libtool to relocate links or so...
>
> Do you know where I can find the relocation call where libtool is
> instructed to use other libraries?!

That's how libtool works. When svnversion is linked an executable is
created at subversion/svnversion/.libs/svnversion and a shell script
is created at subversion/svnversion/svnversion. When the shell script
is run it creates subversion/svnversion/.libs/lt-svnversion. This new
executable, lt-svnversion, should be linked to libraries in the build
tree.

-- 
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Aug 8 17:40:08 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.