From 9fc18f0ac3b21dc2abb5700fba9fc0c27ffd190d Mon Sep 17 00:00:00 2001 From: Elliott Clark Date: Thu, 2 Jun 2016 15:37:35 -0700 Subject: [PATCH] Update folly OSS build to use 1y Summary: use std=c++1y for compiling since we use c+=14 feautures but don't want to require a recent gcc. Reviewed By: bhamiltoncx Differential Revision: D3380287 fbshipit-source-id: 8ece6007cf613d307bafe692f1af70f5359df95a --- folly/configure.ac | 11 ++-- ...dcxx_0x.m4 => ac_cxx_compile_stdcxx_1y.m4} | 52 ++++++++++++------- 2 files changed, 38 insertions(+), 25 deletions(-) rename folly/m4/{ac_cxx_compile_stdcxx_0x.m4 => ac_cxx_compile_stdcxx_1y.m4} (64%) diff --git a/folly/configure.ac b/folly/configure.ac index c2670fd0..e3981b2c 100644 --- a/folly/configure.ac +++ b/folly/configure.ac @@ -36,18 +36,19 @@ AC_LANG([C++]) # Checks for programs. AC_PROG_CXX AC_PROG_CC -AC_CXX_COMPILE_STDCXX_0X + +AC_CXX_COMPILE_STDCXX_1Y # Be sure to add any -std option to CXXFLAGS before we invoke any # AC_COMPILE_IFELSE() or similar macros. Any such macros that are invoked # before we update CXXFLAGS will not be run with the same options that we use # during the real build. STD="" -if test "x$ac_cv_cxx_compile_cxx0x_cxx" = xyes; then - STD="-std=c++0x" +if test "x$ac_cv_cxx_compile_cxx1y_cxx" = xyes; then + STD="-std=c++1y" fi -if test "x$ac_cv_cxx_compile_cxx0x_gxx" = xyes; then - STD="-std=gnu++0x" +if test "x$ac_cv_cxx_compile_cxx1y_gxx" = xyes; then + STD="-std=gnu++1y" fi CXXFLAGS="$STD $CXXFLAGS" diff --git a/folly/m4/ac_cxx_compile_stdcxx_0x.m4 b/folly/m4/ac_cxx_compile_stdcxx_1y.m4 similarity index 64% rename from folly/m4/ac_cxx_compile_stdcxx_0x.m4 rename to folly/m4/ac_cxx_compile_stdcxx_1y.m4 index 5c1a3bd0..18a5a734 100644 --- a/folly/m4/ac_cxx_compile_stdcxx_0x.m4 +++ b/folly/m4/ac_cxx_compile_stdcxx_1y.m4 @@ -4,11 +4,11 @@ # # SYNOPSIS # -# AC_CXX_COMPILE_STDCXX_0X +# AC_CXX_COMPILE_STDCXX_1Y # # DESCRIPTION # -# Check for baseline language coverage in the compiler for the C++0x +# Check for baseline language coverage in the compiler for the C++1y # standard. # # LAST MODIFICATION @@ -23,9 +23,9 @@ # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. -AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ - AC_CACHE_CHECK(if g++ supports C++0x features without additional flags, - ac_cv_cxx_compile_cxx0x_native, +AC_DEFUN([AC_CXX_COMPILE_STDCXX_1Y], [ + AC_CACHE_CHECK(if g++ supports C++1y features without additional flags, + ac_cv_cxx_compile_cxx1y_native, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ @@ -39,20 +39,24 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ int a; decltype(a) b; + auto f() { + int x = 0b01001; + return x; + } typedef check check_type; check_type c; check_type&& cr = static_cast(c);],, - ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no) + ac_cv_cxx_compile_cxx1y_native=yes, ac_cv_cxx_compile_cxx1y_native=no) AC_LANG_RESTORE ]) - AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x, - ac_cv_cxx_compile_cxx0x_cxx, + AC_CACHE_CHECK(if g++ supports C++1y features with -std=c++1y, + ac_cv_cxx_compile_cxx1y_cxx, [AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=c++0x" + CXXFLAGS="$CXXFLAGS -std=c++1y" AC_TRY_COMPILE([ template struct check @@ -64,21 +68,25 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ int a; decltype(a) b; + auto f() { + int x = 0b01001; + return x; + } typedef check check_type; check_type c; check_type&& cr = static_cast(c);],, - ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no) + ac_cv_cxx_compile_cxx1y_cxx=yes, ac_cv_cxx_compile_cxx1y_cxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) - AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x, - ac_cv_cxx_compile_cxx0x_gxx, + AC_CACHE_CHECK(if g++ supports C++1y features with -std=gnu++1y, + ac_cv_cxx_compile_cxx1y_gxx, [AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -std=gnu++0x" + CXXFLAGS="$CXXFLAGS -std=gnu++1y" AC_TRY_COMPILE([ template struct check @@ -90,21 +98,25 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ int a; decltype(a) b; + auto f() { + int x = 0b01001; + return x; + } typedef check check_type; check_type c; check_type&& cr = static_cast(c);],, - ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no) + ac_cv_cxx_compile_cxx1y_gxx=yes, ac_cv_cxx_compile_cxx1y_gxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) - if test "$ac_cv_cxx_compile_cxx0x_native" = yes || - test "$ac_cv_cxx_compile_cxx0x_cxx" = yes || - test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then - AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ]) + if test "$ac_cv_cxx_compile_cxx1y_native" = yes || + test "$ac_cv_cxx_compile_cxx1y_cxx" = yes || + test "$ac_cv_cxx_compile_cxx1y_gxx" = yes; then + AC_DEFINE(HAVE_STDCXX_1Y,,[Define if g++ supports C++1y features. ]) else - AC_MSG_ERROR([Could not find cxx0x support in g++]) + AC_MSG_ERROR([Could not find cxx1y support in g++]) fi ]) - \ No newline at end of file + -- 2.34.1