From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id 2F8A0385741D; Mon, 9 May 2022 16:40:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2F8A0385741D MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r9-10061] libstdc++: Test errno macros directly, not via autoconf [PR 93151] X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/releases/gcc-9 X-Git-Oldrev: 47c48fcfbec4d606cea7ea885323f453d8336604 X-Git-Newrev: 4b5211c85aed64c7f6034dad8f57e03c0302c5ec Message-Id: <20220509164026.2F8A0385741D@sourceware.org> Date: Mon, 9 May 2022 16:40:26 +0000 (GMT) X-BeenThere: libstdc++-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 May 2022 16:40:26 -0000 https://gcc.gnu.org/g:4b5211c85aed64c7f6034dad8f57e03c0302c5ec commit r9-10061-g4b5211c85aed64c7f6034dad8f57e03c0302c5ec Author: Jonathan Wakely Date: Tue Dec 15 20:28:11 2020 +0000 libstdc++: Test errno macros directly, not via autoconf [PR 93151] This fixes a bug caused by a mismatch between the macros defined by when GCC is built and the macros defined by when users include . If the user code is compiled with _XOPEN_SOURCE defined to 500 or 600, Darwin suppresses the ENOTRECOVERABLE and EOWNERDEAD macros, which are not defined by SUSv3 (aka POSIX.1-2001). Since POSIX requires the errno macros to be macros (and not variables or enumerators) we can just test for them directly using the preprocessor. That means that will match what is actually defined when it's included, not what was defined when GCC was built. With that change there is no need for the GLIBCXX_CHECK_SYSTEM_ERROR configure checks and they can be removed. libstdc++-v3/ChangeLog: PR libstdc++/93151 * acinclude.m4 (GLIBCXX_CHECK_SYSTEM_ERROR): Remove. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac (GLIBCXX_CHECK_SYSTEM_ERROR): Do not use. * config/os/generic/error_constants.h: Test POSIX errno macros directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: Likewise. * testsuite/19_diagnostics/headers/system_error/93151.cc: New test. (cherry picked from commit a2c2eec183acf25c9b214fa0827718e4d2fdfc93) Diff: --- libstdc++-v3/acinclude.m4 | 29 - libstdc++-v3/config.h.in | 57 -- libstdc++-v3/config/os/generic/error_constants.h | 28 +- libstdc++-v3/configure | 631 --------------------- libstdc++-v3/configure.ac | 1 - .../19_diagnostics/headers/system_error/93151.cc | 23 + .../headers/system_error/errc_std_c++0x.cc | 32 +- 7 files changed, 53 insertions(+), 748 deletions(-) diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 93d86d2c363..a41f68790ae 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2322,35 +2322,6 @@ AC_DEFUN([GLIBCXX_CHECK_MATH11_PROTO], [ AC_LANG_RESTORE ]) -dnl -dnl Check whether macros, etc are present for -dnl -AC_DEFUN([GLIBCXX_CHECK_SYSTEM_ERROR], [ - -m4_pushdef([n_syserr], [1])dnl -m4_foreach([syserr], [EOWNERDEAD, ENOTRECOVERABLE, ENOLINK, EPROTO, ENODATA, - ENOSR, ENOSTR, ETIME, EBADMSG, ECANCELED, - EOVERFLOW, ENOTSUP, EIDRM, ETXTBSY, - ECHILD, ENOSPC, EPERM, - ETIMEDOUT, EWOULDBLOCK], -[m4_pushdef([SYSERR], m4_toupper(syserr))dnl -AC_MSG_CHECKING([for syserr]) -AC_CACHE_VAL([glibcxx_cv_system_error[]n_syserr], [ -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], - [int i = syserr;])], - [glibcxx_cv_system_error[]n_syserr=yes], - [glibcxx_cv_system_error[]n_syserr=no]) -]) -AC_MSG_RESULT([$glibcxx_cv_system_error[]n_syserr]) -if test x"$glibcxx_cv_system_error[]n_syserr" = x"yes"; then - AC_DEFINE([HAVE_]SYSERR, 1, [Define if ]syserr[ exists.]) -fi -m4_define([n_syserr], m4_incr(n_syserr))dnl -m4_popdef([SYSERR])dnl -]) -m4_popdef([n_syserr])dnl -]) - dnl dnl Check for what type of C headers to use. dnl diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index 1252e0c6f60..79e920c733d 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -69,66 +69,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define if EBADMSG exists. */ -#undef HAVE_EBADMSG - -/* Define if ECANCELED exists. */ -#undef HAVE_ECANCELED - -/* Define if ECHILD exists. */ -#undef HAVE_ECHILD - -/* Define if EIDRM exists. */ -#undef HAVE_EIDRM - /* Define to 1 if you have the header file. */ #undef HAVE_ENDIAN_H -/* Define if ENODATA exists. */ -#undef HAVE_ENODATA - -/* Define if ENOLINK exists. */ -#undef HAVE_ENOLINK - -/* Define if ENOSPC exists. */ -#undef HAVE_ENOSPC - -/* Define if ENOSR exists. */ -#undef HAVE_ENOSR - -/* Define if ENOSTR exists. */ -#undef HAVE_ENOSTR - -/* Define if ENOTRECOVERABLE exists. */ -#undef HAVE_ENOTRECOVERABLE - -/* Define if ENOTSUP exists. */ -#undef HAVE_ENOTSUP - -/* Define if EOVERFLOW exists. */ -#undef HAVE_EOVERFLOW - -/* Define if EOWNERDEAD exists. */ -#undef HAVE_EOWNERDEAD - -/* Define if EPERM exists. */ -#undef HAVE_EPERM - -/* Define if EPROTO exists. */ -#undef HAVE_EPROTO - -/* Define if ETIME exists. */ -#undef HAVE_ETIME - -/* Define if ETIMEDOUT exists. */ -#undef HAVE_ETIMEDOUT - -/* Define if ETXTBSY exists. */ -#undef HAVE_ETXTBSY - -/* Define if EWOULDBLOCK exists. */ -#undef HAVE_EWOULDBLOCK - /* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */ #undef HAVE_EXCEPTION_PTR_SINCE_GCC46 diff --git a/libstdc++-v3/config/os/generic/error_constants.h b/libstdc++-v3/config/os/generic/error_constants.h index 95bef92d4cd..bf4bed28cad 100644 --- a/libstdc++-v3/config/os/generic/error_constants.h +++ b/libstdc++-v3/config/os/generic/error_constants.h @@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION bad_address = EFAULT, bad_file_descriptor = EBADF, -#ifdef _GLIBCXX_HAVE_EBADMSG +#ifdef EBADMSG bad_message = EBADMSG, #endif @@ -68,7 +68,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION function_not_supported = ENOSYS, host_unreachable = EHOSTUNREACH, -#ifdef _GLIBCXX_HAVE_EIDRM +#ifdef EIDRM identifier_removed = EIDRM, #endif @@ -86,13 +86,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION no_buffer_space = ENOBUFS, no_child_process = ECHILD, -#ifdef _GLIBCXX_HAVE_ENOLINK +#ifdef ENOLINK no_link = ENOLINK, #endif no_lock_available = ENOLCK, -#ifdef _GLIBCXX_HAVE_ENODATA +#ifdef ENODATA no_message_available = ENODATA, #endif @@ -100,7 +100,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION no_protocol_option = ENOPROTOOPT, no_space_on_device = ENOSPC, -#ifdef _GLIBCXX_HAVE_ENOSR +#ifdef ENOSR no_stream_resources = ENOSR, #endif @@ -111,18 +111,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION not_a_directory = ENOTDIR, not_a_socket = ENOTSOCK, -#ifdef _GLIBCXX_HAVE_ENOSTR +#ifdef ENOSTR not_a_stream = ENOSTR, #endif not_connected = ENOTCONN, not_enough_memory = ENOMEM, -#ifdef _GLIBCXX_HAVE_ENOTSUP +#ifdef ENOTSUP not_supported = ENOTSUP, #endif -#ifdef _GLIBCXX_HAVE_ECANCELED +#ifdef ECANCELED operation_canceled = ECANCELED, #endif @@ -131,13 +131,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION operation_not_supported = EOPNOTSUPP, operation_would_block = EWOULDBLOCK, -#ifdef _GLIBCXX_HAVE_EOWNERDEAD +#ifdef EOWNERDEAD owner_dead = EOWNERDEAD, #endif permission_denied = EACCES, -#ifdef _GLIBCXX_HAVE_EPROTO +#ifdef EPROTO protocol_error = EPROTO, #endif @@ -147,15 +147,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION resource_unavailable_try_again = EAGAIN, result_out_of_range = ERANGE, -#ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE +#ifdef ENOTRECOVERABLE state_not_recoverable = ENOTRECOVERABLE, #endif -#ifdef _GLIBCXX_HAVE_ETIME +#ifdef ETIME stream_timeout = ETIME, #endif -#ifdef _GLIBCXX_HAVE_ETXTBSY +#ifdef ETXTBSY text_file_busy = ETXTBSY, #endif @@ -165,7 +165,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION too_many_links = EMLINK, too_many_symbolic_link_levels = ELOOP, -#ifdef _GLIBCXX_HAVE_EOVERFLOW +#ifdef EOVERFLOW value_too_large = EOVERFLOW, #endif diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index ec6f7eb00b7..bd393d6e6d3 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -18942,637 +18942,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOWNERDEAD" >&5 -$as_echo_n "checking for EOWNERDEAD... " >&6; } -if ${glibcxx_cv_system_error1+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = EOWNERDEAD; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error1=yes -else - glibcxx_cv_system_error1=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error1" >&5 -$as_echo "$glibcxx_cv_system_error1" >&6; } -if test x"$glibcxx_cv_system_error1" = x"yes"; then - -$as_echo "#define HAVE_EOWNERDEAD 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOTRECOVERABLE" >&5 -$as_echo_n "checking for ENOTRECOVERABLE... " >&6; } -if ${glibcxx_cv_system_error2+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ENOTRECOVERABLE; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error2=yes -else - glibcxx_cv_system_error2=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error2" >&5 -$as_echo "$glibcxx_cv_system_error2" >&6; } -if test x"$glibcxx_cv_system_error2" = x"yes"; then - -$as_echo "#define HAVE_ENOTRECOVERABLE 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK" >&5 -$as_echo_n "checking for ENOLINK... " >&6; } -if ${glibcxx_cv_system_error3+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ENOLINK; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error3=yes -else - glibcxx_cv_system_error3=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error3" >&5 -$as_echo "$glibcxx_cv_system_error3" >&6; } -if test x"$glibcxx_cv_system_error3" = x"yes"; then - -$as_echo "#define HAVE_ENOLINK 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EPROTO" >&5 -$as_echo_n "checking for EPROTO... " >&6; } -if ${glibcxx_cv_system_error4+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = EPROTO; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error4=yes -else - glibcxx_cv_system_error4=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error4" >&5 -$as_echo "$glibcxx_cv_system_error4" >&6; } -if test x"$glibcxx_cv_system_error4" = x"yes"; then - -$as_echo "#define HAVE_EPROTO 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENODATA" >&5 -$as_echo_n "checking for ENODATA... " >&6; } -if ${glibcxx_cv_system_error5+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ENODATA; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error5=yes -else - glibcxx_cv_system_error5=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error5" >&5 -$as_echo "$glibcxx_cv_system_error5" >&6; } -if test x"$glibcxx_cv_system_error5" = x"yes"; then - -$as_echo "#define HAVE_ENODATA 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOSR" >&5 -$as_echo_n "checking for ENOSR... " >&6; } -if ${glibcxx_cv_system_error6+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ENOSR; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error6=yes -else - glibcxx_cv_system_error6=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error6" >&5 -$as_echo "$glibcxx_cv_system_error6" >&6; } -if test x"$glibcxx_cv_system_error6" = x"yes"; then - -$as_echo "#define HAVE_ENOSR 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOSTR" >&5 -$as_echo_n "checking for ENOSTR... " >&6; } -if ${glibcxx_cv_system_error7+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ENOSTR; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error7=yes -else - glibcxx_cv_system_error7=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error7" >&5 -$as_echo "$glibcxx_cv_system_error7" >&6; } -if test x"$glibcxx_cv_system_error7" = x"yes"; then - -$as_echo "#define HAVE_ENOSTR 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETIME" >&5 -$as_echo_n "checking for ETIME... " >&6; } -if ${glibcxx_cv_system_error8+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ETIME; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error8=yes -else - glibcxx_cv_system_error8=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error8" >&5 -$as_echo "$glibcxx_cv_system_error8" >&6; } -if test x"$glibcxx_cv_system_error8" = x"yes"; then - -$as_echo "#define HAVE_ETIME 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EBADMSG" >&5 -$as_echo_n "checking for EBADMSG... " >&6; } -if ${glibcxx_cv_system_error9+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = EBADMSG; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error9=yes -else - glibcxx_cv_system_error9=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error9" >&5 -$as_echo "$glibcxx_cv_system_error9" >&6; } -if test x"$glibcxx_cv_system_error9" = x"yes"; then - -$as_echo "#define HAVE_EBADMSG 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECANCELED" >&5 -$as_echo_n "checking for ECANCELED... " >&6; } -if ${glibcxx_cv_system_error10+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ECANCELED; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error10=yes -else - glibcxx_cv_system_error10=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error10" >&5 -$as_echo "$glibcxx_cv_system_error10" >&6; } -if test x"$glibcxx_cv_system_error10" = x"yes"; then - -$as_echo "#define HAVE_ECANCELED 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW" >&5 -$as_echo_n "checking for EOVERFLOW... " >&6; } -if ${glibcxx_cv_system_error11+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = EOVERFLOW; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error11=yes -else - glibcxx_cv_system_error11=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error11" >&5 -$as_echo "$glibcxx_cv_system_error11" >&6; } -if test x"$glibcxx_cv_system_error11" = x"yes"; then - -$as_echo "#define HAVE_EOVERFLOW 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOTSUP" >&5 -$as_echo_n "checking for ENOTSUP... " >&6; } -if ${glibcxx_cv_system_error12+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ENOTSUP; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error12=yes -else - glibcxx_cv_system_error12=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error12" >&5 -$as_echo "$glibcxx_cv_system_error12" >&6; } -if test x"$glibcxx_cv_system_error12" = x"yes"; then - -$as_echo "#define HAVE_ENOTSUP 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EIDRM" >&5 -$as_echo_n "checking for EIDRM... " >&6; } -if ${glibcxx_cv_system_error13+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = EIDRM; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error13=yes -else - glibcxx_cv_system_error13=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error13" >&5 -$as_echo "$glibcxx_cv_system_error13" >&6; } -if test x"$glibcxx_cv_system_error13" = x"yes"; then - -$as_echo "#define HAVE_EIDRM 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETXTBSY" >&5 -$as_echo_n "checking for ETXTBSY... " >&6; } -if ${glibcxx_cv_system_error14+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ETXTBSY; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error14=yes -else - glibcxx_cv_system_error14=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error14" >&5 -$as_echo "$glibcxx_cv_system_error14" >&6; } -if test x"$glibcxx_cv_system_error14" = x"yes"; then - -$as_echo "#define HAVE_ETXTBSY 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECHILD" >&5 -$as_echo_n "checking for ECHILD... " >&6; } -if ${glibcxx_cv_system_error15+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ECHILD; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error15=yes -else - glibcxx_cv_system_error15=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error15" >&5 -$as_echo "$glibcxx_cv_system_error15" >&6; } -if test x"$glibcxx_cv_system_error15" = x"yes"; then - -$as_echo "#define HAVE_ECHILD 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOSPC" >&5 -$as_echo_n "checking for ENOSPC... " >&6; } -if ${glibcxx_cv_system_error16+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ENOSPC; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error16=yes -else - glibcxx_cv_system_error16=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error16" >&5 -$as_echo "$glibcxx_cv_system_error16" >&6; } -if test x"$glibcxx_cv_system_error16" = x"yes"; then - -$as_echo "#define HAVE_ENOSPC 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EPERM" >&5 -$as_echo_n "checking for EPERM... " >&6; } -if ${glibcxx_cv_system_error17+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = EPERM; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error17=yes -else - glibcxx_cv_system_error17=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error17" >&5 -$as_echo "$glibcxx_cv_system_error17" >&6; } -if test x"$glibcxx_cv_system_error17" = x"yes"; then - -$as_echo "#define HAVE_EPERM 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ETIMEDOUT" >&5 -$as_echo_n "checking for ETIMEDOUT... " >&6; } -if ${glibcxx_cv_system_error18+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = ETIMEDOUT; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error18=yes -else - glibcxx_cv_system_error18=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error18" >&5 -$as_echo "$glibcxx_cv_system_error18" >&6; } -if test x"$glibcxx_cv_system_error18" = x"yes"; then - -$as_echo "#define HAVE_ETIMEDOUT 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EWOULDBLOCK" >&5 -$as_echo_n "checking for EWOULDBLOCK... " >&6; } -if ${glibcxx_cv_system_error19+:} false; then : - $as_echo_n "(cached) " >&6 -else - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -int i = EWOULDBLOCK; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - glibcxx_cv_system_error19=yes -else - glibcxx_cv_system_error19=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_system_error19" >&5 -$as_echo "$glibcxx_cv_system_error19" >&6; } -if test x"$glibcxx_cv_system_error19" = x"yes"; then - -$as_echo "#define HAVE_EWOULDBLOCK 1" >>confdefs.h - -fi - - - - # Test uchar.h. for ac_header in uchar.h do : diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index d8455e41574..8365a647ffa 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -183,7 +183,6 @@ GLIBCXX_ENABLE_VTABLE_VERIFY([no]) # Checks for operating systems support that doesn't require linking. GLIBCXX_CHECK_STDIO_PROTO GLIBCXX_CHECK_MATH11_PROTO -GLIBCXX_CHECK_SYSTEM_ERROR GLIBCXX_CHECK_UCHAR_H # For the streamoff typedef. diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc new file mode 100644 index 00000000000..2d8efc76deb --- /dev/null +++ b/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/93151.cc @@ -0,0 +1,23 @@ +// { dg-do compile { target c++11 } } + +// Copyright (C) 2020 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// PR libstdc++/93151 +#undef _XOPEN_SOURCE +#define _XOPEN_SOURCE 600 +#include diff --git a/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc b/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc index c3e2f32a560..024d85ffebe 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc @@ -34,7 +34,7 @@ void test01() TEST_ERRC(bad_address); TEST_ERRC(bad_file_descriptor); -#ifdef _GLIBCXX_HAVE_EBADMSG +#ifdef EBADMSG TEST_ERRC(bad_message); #endif @@ -54,7 +54,7 @@ void test01() TEST_ERRC(function_not_supported); TEST_ERRC(host_unreachable); -#ifdef _GLIBCXX_HAVE_EIDRM +#ifdef EIDRM TEST_ERRC(identifier_removed); #endif @@ -72,23 +72,23 @@ void test01() TEST_ERRC(no_buffer_space); TEST_ERRC(no_child_process); -#ifdef _GLIBCXX_HAVE_ENOLINK +#ifdef ENOLINK TEST_ERRC(no_link); #endif TEST_ERRC(no_lock_available); -#ifdef _GLIBCXX_HAVE_ENODATA +#ifdef ENODATA TEST_ERRC(no_message_available); #endif -#ifdef _GLIBCXX_HAVE_ENOMSG +#ifdef ENOMSG TEST_ERRC(no_message); #endif TEST_ERRC(no_protocol_option); TEST_ERRC(no_space_on_device); -#ifdef _GLIBCXX_HAVE_ENOSR +#ifdef ENOSR TEST_ERRC(no_stream_resources); #endif @@ -99,15 +99,15 @@ void test01() TEST_ERRC(not_a_directory); TEST_ERRC(not_a_socket); -#ifdef _GLIBCXX_HAVE_ENOSTR +#ifdef ENOSTR TEST_ERRC(not_a_stream); #endif - TEST_ERRC(not_connected); + TEST_ERRC(not_connected); TEST_ERRC(not_enough_memory); TEST_ERRC(not_supported); -#ifdef _GLIBCXX_HAVE_ECANCELED +#ifdef ECANCELED TEST_ERRC(operation_canceled); #endif @@ -116,31 +116,31 @@ void test01() TEST_ERRC(operation_not_supported); TEST_ERRC(operation_would_block); -#ifdef _GLIBCXX_HAVE_EOWNERDEAD +#ifdef EOWNERDEAD TEST_ERRC(owner_dead); #endif TEST_ERRC(permission_denied); -#ifdef _GLIBCXX_HAVE_EPROTO +#ifdef EPROTO TEST_ERRC(protocol_error); #endif TEST_ERRC(protocol_not_supported); TEST_ERRC(read_only_file_system); TEST_ERRC(resource_deadlock_would_occur); - TEST_ERRC(resource_unavailable_try_again); + TEST_ERRC(resource_unavailable_try_again); TEST_ERRC(result_out_of_range); -#ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE +#ifdef ENOTRECOVERABLE TEST_ERRC(state_not_recoverable); #endif -#ifdef _GLIBCXX_HAVE_ETIME +#ifdef ETIME TEST_ERRC(stream_timeout); #endif -#ifdef _GLIBCXX_HAVE_ETXTBSY +#ifdef ETXTBSY TEST_ERRC(text_file_busy); #endif @@ -150,7 +150,7 @@ void test01() TEST_ERRC(too_many_links); TEST_ERRC(too_many_symbolic_link_levels); -#ifdef _GLIBCXX_HAVE_EOVERFLOW +#ifdef EOVERFLOW TEST_ERRC(value_too_large); #endif