--- libgsf-1.14.10.orig/configure.in 2008-10-19 13:37:35.000000000 +0100 +++ libgsf-1.14.10.mingw/configure.in 2008-11-22 17:04:10.000000000 +0000 @@ -321,30 +321,36 @@ with_bz2=false if test "x$test_bz2" = xtrue ; then - AC_CHECK_LIB(bz2, BZ2_bzDecompressInit, - bz2_ok=yes, - bz2_ok=no - AC_MSG_WARN(*** BZ2 support disabled (BZ2 library not found) ***)) - - if test "$bz2_ok" = yes; then - AC_MSG_CHECKING([for bzlib.h]) - AC_PREPROC_IFELSE( - [AC_LANG_SOURCE( + dnl AC_CHECK_LIB doesn't work with the Windows port of libbz2 because + dnl it uses the __stdcall calling convention where the callee cleans + dnl up the stack. You have to include in order to get the + dnl right calling convention, and the link fails if not. Since we + dnl require both -lbz2 and , just test if a program which + dnl uses both can be compiled. + + old_LIBS="$LIBS" + LIBS="-lbz2 $LIBS" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( [[#include - #undef PACKAGE - #undef VERSION - #undef HAVE_STDLIB_H - #include ]])], - bz2_ok=yes, - bz2_ok=no) - AC_MSG_RESULT($bz2_ok) - fi + #undef PACKAGE + #undef VERSION + #undef HAVE_STDLIB_H + #include + main () + { + return BZ2_bzDecompressInit (NULL, 0, 0); + } + ]])], + bz2_ok=yes, + bz2_ok=no) + LIBS="$old_LIBS" if test "$bz2_ok" = yes; then AC_DEFINE(HAVE_BZ2, 1, [Is bzip2 available and enabled]) BZ2_LIBS="-lbz2" else - AC_MSG_WARN(*** BZ2 support disabled (BZ2 header not found) ***) + AC_MSG_WARN(*** BZ2 support disabled (BZ2 header or library not found) ***) fi else AC_MSG_WARN([BZ2 support disabled, as requested (Use --with-bz2 to enable)])