From: Jonathan Wakely <jwakely@redhat.com>
To: Eric Botcazou <botcazou@adacore.com>
Cc: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org
Subject: Re: [committed] libstdc++: Test errno macros directly, not via autoconf [PR 93151]
Date: Thu, 1 Apr 2021 15:25:56 +0100 [thread overview]
Message-ID: <20210401142556.GT3008@redhat.com> (raw)
In-Reply-To: <2069095.Icojqenx9y@fomalhaut>
[-- Attachment #1: Type: text/plain, Size: 640 bytes --]
On 01/04/21 16:04 +0200, Eric Botcazou wrote:
>> Oops, and I also forgot to update the other headers that were using
>> those autoconf-generated macros!
>>
>> Fixed by this patch. Tested on mingw-w64, pushed to trunk.
>
>The original patch was apparently backported onto the gcc-10 branch, but not
>this follow-up fix, so Windows builds are now broken on the branch.
Sorry. I did try to test a mingw-w64 cross, but I think I probably
tested it against trunk not the branch. So didn't test it at all.
It should be fixed by the attached patch for gcc-10. I'm testing it
now on linux and mingw.
I'll wait for RM approval before pushing.
[-- Attachment #2: patch.txt --]
[-- Type: text/x-patch, Size: 9321 bytes --]
commit 03a430a55093d2ea5b80db3273c3a7134367272a
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Dec 17 13:27:04 2020 +0000
libstdc++: Test errno macros directly for all targets [PR 93151]
This applies the same changes to the djgpp and mingw versions of
error_constants.h as r11-6137 did for the generic version.
All of these constants are defined as macros by <errno.h> on these
targets, so we can just test the macro directly instead of checking for
it at configure time.
libstdc++-v3/ChangeLog:
* config.h.in: Regenerate.
* config/os/djgpp/error_constants.h: Test POSIX errno macros
directly, instead of corresponding _GLIBCXX_HAVE_EXXX macros.
* config/os/mingw32-w64/error_constants.h: Likewise.
* config/os/mingw32/error_constants.h: Likewise.
* configure: Regenerate.
(cherry picked from commit 217d5beaff9987a9845155fc796322b5f8bb876d)
diff --git a/libstdc++-v3/config/os/djgpp/error_constants.h b/libstdc++-v3/config/os/djgpp/error_constants.h
index e0a67bc8d6d..8f947e69e37 100644
--- a/libstdc++-v3/config/os/djgpp/error_constants.h
+++ b/libstdc++-v3/config/os/djgpp/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/config/os/mingw32-w64/error_constants.h b/libstdc++-v3/config/os/mingw32-w64/error_constants.h
index 72422299def..3534c3e11b7 100644
--- a/libstdc++-v3/config/os/mingw32-w64/error_constants.h
+++ b/libstdc++-v3/config/os/mingw32-w64/error_constants.h
@@ -49,7 +49,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
argument_out_of_domain = EDOM,
bad_address = EFAULT,
bad_file_descriptor = EBADF,
-#ifdef _GLIBCXX_HAVE_EBADMSG
+#ifdef EBADMSG
bad_message = EBADMSG,
#endif
broken_pipe = EPIPE,
@@ -67,7 +67,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
filename_too_long = ENAMETOOLONG,
function_not_supported = ENOSYS,
host_unreachable = EHOSTUNREACH,
-#ifdef _GLIBCXX_HAVE_EIDRM
+#ifdef EIDRM
identifier_removed = EIDRM,
#endif
illegal_byte_sequence = EILSEQ,
@@ -82,24 +82,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
network_reset = ENETRESET,
network_unreachable = ENETUNREACH,
no_buffer_space = ENOBUFS,
-#ifdef _GLIBCXX_HAVE_ECHILD
+#ifdef ECHILD
no_child_process = ECHILD,
#endif
-#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
-#ifdef _GLIBCXX_HAVE_ENOMSG
+#ifdef ENOMSG
no_message = ENOMSG,
#endif
no_protocol_option = ENOPROTOOPT,
-#ifdef _GLIBCXX_HAVE_ENOSPC
+#ifdef ENOSPC
no_space_on_device = ENOSPC,
#endif
-#ifdef _GLIBCXX_HAVE_ENOSR
+#ifdef ENOSR
no_stream_resources = ENOSR,
#endif
no_such_device_or_address = ENXIO,
@@ -108,24 +108,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
no_such_process = ESRCH,
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
operation_canceled = ECANCELED,
operation_in_progress = EINPROGRESS,
-#ifdef _GLIBCXX_HAVE_EPERM
+#ifdef EPERM
operation_not_permitted = EPERM,
#endif
operation_not_supported = EOPNOTSUPP,
-#ifdef _GLIBCXX_HAVE_EWOULDBLOCK
+#ifdef EWOULDBLOCK
operation_would_block = EWOULDBLOCK,
#endif
-#ifdef _GLIBCXX_HAVE_EOWNERDEAD
+#ifdef EOWNERDEAD
owner_dead = EOWNERDEAD,
#endif
permission_denied = EACCES,
@@ -135,23 +135,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
resource_deadlock_would_occur = EDEADLK,
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
-#ifdef _GLIBCXX_HAVE_ETIMEDOUT
+#ifdef ETIMEDOUT
timed_out = ETIMEDOUT,
#endif
too_many_files_open_in_system = ENFILE,
too_many_files_open = EMFILE,
too_many_links = EMLINK,
too_many_symbolic_link_levels = ELOOP,
-#ifdef _GLIBCXX_HAVE_EOVERFLOW
+#ifdef EOVERFLOW
value_too_large = EOVERFLOW,
#endif
wrong_protocol_type = EPROTOTYPE
diff --git a/libstdc++-v3/config/os/mingw32/error_constants.h b/libstdc++-v3/config/os/mingw32/error_constants.h
index 68ac72a78fb..2222c5227c4 100644
--- a/libstdc++-v3/config/os/mingw32/error_constants.h
+++ b/libstdc++-v3/config/os/mingw32/error_constants.h
@@ -78,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// network_reset = ENETRESET,
// network_unreachable = ENETUNREACH,
// no_buffer_space = ENOBUFS,
-#ifdef _GLIBCXX_HAVE_ECHILD
+#ifdef ECHILD
no_child_process = ECHILD,
#endif
// no_link = ENOLINK,
@@ -86,7 +86,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// no_message_available = ENODATA,
// no_message = ENOMSG,
// no_protocol_option = ENOPROTOOPT,
-#ifdef _GLIBCXX_HAVE_ENOSPC
+#ifdef ENOSPC
no_space_on_device = ENOSPC,
#endif
// no_stream_resources = ENOSR,
@@ -99,16 +99,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// not_a_stream = ENOSTR,
// not_connected = ENOTCONN,
not_enough_memory = ENOMEM,
-#ifdef _GLIBCXX_HAVE_ENOTSUP
+#ifdef ENOTSUP
not_supported = ENOTSUP,
#endif
// operation_canceled = ECANCELED,
// operation_in_progress = EINPROGRESS,
-#ifdef _GLIBCXX_HAVE_EPERM
+#ifdef EPERM
operation_not_permitted = EPERM,
#endif
// operation_not_supported = EOPNOTSUPP,
-#ifdef _GLIBCXX_HAVE_EWOULDBLOCK
+#ifdef EWOULDBLOCK
operation_would_block = EWOULDBLOCK,
#endif
// owner_dead = EOWNERDEAD,
@@ -122,14 +122,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// state_not_recoverable = ENOTRECOVERABLE,
// stream_timeout = ETIME,
// text_file_busy = ETXTBSY,
-#ifdef _GLIBCXX_HAVE_ETIMEDOUT
+#ifdef ETIMEDOUT
timed_out = ETIMEDOUT,
#endif
too_many_files_open_in_system = ENFILE,
too_many_files_open = EMFILE,
too_many_links = EMLINK
// too_many_symbolic_link_levels = ELOOP,
-#ifdef _GLIBCXX_HAVE_EOVERFLOW
+#ifdef EOVERFLOW
,
value_too_large = EOVERFLOW
#endif
next prev parent reply other threads:[~2021-04-01 14:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-16 13:38 Jonathan Wakely
2020-12-17 14:05 ` Jonathan Wakely
2020-12-17 16:21 ` Jonathan Wakely
2021-04-01 14:04 ` Eric Botcazou
2021-04-01 14:25 ` Jonathan Wakely [this message]
2021-04-01 14:27 ` Jakub Jelinek
2021-04-01 15:15 ` Jonathan Wakely
2021-04-01 16:47 ` Eric Botcazou
2021-04-01 17:51 ` Jonathan Wakely
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210401142556.GT3008@redhat.com \
--to=jwakely@redhat.com \
--cc=botcazou@adacore.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=libstdc++@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).