I spent a bit of time looking at what I'll call the "libtool issue".
Basically, anyone compiling subversion trunk on an ELF platform
should have seen this, given that they also have a subversion package
provided by the OS installed on their system. I know that it happens
on Debian (confirmed by Karl), FreeBSD (run ldd on the binary to see
crazy linkage), and OpenBSD (compile fails).
The symptom in general is that compiling current trunk ends with
unresolved symbol errors in various libsvn_* libraries.
I've talked to Karl about this at Subconf, and he told me about
his workaround: Move system subversion libraries out of /usr/lib
or /usr/local/lib or wherever you have them into /tmp, compile svn,
then move the libs back.
During my investigation I found a better workaround that fits my
cause, requires less work and makes it possible to run the system
svn while compiling (nice on slow laptops like mine):
Anyway, from reading the libtool docs it seems the proper fix
would be to consistently use version numbers for subversion libraries.
This would mean passing a '-version-info' parameter to libtool
somewhere in the build scripts and carefully maintaining this
parameter for all eternity:
Having system svn libraries installed as libsvn_*-1.la and compiling
the trunk ones with the same version number seems to be why libtool
gets confused and picks up libraries in /usr/lib when it should use
the ones in the working copy (various .libs/ directories).
Also, I don't get why libs compiled inside the working copy
have version number zero, but that is probably a libtoolism
that just looks weird but works for some reason.
Has anyone looked more deeply into this than I have?
Is there a particular reason why library versioning isn't already
Stefan Sperling <email@example.com> Software Developer
elego Software Solutions GmbH HRB 77719
Gustav-Meyer-Allee 25, Gebaeude 12 Tel: +49 30 23 45 86 96
13355 Berlin Fax: +49 30 23 45 86 95
http://www.elego.de Geschaeftsfuehrer: Olaf Wagner
Received on Wed Dec 5 01:02:26 2007
- application/pgp-signature attachment: stored