aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/configure
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2023-05-12 21:36:56 +0100
committerJonathan Wakely <jwakely@redhat.com>2023-05-16 09:59:19 +0100
commitac3a5bbc62949aeb061c01360632b3b8f5fafefa (patch)
tree79e07080c84be7208a0edd49e7e04c4361a5299f /libstdc++-v3/configure
parent5baabdb15d0ee24da414f273a5bafd5eca262ede (diff)
downloadgcc-ac3a5bbc62949aeb061c01360632b3b8f5fafefa.zip
gcc-ac3a5bbc62949aeb061c01360632b3b8f5fafefa.tar.gz
gcc-ac3a5bbc62949aeb061c01360632b3b8f5fafefa.tar.bz2
libstdc++: Stop using TR1 macros in <cctype> and <cfenv>
As with the two commits before this, the _GLIBCXX_USE_C99_CTYPE_TR1 and _GLIBCXX_USE_C99_FENV_TR1 macros are misleading when they are also used for <cctype> and <cfenv>, not only for TR1 headers. It is also wrong, because the configure checks for TR1 use -std=c++98 and a target might define the C99 features for C++11 but not for C++98. Add separate configure checks for the <ctype.h> and <fenv.h> features using -std=c++11 for the checks. Use the new macros defined by those checks in the C++11-specific parts of <cctype>, <cfenv>, and <fenv.h>. libstdc++-v3/ChangeLog: * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h> functions in C++11 mode and define _GLIBCXX_USE_C99_FENV. * config.h.in: Regenerate. * configure: Regenerate. * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV instead of _GLIBCXX_USE_C99_FENV_TR1. * include/c_global/cfenv: Likewise. * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead of _GLIBCXX_USE_C99_CTYPE_TR1.
Diffstat (limited to 'libstdc++-v3/configure')
-rwxr-xr-xlibstdc++-v3/configure97
1 files changed, 97 insertions, 0 deletions
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 26bc090..a9589d8 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 <ctype.h> functions.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ISO C99 support for C++11 in <ctype.h>" >&5
+$as_echo_n "checking for ISO C99 support for C++11 in <ctype.h>... " >&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 <ctype.h>
+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 <fenv.h> 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 <fenv.h>" >&5
+$as_echo_n "checking for ISO C99 support for C++11 in <fenv.h>... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fenv.h>
+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"