[ snipped frustration ]
> What I meant was that you claim this commit fixed a problem that
> caused svnsync to load the wrong shared libraries. Therefore without
> the fix you have a "before" ELF executable that fails, and with the
> fix you have an "after" ELF executable that works.
Ah! Sure! Did that now. Results below.
> Something in the
> executable, or the shared libraries, must have changed. I'd guess
> it's either the NEEDED or RPATH fields, and you can view those by
> running "objdump -x" on the libraries and executable, but it might be
> something else. On Linux you can set the environment variable
> LD_DEBUG=libs (use LD_DEBUG=help to see other options) and the linker
> will produce detailed information about the libraries that get loaded.
> Compare the output from the "before" and "after" executables and see
> what has changed.
This was great help; thanks!
The RPATH field (and the order of the NEEDED fields) have changed:
The RPATH field in the 'before' (ie failing) executable is (split at the colons
to get to shorter lines):
RPATH /www/erik/dev/svn-dev/trunk/subversion/tests/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_ra_local/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_ra/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_repos/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_fs/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_ra_svn/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_ra_dav/.libs
/usr/local/lib
/www/erik/dev/svn-dev/trunk/subversion/libsvn_fs_fs/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_delta/.libs
/www/erik/dev/svn-dev/trunk/subversion/libsvn_subr/.libs
/usr/local/apr/lib
Notice that the RPATH contains /usr/local/lib before the paths to
libsvn_{subr,delta,fs_fs}. That's why it's loading the wrong binaries
for those.
In the 'after' version, the /usr/local/lib has moved to the end of the
path list.
More details on my system:
- libtool 1.5.20
- ld.so.conf does not include any path in /usr/local
- libneon is in /usr/local/lib (does not contain RPATH)
- libexpat is in /usr/lib (does not contain RPATH)
- apr(util) is in /usr/local/apr/lib (does not contain RPATH)
but, also in /usr/lib (also not containing RPATH)
The libraries which do not contain RPATH fields have been built with
the debian libtool...
Any idea if my setup is too strange to work? Problematically set up?
Thanks in advance for any hints you might be able to give!
bye,
Erik.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Jun 3 14:22:02 2006