Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


      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