diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-05-12 21:36:56 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-05-16 09:59:19 +0100 |
commit | ac3a5bbc62949aeb061c01360632b3b8f5fafefa (patch) | |
tree | 79e07080c84be7208a0edd49e7e04c4361a5299f /libstdc++-v3/configure | |
parent | 5baabdb15d0ee24da414f273a5bafd5eca262ede (diff) | |
download | gcc-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-x | libstdc++-v3/configure | 97 |
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" |