Hello Libtool hackers,
we have seen linking problems during building of Libgcrypt on Solaris
when using the Solaris ld. I don't know if this is only a ld problem
or also a libtool problem.
What happens is that the ld forgets to include symbols in the final
DSO (libgcrypt.so). The linking command looks like this:
gcc -shared -Wl,-h -Wl,libgcrypt.so.11 -o .libs/libgcrypt.so.11.2.0
.libs/libgcrypt_la-misc.o .libs/libgcrypt_la-global.o
.libs/libgcrypt_la-sexp.o .libs/libgcrypt_la-stdmem.o
.libs/libgcrypt_la-secmem.o .libs/libgcrypt_la-missing-string.o
.libs/libgcrypt_la-module.o .libs/libgcrypt_la-ath.o -z allextract
../cipher/.libs/libcipher.a ../mpi/.libs/libmpi.a -z defaultextract
-R/usr/local/lib -R/usr/local/lib -L/usr/local/lib
/usr/local/lib/libgpg-error.so -lnsl -lsocket -lc
Now, there are a couple of functions (gcry_ac_*) in ac.o in
../cipher/.libs/libcipher.a. These functions are not referenced from
any other object file. That's probably why they are skipped. (If I
e.g. exclude .libs/libgcrypt_la-global.o from the linking command,
other functions from libcipher.a, which are referenced from
libgcrypt_la-global.o are also skipped)
This happens on at least Solaris 2.6. Should be reproducible with
Libgcrypt 1.2.1.
I am not subscribed to this list.
Thanks,
Moritz
--
Moritz Schulte