diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 0c01b526ebf..988c532c4e2 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -1476,6 +1476,52 @@ AC_DEFUN([GLIBCXX_ENABLE_C99], [ fi fi + # Check for the existence of functions. + AC_CACHE_CHECK([for ISO C99 support for C++11 in ], + glibcxx_cv_c99_ctype, [ + AC_TRY_COMPILE([#include ], + [int ch; + int ret; + ret = isblank(ch); + ],[glibcxx_cv_c99_ctype=yes], + [glibcxx_cv_c99_ctype=no]) + ]) + if test x"$glibcxx_cv_c99_ctype" = x"yes"; then + AC_DEFINE(_GLIBCXX_USE_C99_CTYPE, 1, + [Define if C99 functions in should be imported in + in namespace std for C++11.]) + fi + + # Check for the existence of functions. + AC_CHECK_HEADERS(fenv.h, ac_has_fenv_h=yes, ac_has_fenv_h=no) + ac_c99_fenv=no; + if test x"$ac_has_fenv_h" = x"yes"; then + AC_MSG_CHECKING([for ISO C99 support for C++11 in ]) + AC_TRY_COMPILE([#include ], + [int except, mode; + fexcept_t* pflag; + fenv_t* penv; + int ret; + ret = feclearexcept(except); + ret = fegetexceptflag(pflag, except); + ret = feraiseexcept(except); + ret = fesetexceptflag(pflag, except); + ret = fetestexcept(except); + ret = fegetround(); + ret = fesetround(mode); + ret = fegetenv(penv); + ret = feholdexcept(penv); + ret = fesetenv(penv); + ret = feupdateenv(penv); + ],[ac_c99_fenv=yes], [ac_c99_fenv=no]) + AC_MSG_RESULT($ac_c99_fenv) + fi + if test x"$ac_c99_fenv" = x"yes"; then + AC_DEFINE(_GLIBCXX_USE_C99_FENV, 1, + [Define if C99 functions in should be imported in + in namespace std for C++11.]) + fi + gcc_no_link="$ac_save_gcc_no_link" LIBS="$ac_save_LIBS" CXXFLAGS="$ac_save_CXXFLAGS" diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index 62be4c79945..f91f7eb9097 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -902,10 +902,18 @@ library functions to be present. */ #undef _GLIBCXX_USE_C99_COMPLEX_TR1 +/* Define if C99 functions in should be imported in in + namespace std for C++11. */ +#undef _GLIBCXX_USE_C99_CTYPE + /* Define if C99 functions in should be imported in in namespace std::tr1. */ #undef _GLIBCXX_USE_C99_CTYPE_TR1 +/* Define if C99 functions in should be imported in in + namespace std for C++11. */ +#undef _GLIBCXX_USE_C99_FENV + /* Define if C99 functions in should be imported in in namespace std::tr1. */ #undef _GLIBCXX_USE_C99_FENV_TR1 diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 26bc090deb1..a9589d882e6 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -18824,6 +18824,103 @@ $as_echo "#define _GLIBCXX11_USE_C99_WCHAR 1" >>confdefs.h fi fi + # Check for the existence of functions. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ISO C99 support for C++11 in " >&5 +$as_echo_n "checking for ISO C99 support for C++11 in ... " >&6; } +if ${glibcxx_cv_c99_ctype+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int ch; + int ret; + ret = isblank(ch); + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + glibcxx_cv_c99_ctype=yes +else + glibcxx_cv_c99_ctype=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_c99_ctype" >&5 +$as_echo "$glibcxx_cv_c99_ctype" >&6; } + if test x"$glibcxx_cv_c99_ctype" = x"yes"; then + +$as_echo "#define _GLIBCXX_USE_C99_CTYPE 1" >>confdefs.h + + fi + + # Check for the existence of functions. + for ac_header in fenv.h +do : + ac_fn_cxx_check_header_mongrel "$LINENO" "fenv.h" "ac_cv_header_fenv_h" "$ac_includes_default" +if test "x$ac_cv_header_fenv_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_FENV_H 1 +_ACEOF + ac_has_fenv_h=yes +else + ac_has_fenv_h=no +fi + +done + + ac_c99_fenv=no; + if test x"$ac_has_fenv_h" = x"yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ISO C99 support for C++11 in " >&5 +$as_echo_n "checking for ISO C99 support for C++11 in ... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int except, mode; + fexcept_t* pflag; + fenv_t* penv; + int ret; + ret = feclearexcept(except); + ret = fegetexceptflag(pflag, except); + ret = feraiseexcept(except); + ret = fesetexceptflag(pflag, except); + ret = fetestexcept(except); + ret = fegetround(); + ret = fesetround(mode); + ret = fegetenv(penv); + ret = feholdexcept(penv); + ret = fesetenv(penv); + ret = feupdateenv(penv); + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_c99_fenv=yes +else + ac_c99_fenv=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_c99_fenv" >&5 +$as_echo "$ac_c99_fenv" >&6; } + fi + if test x"$ac_c99_fenv" = x"yes"; then + +$as_echo "#define _GLIBCXX_USE_C99_FENV 1" >>confdefs.h + + fi + gcc_no_link="$ac_save_gcc_no_link" LIBS="$ac_save_LIBS" CXXFLAGS="$ac_save_CXXFLAGS" diff --git a/libstdc++-v3/include/c_compatibility/fenv.h b/libstdc++-v3/include/c_compatibility/fenv.h index 70ce3f834f4..83e930f12d1 100644 --- a/libstdc++-v3/include/c_compatibility/fenv.h +++ b/libstdc++-v3/include/c_compatibility/fenv.h @@ -38,7 +38,7 @@ #if __cplusplus >= 201103L -#if _GLIBCXX_USE_C99_FENV_TR1 +#if _GLIBCXX_USE_C99_FENV #undef feclearexcept #undef fegetexceptflag @@ -74,7 +74,7 @@ namespace std using ::feupdateenv; } // namespace -#endif // _GLIBCXX_USE_C99_FENV_TR1 +#endif // _GLIBCXX_USE_C99_FENV #endif // C++11 diff --git a/libstdc++-v3/include/c_global/cctype b/libstdc++-v3/include/c_global/cctype index bd667fba15d..e6ff1204df6 100644 --- a/libstdc++-v3/include/c_global/cctype +++ b/libstdc++-v3/include/c_global/cctype @@ -78,7 +78,7 @@ namespace std #if __cplusplus >= 201103L -#ifdef _GLIBCXX_USE_C99_CTYPE_TR1 +#ifdef _GLIBCXX_USE_C99_CTYPE #undef isblank @@ -87,7 +87,7 @@ namespace std using ::isblank; } // namespace std -#endif // _GLIBCXX_USE_C99_CTYPE_TR1 +#endif // _GLIBCXX_USE_C99_CTYPE #endif // C++11 diff --git a/libstdc++-v3/include/c_global/cfenv b/libstdc++-v3/include/c_global/cfenv index 6704dc5423e..3a1d9c4a6aa 100644 --- a/libstdc++-v3/include/c_global/cfenv +++ b/libstdc++-v3/include/c_global/cfenv @@ -41,7 +41,7 @@ # include #endif -#ifdef _GLIBCXX_USE_C99_FENV_TR1 +#ifdef _GLIBCXX_USE_C99_FENV #undef feclearexcept #undef fegetexceptflag @@ -77,7 +77,7 @@ namespace std using ::feupdateenv; } // namespace std -#endif // _GLIBCXX_USE_C99_FENV_TR1 +#endif // _GLIBCXX_USE_C99_FENV #endif // C++11