Bug#405239: libgnutls13: gnutls13 has an unnecessary dependency on libgpg-error
Simon Josefsson
simon at josefsson.org
Thu Jun 11 12:12:11 UTC 2009
reassign 405239 libtool
severity 405239 wishlist
thanks
I looked into this, and I think this is really a (upstream?) libtool
problem.
Briefly, the problem is that when libtool links libgnutls it is invoked
as:
./libtool --tag=CC --mode=link gcc ... -o libgnutls.la gnutls_record.lo ...-lgcrypt ...
Note that -lgpg-error is not present. However libtool internally reads
the /usr/lib/libgcrypt.la file which contains:
dependency_libs=' /usr/lib/libgpg-error.la'
For some reason, this results in libtool invoking gcc with these
parameters:
libtool: link: gcc -shared .libs/gnutls_record.o ... -Wl,--whole-archive -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/lib /usr/local/lib/libtasn1.so -lz /usr/lib/libgcrypt.so -L/usr/lib /usr/lib/libgpg-error.so ... -o .libs/libgnutls.so.26.15.2
Note that libtool added the /usr/lib/libgpg-error.so.
This is not a _bug_ since it doesn't cause any error.
However it is sub-optimal behaviour, and hence a wishlist item, since it
makes libgnutls.so have a direct dependency on libgpg-error:
jas at mocca:~/src/gnutls/lib master$ objdump -p .libs/libgnutls.so | grep NEEDED.\*libgpg
NEEDED libgpg-error.so.0
jas at mocca:~/src/gnutls/lib master$
I am not fully certain, but I think this is wrong. The libgnutls.so
shared library have no direct dependency on the libgpg-error ABI, thus
libgpg-error.so should not be part of the NEEDED section.
If libtool instead did not add /usr/lib/libgpg-error.so to the link
command, the library works fine and it does not have a NEEDED dependency
on libgpg-error.so.
I looked at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=419228 but
I don't think that is the same bug, that is about convenience libraries.
GnuTLS no longer links the convenience library with libgcrypt.la.
/Simon
More information about the Pkg-gnutls-maint
mailing list