libtool, whole-archive -- jak to działa w wuchu?

Paweł A. Gajda mis w pld.org.pl
Czw, 16 Sty 2003, 01:09:08 CET


Nie mogę się doczytać ani wyłapać czego mi brakuje 
by złożyć z wielu *.la bibliotekę. W wuchu to działa:
W Makefile.am:

libwuch_la_SOURCES =
libwuch_la_LIBADD = \
	net/libnet.la \
	rpmmenlib/librpmmen.la \
	other/libother.la \
	...


co daje ładne:

$ make 
make[3]: Entering directory `/home/mis/installer/wuch/src'
/bin/sh ../libtool --mode=link gcc  -I/usr/include/rpm   -o libwuch.la
-rpath /usr/local/lib   net/libnet.la rpmmenlib/librpmmen.la
other/libother.la -lrpmio -lrpm -lpopt -ldb3 -ldb1 -lbz2 -lz -ltrurl
-ldl -lconf -lcurl 
rm -fr .libs/libwuch.la .libs/libwuch.* .libs/libwuch.*
gcc -shared  -Wl,--whole-archive net/.libs/libnet.al
rpmmenlib/.libs/librpmmen.al other/.libs/libother.al
-Wl,--no-whole-archive  -L/usr/lib -L/usr/local/lib net/.libs/libnet.al
rpmmenlib/.libs/librpmmen.al other/.libs/libother.al
/usr/lib/librpmio.so /usr/lib/librpm.so /usr/lib/libpopt.so -ldb3 -ldb1
-lbz2 -lz -ltrurl -ldl /usr/lib/libconf.so /usr/lib/libcurl.so
-Wl,-soname -Wl,libwuch.so.0 -o .libs/libwuch.so.0.0.0

Jak widać (whole-archive), wszystkie *.la są wkładane do libwuch.so. 

Robię tak samo u siebie:

libtndb_la_SOURCES = write.c read.c tndb.c tndb_int.h
libfoo_la_SOURCES = 
libfoo_la_LIBADD  = libtndb.la

i nie działa, tj. libtool nie daje linkerowi
-Wl,--whole-archive. O czym nie wiem/czego nie widzę??



Więcej informacji o liście dyskusyjnej pld-installer