> Libtool, however, is certainly doing the wrong thing wrt -static. We > haven't quite figured out what the right thing is though. Yet. I'm not following the details of this discussion, but I'll add my comment as an end-user and a casual developer. As a developer I don't really care about the option names as long as they are documented as to what they generate. Our project has a shared library, a convenience library and links with libz and libxml2. So, I use -static to build all the code I control statically for debugging (that's libswish-e and our convenience library). Then maybe use -all-static to link in libxml2 and libz into a stand alone program that can be copied places that may not have libxml2 and libz. People sometimes ask about building a *completely* static binary (which I guess is -all-static now), but as Bob Friesenhahn commented that may not be that good of an idea these days. >From our user's point of view, it's a bit confusing having a --disable-shared configure option, but also have -static and -all-static that are specified at make time. My guess is people expect that configure should be used to control the entire build process. It's also a bit confusing since it seems --disable-shared does something different than -static. As I mentioned, we link with libxml2 and libz our own shared lib and a convenience lib. Normally it looks like this: $ ldd /usr/local/bin/swish-e libxml2.so.2 => /usr/lib/libxml2.so.2 (0x40027000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40122000) libz.so.1 => /usr/lib/libz.so.1 (0x40132000) libswish-e.so.2 => /usr/local/lib/libswish-e.so.2 (0x40144000) libm.so.6 => /lib/tls/libm.so.6 (0x4017a000) libc.so.6 => /lib/tls/libc.so.6 (0x4019d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Here's using -static: $ ./configure >/dev/null && make LDFLAGS=-static >/dev/null && file src/swish-e src/swish-e: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped $ ldd src/swish-e libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40027000) libz.so.1 => /usr/lib/libz.so.1 (0x40036000) libm.so.6 => /lib/tls/libm.so.6 (0x40049000) libc.so.6 => /lib/tls/libc.so.6 (0x4006c000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) I don't really understand why libxml2 got linked in statically and not libz. I assume that's an issue in my Makefile.am file or how we setup libz and libxml2 in our configure script. And using --disable-shared only just links in our library (libswish-e) statically. $ ./configure --disable-shared >/dev/null && make >/dev/null && file src/swish-e src/swish-e: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped $ ldd src/swish-e libxml2.so.2 => /usr/lib/libxml2.so.2 (0x40027000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40122000) libz.so.1 => /usr/lib/libz.so.1 (0x40132000) libm.so.6 => /lib/tls/libm.so.6 (0x40144000) libc.so.6 => /lib/tls/libc.so.6 (0x40167000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) -- Bill Moseley moseley@xxxxxxxx _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf