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++])
# 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"
......
......@@ -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<int> check_type;
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_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 <typename T>
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<int> check_type;
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"
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 <typename T>
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<int> check_type;
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"
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
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