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