From: Simon Marchi <simark@simark.ca>
To: Orgad Shaneh <orgads@gmail.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH] mingw: Fix wrong error message on connection timeout
Date: Sun, 17 Nov 2019 19:47:00 -0000 [thread overview]
Message-ID: <e649e36b-c520-bdb1-48cd-4ae9e1323312@simark.ca> (raw)
In-Reply-To: <CAGHpTBJf7rkWKVvmqAFemhu+aqT9CTVE7bYp1__Yo+5F-R=87w@mail.gmail.com>
On 2019-11-17 5:46 a.m., Orgad Shaneh wrote:
> ETIMEDOUT is defined as 138. Translating this error code to a
> readable message gives "The system tried to join a drive to a directory
> on a joined drive."
>
> Since GDB assigns this value directly, it should use a value that
> the system recognizes correctly.
> ---
> gdb/ser-tcp.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
> index 37f64b5d08..a1baa7729e 100644
> --- a/gdb/ser-tcp.c
> +++ b/gdb/ser-tcp.c
> @@ -40,9 +40,8 @@
>
> #ifdef USE_WIN32API
> #include <ws2tcpip.h>
> -#ifndef ETIMEDOUT
> +#undef ETIMEDOUT
> #define ETIMEDOUT WSAETIMEDOUT
> -#endif
> /* Gnulib defines close too, but gnulib's replacement
> doesn't call closesocket unless we import the
> socketlib module. */
> --
> 2.24.0.windows.1.2.g59df941196
>
Hi Orgad,
Thanks for the patch.
I'd like if we could understand the situation a bit better first, because it looks a bit confusing.
Reading the thread where this ifndef has been introduced:
https://sourceware.org/ml/gdb-patches/2011-10/msg00759.html
the conclusion at the time was that all ETIMEDOUT/WSAETIMEDOUT definitions on mingw64 had
the same value, 10060.
Looking now, it has been changed to 138:
https://github.com/mirror/mingw-w64/blob/3ac71ed3105c2989ba378e2e88d9405f65797178/mingw-w64-headers/crt/errno.h#L221-L224
int this particular commit:
https://github.com/mirror/mingw-w64/commit/afae094979944d2d63dbbae125e4a5664538da6c
The comment still reads "Defined as WSAETIMEDOUT.", although that doesn't seem true anymore.
So the first question is: if strerror(ETIMEDOUT) on mingw64 returns an unrelated error string,
is it a mingw64 but? Has it been reported there?
While searching for "ETIMEDOUT mingw64", I stumbled on this Stack Overflow answer:
https://stackoverflow.com/questions/13523532/strerror-with-mingw-w64
That made me realize that we have imported the strerror_r-posix gnulib module recently. And
see here, it specifically handles ETIMEDOUT:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gnulib/import/strerror-override.c;h=9bc9b1895108485403cf8cb9e29723eccc009382;hb=HEAD#l82
So please try to build the current master and see you see the right error string now.
Also, since we import the errno gnulib module, which defines ETIMEDOUT, I am pretty sure we
actually could get right of these lines altogether:
#ifndef ETIMEDOUT
#define ETIMEDOUT WSAETIMEDOUT
#endif
Simon
prev parent reply other threads:[~2019-11-17 19:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-17 10:46 Orgad Shaneh
2019-11-17 19:47 ` Simon Marchi [this message]
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=e649e36b-c520-bdb1-48cd-4ae9e1323312@simark.ca \
--to=simark@simark.ca \
--cc=gdb-patches@sourceware.org \
--cc=orgads@gmail.com \
/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