You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by dm...@apache.org on 2014/08/29 18:35:26 UTC

[2/2] git commit: require some c++11 features for mesos

require some c++11 features for mesos

Review: https://reviews.apache.org/r/25169


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/9870284a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/9870284a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/9870284a

Branch: refs/heads/master
Commit: 9870284a9673eafe6bb65fe60e5401dd6b827c6e
Parents: b7c7213
Author: Dominic Hamon <dh...@twitter.com>
Authored: Thu Aug 28 15:26:34 2014 -0700
Committer: Dominic Hamon <dh...@twitter.com>
Committed: Fri Aug 29 09:33:57 2014 -0700

----------------------------------------------------------------------
 configure.ac | 56 +++++++++++++++++++++----------------------------------
 1 file changed, 21 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/9870284a/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 4b34173..c4b4391 100644
--- a/configure.ac
+++ b/configure.ac
@@ -201,11 +201,6 @@ AC_ARG_ENABLE([bundled-distribute],
                               in PYTHONPATH]),
               [without_bundled_distribute=yes], [])
 
-AC_ARG_WITH([cxx11],
-            AS_HELP_STRING([--without-cxx11],
-                           [builds Mesos without C++11 support (deprecated)]),
-            [], [with_cxx11=yes])
-
 AC_ARG_WITH([network-isolator],
             AS_HELP_STRING([--with-network-isolator],
                            [builds the network isolator]),
@@ -489,14 +484,7 @@ AC_LANG_POP([C++])
 AC_MSG_RESULT([$CLANG])
 AC_SUBST([CLANG])
 
-# Force enable C++11 if compiling with clang.
-# Force disable C++11 if compiling with g++-4.7.
-if test "x$CLANG" = "xyes"; then
-  if test "x$with_cxx11" != "xyes"; then
-    AC_MSG_WARN([Force enabling C++11 for Clang build])
-  fi
-  with_cxx11=yes
-else
+if test "x$CLANG" = "xno"; then
   # Check the version of gcc and add any flags as appropriate. Note
   # that '-dumpversion' works for clang as well but as of clang 3.3 it
   # reports version 4.2.1 (for gcc backwards compatibility).
@@ -528,40 +516,38 @@ else
     CXXFLAGS="${CXXFLAGS} -Wno-unused-local-typedefs"
   fi
 
-  # Check for GCC version == 4.7 and disable C++11. The C++11 version
+  # Check for GCC version == 4.7 and fatal. The C++11 version
   # of libprocess' Future uses features that 4.7 doesn't support. The
   # non-C++11 version of libprocess' Future uses std::tr1 code that is
-  # only available without-cxx11.
+  # only available in non-C++11 builds.
   AX_COMPARE_VERSION([$GCC_VERSION], [eq2], [4.7],
                      [is_gxx47=yes], [is_gxx47=no])
   if test "x$is_gxx47" = "xyes"; then
-    AC_MSG_WARN([Force disabling C++11 for g++-4.7 build])
-    with_cxx11=no
+    AC_MSG_ERROR([Unable to build with g++-4.7 due to std::tr1 and C++11 mismatches])
   fi
 fi
 
 
-# Check if we should/can build with C++11.
-if test "x$with_cxx11" = "xyes"; then
-  AX_CXX_COMPILE_STDCXX_11([noext], [mandatory])
+# Ensure we can build the C++11 features we expect, and set the std
+# CXXFLAG as appropriate.
+AX_CXX_COMPILE_STDCXX_11([noext], [mandatory])
 
-  case "$host_os" in
-  darwin* )
-    # If we're using clang, we need to pass -stdlib=libc++ too.
-    if test "x$CLANG" = "xyes"; then
-      CXXFLAGS="$CXXFLAGS -stdlib=libc++"
-    fi
+case "$host_os" in
+darwin* )
+  # If we're using clang, we need to pass -stdlib=libc++ too.
+  if test "x$CLANG" = "xyes"; then
+    CXXFLAGS="$CXXFLAGS -stdlib=libc++"
+  fi
 
-    # GTEST on OSX needs its own tr1 tuple.
-    # TODO(dhamon): Update to gmock 1.7 and pass GTEST_LANG_CXX11 when in
-    # c++11 mode.
-    CXXFLAGS="$CXXFLAGS -DGTEST_USE_OWN_TR1_TUPLE=1"
-    ;;
-  esac
+  # GTEST on OSX needs its own tr1 tuple.
+  # TODO(dhamon): Update to gmock 1.7 and pass GTEST_LANG_CXX11 when in
+  # c++11 mode.
+  CXXFLAGS="$CXXFLAGS -DGTEST_USE_OWN_TR1_TUPLE=1"
+  ;;
+esac
 
-  # Also pass the flags to 3rdparty libraries.
-  CONFIGURE_ARGS="$CONFIGURE_ARGS CXXFLAGS='$CXXFLAGS'"
-fi
+# Also pass the flags to 3rdparty libraries.
+CONFIGURE_ARGS="$CONFIGURE_ARGS CXXFLAGS='$CXXFLAGS'"
 
 
 # Check for pthreads (uses m4/acx_pthread.m4).