|
@@ -23,7 +23,11 @@ dnl BOOST_OFFSET_PTR_WOULDFAIL set to "yes" if offset_ptr would cause build
|
|
|
dnl error; otherwise set to "no"
|
|
|
dnl BOOST_NUMERIC_CAST_WOULDFAIL set to "yes" if numeric_cast would cause
|
|
|
dnl build error; otherwise set to "no"
|
|
|
-dnl
|
|
|
+dnl BOOST_MAPPED_FILE_WOULDFAIL set to "yes" if managed_mapped_file would
|
|
|
+dnl cause build failure; otherwise set to "no"
|
|
|
+dnl BOOST_MAPPED_FILE_CXXFLAG set to the compiler flag that would need to
|
|
|
+dnl compile managed_mapped_file (can be empty).
|
|
|
+dnl It is of no use if "WOULDFAIL" is yes.
|
|
|
|
|
|
AC_DEFUN([AX_BOOST_FOR_BIND10], [
|
|
|
AC_LANG_SAVE
|
|
@@ -101,9 +105,49 @@ if test "X$GXX" = "Xyes"; then
|
|
|
|
|
|
CXXFLAGS="$CXXFLAGS_SAVED"
|
|
|
else
|
|
|
- # This doesn't matter for non-g++
|
|
|
- BOOST_NUMERIC_CAST_WOULDFAIL=no
|
|
|
+ # This doesn't matter for non-g++
|
|
|
+
|
|
|
+ CXXFLAGS="$CXXFLAGS_SAVED"
|
|
|
+fi
|
|
|
+
|
|
|
+# Boost interprocess::managed_mapped_file is highly system dependent and
|
|
|
+# can cause many portability issues. We are going to check if it could
|
|
|
+# compile at all, possibly with being lenient about compiler warnings.
|
|
|
+BOOST_MAPPED_FILE_WOULDFAIL=yes
|
|
|
+BOOST_MAPPED_FILE_CXXFLAG=
|
|
|
+CXXFLAGS_SAVED="$CXXFLAGS"
|
|
|
+try_flags="no"
|
|
|
+if test "X$GXX" = "Xyes"; then
|
|
|
+ CXXFLAGS="$CXXFLAGS -Werror"
|
|
|
+ try_flags="$try_flags -Wno-error"
|
|
|
fi
|
|
|
+# clang can cause false positives with -Werror without -Qunused-arguments
|
|
|
+AC_CHECK_DECL([__clang__], [CXXFLAGS="$CXXFLAGS -Qunused-arguments"], [])
|
|
|
+
|
|
|
+AC_MSG_CHECKING([Boost managed_mapped_file compiles])
|
|
|
+CXXFLAGS_SAVED2="$CXXFLAGS"
|
|
|
+for flag in $try_flags; do
|
|
|
+ if test "$flag" != no; then
|
|
|
+ BOOST_MAPPED_FILE_CXXFLAG="$flag"
|
|
|
+ fi
|
|
|
+ CXXFLAGS="$CXXFLAGS $BOOST_MAPPED_FILE_CXXFLAG"
|
|
|
+ AC_TRY_COMPILE([
|
|
|
+ #include <boost/interprocess/managed_mapped_file.hpp>
|
|
|
+ ],[
|
|
|
+ return (boost::interprocess::managed_mapped_file().all_memory_deallocated());
|
|
|
+ ],[AC_MSG_RESULT([yes, with $flag flag])
|
|
|
+ BOOST_MAPPED_FILE_WOULDFAIL=no
|
|
|
+ break
|
|
|
+ ],[])
|
|
|
+
|
|
|
+ CXXFLAGS="$CXXFLAGS_SAVED2"
|
|
|
+done
|
|
|
+
|
|
|
+if test $BOOST_MAPPED_FILE_WOULDFAIL = yes; then
|
|
|
+ AC_MSG_RESULT(no)
|
|
|
+fi
|
|
|
+
|
|
|
+CXXFLAGS="$CXXFLAGS_SAVED"
|
|
|
|
|
|
AC_SUBST(BOOST_INCLUDES)
|
|
|
|