libmu_cpp wraps several other libraries that it doesn't explicitly link against, so as shipped it doesn't link with -Wl,--as-needed. This makes it link with the libraries it needs (at least on my machine), and fixes the build order so libmu_sieve gets built before libmu_cpp needs it. diff -x config.log -x config.status -ru tmp/mailutils-2.1/Makefile.am work/mailutils-2.1/Makefile.am --- tmp/mailutils-2.1/Makefile.am 2009-08-14 08:47:50.000000000 +0100 +++ work/mailutils-2.1/Makefile.am 2009-09-12 00:35:31.000000000 +0100 @@ -100,9 +100,9 @@ lib\ libmu_argp\ libmu_cfg\ + libmu_sieve\ $(LIBMU_CPP_DIR)\ $(LIBMU_SCM_DIR)\ - libmu_sieve\ $(PYTHON_DIR)\ doc\ config\ diff -x config.log -x config.status -ru tmp/mailutils-2.1/libmu_cpp/Makefile.am work/mailutils-2.1/libmu_cpp/Makefile.am --- tmp/mailutils-2.1/libmu_cpp/Makefile.am 2009-08-12 22:04:39.000000000 +0100 +++ work/mailutils-2.1/libmu_cpp/Makefile.am 2009-09-12 00:34:51.000000000 +0100 @@ -45,6 +45,20 @@ stream.cc\ url.cc -libmu_cpp_la_LIBADD = @MU_COMMON_LIBRARIES@ +libmu_cpp_la_LIBADD = \ + ../lib/libmuaux.la\ + ${MU_LIB_MBOX}\ + ${MU_LIB_IMAP}\ + ${MU_LIB_POP}\ + ${MU_LIB_NNTP}\ + ${MU_LIB_MH}\ + ${MU_LIB_MAILDIR}\ + ${MU_LIB_AUTH}\ + ${MU_LIB_MAILER}\ + ${MU_LIB_SIEVE}\ + @address@hidden + ${MU_LIB_MAILUTILS}\ + @address@hidden + @MU_COMMON_LIBRARIES@ libmu_cpp_la_LDFLAGS = -rpath $(libdir) -version-info @VI_CURRENT@:@VI_REVISION@:@VI_AGE@