Commit 9fc18f0a authored by Elliott Clark's avatar Elliott Clark Committed by Facebook Github Bot 0

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
parent 708998eb
...@@ -36,18 +36,19 @@ AC_LANG([C++]) ...@@ -36,18 +36,19 @@ AC_LANG([C++])
# Checks for programs. # Checks for programs.
AC_PROG_CXX AC_PROG_CXX
AC_PROG_CC 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 # 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 # 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 # before we update CXXFLAGS will not be run with the same options that we use
# during the real build. # during the real build.
STD="" STD=""
if test "x$ac_cv_cxx_compile_cxx0x_cxx" = xyes; then if test "x$ac_cv_cxx_compile_cxx1y_cxx" = xyes; then
STD="-std=c++0x" STD="-std=c++1y"
fi fi
if test "x$ac_cv_cxx_compile_cxx0x_gxx" = xyes; then if test "x$ac_cv_cxx_compile_cxx1y_gxx" = xyes; then
STD="-std=gnu++0x" STD="-std=gnu++1y"
fi fi
CXXFLAGS="$STD $CXXFLAGS" CXXFLAGS="$STD $CXXFLAGS"
......
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
# #
# SYNOPSIS # SYNOPSIS
# #
# AC_CXX_COMPILE_STDCXX_0X # AC_CXX_COMPILE_STDCXX_1Y
# #
# DESCRIPTION # 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. # standard.
# #
# LAST MODIFICATION # LAST MODIFICATION
...@@ -23,9 +23,9 @@ ...@@ -23,9 +23,9 @@
# permitted in any medium without royalty provided the copyright notice # permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. # and this notice are preserved.
AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ AC_DEFUN([AC_CXX_COMPILE_STDCXX_1Y], [
AC_CACHE_CHECK(if g++ supports C++0x features without additional flags, AC_CACHE_CHECK(if g++ supports C++1y features without additional flags,
ac_cv_cxx_compile_cxx0x_native, ac_cv_cxx_compile_cxx1y_native,
[AC_LANG_SAVE [AC_LANG_SAVE
AC_LANG_CPLUSPLUS AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ AC_TRY_COMPILE([
...@@ -39,20 +39,24 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ ...@@ -39,20 +39,24 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [
int a; int a;
decltype(a) b; decltype(a) b;
auto f() {
int x = 0b01001;
return x;
}
typedef check<int> check_type; typedef check<int> check_type;
check_type c; check_type c;
check_type&& cr = static_cast<check_type&&>(c);],, check_type&& cr = static_cast<check_type&&>(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_LANG_RESTORE
]) ])
AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x, AC_CACHE_CHECK(if g++ supports C++1y features with -std=c++1y,
ac_cv_cxx_compile_cxx0x_cxx, ac_cv_cxx_compile_cxx1y_cxx,
[AC_LANG_SAVE [AC_LANG_SAVE
AC_LANG_CPLUSPLUS AC_LANG_CPLUSPLUS
ac_save_CXXFLAGS="$CXXFLAGS" ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -std=c++0x" CXXFLAGS="$CXXFLAGS -std=c++1y"
AC_TRY_COMPILE([ AC_TRY_COMPILE([
template <typename T> template <typename T>
struct check struct check
...@@ -64,21 +68,25 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ ...@@ -64,21 +68,25 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [
int a; int a;
decltype(a) b; decltype(a) b;
auto f() {
int x = 0b01001;
return x;
}
typedef check<int> check_type; typedef check<int> check_type;
check_type c; check_type c;
check_type&& cr = static_cast<check_type&&>(c);],, check_type&& cr = static_cast<check_type&&>(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" CXXFLAGS="$ac_save_CXXFLAGS"
AC_LANG_RESTORE AC_LANG_RESTORE
]) ])
AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x, AC_CACHE_CHECK(if g++ supports C++1y features with -std=gnu++1y,
ac_cv_cxx_compile_cxx0x_gxx, ac_cv_cxx_compile_cxx1y_gxx,
[AC_LANG_SAVE [AC_LANG_SAVE
AC_LANG_CPLUSPLUS AC_LANG_CPLUSPLUS
ac_save_CXXFLAGS="$CXXFLAGS" ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -std=gnu++0x" CXXFLAGS="$CXXFLAGS -std=gnu++1y"
AC_TRY_COMPILE([ AC_TRY_COMPILE([
template <typename T> template <typename T>
struct check struct check
...@@ -90,21 +98,25 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ ...@@ -90,21 +98,25 @@ AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [
int a; int a;
decltype(a) b; decltype(a) b;
auto f() {
int x = 0b01001;
return x;
}
typedef check<int> check_type; typedef check<int> check_type;
check_type c; check_type c;
check_type&& cr = static_cast<check_type&&>(c);],, check_type&& cr = static_cast<check_type&&>(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" CXXFLAGS="$ac_save_CXXFLAGS"
AC_LANG_RESTORE AC_LANG_RESTORE
]) ])
if test "$ac_cv_cxx_compile_cxx0x_native" = yes || if test "$ac_cv_cxx_compile_cxx1y_native" = yes ||
test "$ac_cv_cxx_compile_cxx0x_cxx" = yes || test "$ac_cv_cxx_compile_cxx1y_cxx" = yes ||
test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then test "$ac_cv_cxx_compile_cxx1y_gxx" = yes; then
AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ]) AC_DEFINE(HAVE_STDCXX_1Y,,[Define if g++ supports C++1y features. ])
else else
AC_MSG_ERROR([Could not find cxx0x support in g++]) AC_MSG_ERROR([Could not find cxx1y support in g++])
fi fi
]) ])
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment