diff options
Diffstat (limited to 'libstdc++-v3/acinclude.m4')
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index e6575eae678..75e46671faf 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2147,6 +2147,52 @@ AC_DEFUN([GLIBCXX_CHECK_STDIO_PROTO], [ ]) dnl +dnl Check whether required C++11 overloads are present in <math.h>. +dnl +AC_DEFUN([GLIBCXX_CHECK_MATH11_PROTO], [ + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -std=c++11" + + case "$host" in + *-*-solaris2.*) + # Solaris 12 introduced the C++11 <math.h> overloads. A backport to + # a Solaris 11.3 SRU is likely, maybe even a Solaris 10 patch. + AC_MSG_CHECKING([for C++11 <math.h> overloads]) + AC_CACHE_VAL(glibcxx_cv_math11_overload, [ + AC_COMPILE_IFELSE([AC_LANG_SOURCE( + [#include <math.h> + #undef isfinite + namespace std { + inline bool isfinite(float __x) + { return __builtin_isfinite(__x); } + } + ])], + [glibcxx_cv_math11_overload=no], + [glibcxx_cv_math11_overload=yes] + )]) + + # autoheader cannot handle indented templates. + AH_VERBATIM([__CORRECT_ISO_CPP11_MATH_H_PROTO], + [/* Define if all C++11 overloads are available in <math.h>. */ +#if __cplusplus >= 201103L +#undef __CORRECT_ISO_CPP11_MATH_H_PROTO +#endif]) + + if test $glibcxx_cv_math11_overload = yes; then + AC_DEFINE(__CORRECT_ISO_CPP11_MATH_H_PROTO) + fi + AC_MSG_RESULT([$glibcxx_cv_math11_overload]) + ;; + esac + + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE +]) + +dnl dnl Check whether macros, etc are present for <system_error> dnl AC_DEFUN([GLIBCXX_CHECK_SYSTEM_ERROR], [ @@ -2582,6 +2628,10 @@ AC_DEFUN([GLIBCXX_ENABLE_VTABLE_VERIFY], [ VTV_CXXFLAGS="-fvtable-verify=std -Wl,-u,_vtable_map_vars_start -Wl,-u,_vtable_map_vars_end" VTV_CXXLINKFLAGS="-L${toplevel_builddir}/libvtv/.libs -Wl,-rpath,${toplevel_builddir}/libvtv/.libs" ;; + solaris2*) + VTV_CXXFLAGS="-fvtable-verify=std -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end" + VTV_CXXLINKFLAGS="-L${toplevel_builddir}/libvtv/.libs -Wl,-R -Wl,${toplevel_builddir}/libvtv/.libs" + ;; *) VTV_CXXFLAGS="-fvtable-verify=std -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end" VTV_CXXLINKFLAGS="-L${toplevel_builddir}/libvtv/.libs -Wl,--rpath -Wl,${toplevel_builddir}/libvtv/.libs" |