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