diff --git a/configure.ac b/configure.ac index 2f64dd5b55..f16939752b 100644 --- a/configure.ac +++ b/configure.ac @@ -780,7 +780,22 @@ if test "${boost_include_path}" ; then fi AC_CHECK_HEADERS([boost/shared_ptr.hpp boost/foreach.hpp boost/interprocess/sync/interprocess_upgradable_mutex.hpp boost/date_time/posix_time/posix_time_types.hpp boost/bind.hpp boost/function.hpp],, AC_MSG_ERROR([Missing required header files.])) -CPPFLAGS="$CPPFLAGS_SAVES" + +# Detect whether Boost tries to use threads by default, and, if not, +# make it sure explicitly. In some systems the automatic detection +# may depend on preceding header files, and if inconsistency happens +# it could lead to a critical disruption. +AC_MSG_CHECKING([whether Boost tries to use threads]) +AC_TRY_COMPILE([ +#include +#ifdef BOOST_HAS_THREADS +#error "boost will use threads" +#endif],, +[AC_MSG_RESULT(no) + CPPFLAGS_BOOST_THREADCONF="-DBOOST_DISABLE_THREADS=1"], +[AC_MSG_RESULT(yes)]) + +CPPFLAGS="$CPPFLAGS_SAVES $CPPFLAGS_BOOST_THREADCONF" AC_SUBST(BOOST_INCLUDES) # I can't get some of the #include right without this