Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH] Add IPv6 support for remote TCP connections
@ 2014-02-08 16:54 Paul Fertser
  2014-02-09  8:31 ` Jan Kratochvil
  0 siblings, 1 reply; 49+ messages in thread
From: Paul Fertser @ 2014-02-08 16:54 UTC (permalink / raw)
  To: gdb-patches; +Cc: Paul Fertser

This patch implements target host lookup the modern way,
see ``man 3 getaddrinfo'' for details; as a result, both IPv4 and IPv6
are transparently supported.

gdb:

2014-02-08  Paul Fertser  <fercerpav@gmail.com>

    * ser-tcp.c (net-open): Use last semicolon as port separator.
    * ser-tcp.c (net-open): Use getaddrinfo for host lookup.
---
 gdb/ser-tcp.c | 190 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 100 insertions(+), 90 deletions(-)

diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
index c288ab4..f29c3bf 100644
--- a/gdb/ser-tcp.c
+++ b/gdb/ser-tcp.c
@@ -157,9 +157,10 @@ int
 net_open (struct serial *scb, const char *name)
 {
   char *port_str, hostname[100];
-  int n, port, tmp;
+  int n, tmp;
   int use_udp;
-  struct hostent *hostent;
+  struct addrinfo hints;
+  struct addrinfo *result, *rp;
   struct sockaddr_in sockaddr;
 #ifdef USE_WIN32API
   u_long ioarg;
@@ -177,7 +178,7 @@ net_open (struct serial *scb, const char *name)
   else if (strncmp (name, "tcp:", 4) == 0)
     name = name + 4;
 
-  port_str = strchr (name, ':');
+  port_str = strrchr (name, ':');
 
   if (!port_str)
     error (_("net_open: No colon in host name!"));  /* Shouldn't ever
@@ -186,124 +187,133 @@ net_open (struct serial *scb, const char *name)
   tmp = min (port_str - name, (int) sizeof hostname - 1);
   strncpy (hostname, name, tmp);	/* Don't want colon.  */
   hostname[tmp] = '\000';	/* Tie off host name.  */
-  port = atoi (port_str + 1);
+  port_str++;
 
   /* Default hostname is localhost.  */
   if (!hostname[0])
     strcpy (hostname, "localhost");
 
-  hostent = gethostbyname (hostname);
-  if (!hostent)
+  memset (&hints, 0, sizeof (struct addrinfo));
+  hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */
+  if (use_udp)
+    hints.ai_socktype = SOCK_DGRAM;
+  else
+    hints.ai_socktype = SOCK_STREAM;
+  hints.ai_flags = 0;
+  hints.ai_protocol = 0;
+
+  tmp = getaddrinfo (hostname, port_str, &hints, &result);
+  if (tmp)
     {
       fprintf_unfiltered (gdb_stderr, "%s: unknown host\n", hostname);
       errno = ENOENT;
       return -1;
     }
 
-  sockaddr.sin_family = PF_INET;
-  sockaddr.sin_port = htons (port);
-  memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr,
-	  sizeof (struct in_addr));
-
- retry:
-
-  if (use_udp)
-    scb->fd = gdb_socket_cloexec (PF_INET, SOCK_DGRAM, 0);
-  else
-    scb->fd = gdb_socket_cloexec (PF_INET, SOCK_STREAM, 0);
+  for (rp = result; ; rp = rp->ai_next ? rp->ai_next : result)
+    {
+      scb->fd = gdb_socket_cloexec (rp->ai_family, rp->ai_socktype,
+                                    rp->ai_protocol);
 
-  if (scb->fd == -1)
-    return -1;
+      if (scb->fd == -1)
+        continue;
   
-  /* Set socket nonblocking.  */
-  ioarg = 1;
-  ioctl (scb->fd, FIONBIO, &ioarg);
+      /* Set socket nonblocking.  */
+      ioarg = 1;
+      ioctl (scb->fd, FIONBIO, &ioarg);
 
-  /* Use Non-blocking connect.  connect() will return 0 if connected
-     already.  */
-  n = connect (scb->fd, (struct sockaddr *) &sockaddr, sizeof (sockaddr));
+      /* Use Non-blocking connect.  connect() will return 0 if connected
+         already.  */
+      n = connect (scb->fd, rp->ai_addr, rp->ai_addrlen);
 
-  if (n < 0)
-    {
+      if (n < 0)
+        {
 #ifdef USE_WIN32API
-      int err = WSAGetLastError();
+          int err = WSAGetLastError();
 #else
-      int err = errno;
+          int err = errno;
 #endif
 
-      /* Maybe we're waiting for the remote target to become ready to
-	 accept connections.  */
-      if (tcp_auto_retry
+          /* Maybe we're waiting for the remote target to become ready to
+             accept connections.  */
+          if (tcp_auto_retry
 #ifdef USE_WIN32API
-	  && err == WSAECONNREFUSED
+              && err == WSAECONNREFUSED
 #else
-	  && err == ECONNREFUSED
+              && err == ECONNREFUSED
 #endif
-	  && wait_for_connect (NULL, &polls) >= 0)
-	{
-	  close (scb->fd);
-	  goto retry;
-	}
+              && wait_for_connect (NULL, &polls) >= 0)
+            {
+              close (scb->fd);
+              continue;
+            }
 
-      if (
+          if (
 #ifdef USE_WIN32API
-	  /* Under Windows, calling "connect" with a non-blocking socket
-	     results in WSAEWOULDBLOCK, not WSAEINPROGRESS.  */
-	  err != WSAEWOULDBLOCK
+              /* Under Windows, calling "connect" with a non-blocking socket
+                 results in WSAEWOULDBLOCK, not WSAEINPROGRESS.  */
+              err != WSAEWOULDBLOCK
 #else
-	  err != EINPROGRESS
+              err != EINPROGRESS
 #endif
-	  )
-	{
-	  errno = err;
-	  net_close (scb);
-	  return -1;
-	}
-
-      /* Looks like we need to wait for the connect.  */
-      do 
-	{
-	  n = wait_for_connect (scb, &polls);
-	} 
-      while (n == 0);
-      if (n < 0)
-	{
-	  net_close (scb);
-	  return -1;
-	}
-    }
-
-  /* Got something.  Is it an error?  */
-  {
-    int res, err;
-    socklen_t len;
-
-    len = sizeof (err);
-    /* On Windows, the fourth parameter to getsockopt is a "char *";
-       on UNIX systems it is generally "void *".  The cast to "void *"
-       is OK everywhere, since in C "void *" can be implicitly
-       converted to any pointer type.  */
-    res = getsockopt (scb->fd, SOL_SOCKET, SO_ERROR, (void *) &err, &len);
-    if (res < 0 || err)
+              )
+            {
+              errno = err;
+              net_close (scb);
+              freeaddrinfo (result);
+              return -1;
+            }
+
+          /* Looks like we need to wait for the connect.  */
+          do 
+            {
+              n = wait_for_connect (scb, &polls);
+            } 
+          while (n == 0);
+          if (n < 0)
+            {
+              net_close (scb);
+              freeaddrinfo (result);
+              return -1;
+            }
+        }
+
+      /* Got something.  Is it an error?  */
       {
-	/* Maybe the target still isn't ready to accept the connection.  */
-	if (tcp_auto_retry
+        int res, err;
+        socklen_t len;
+
+        len = sizeof (err);
+        /* On Windows, the fourth parameter to getsockopt is a "char *";
+           on UNIX systems it is generally "void *".  The cast to "void *"
+           is OK everywhere, since in C "void *" can be implicitly
+           converted to any pointer type.  */
+        res = getsockopt (scb->fd, SOL_SOCKET, SO_ERROR, (void *) &err, &len);
+        if (res < 0 || err)
+          {
+            /* Maybe the target still isn't ready to accept the connection.  */
+            if (tcp_auto_retry
 #ifdef USE_WIN32API
-	    && err == WSAECONNREFUSED
+                && err == WSAECONNREFUSED
 #else
-	    && err == ECONNREFUSED
+                && err == ECONNREFUSED
 #endif
-	    && wait_for_connect (NULL, &polls) >= 0)
-	  {
-	    close (scb->fd);
-	    goto retry;
-	  }
-	if (err)
-	  errno = err;
-	net_close (scb);
-	return -1;
+                && wait_for_connect (NULL, &polls) >= 0)
+              {
+                close (scb->fd);
+                continue;
+              }
+            if (err)
+              errno = err;
+            net_close (scb);
+            freeaddrinfo (result);
+            return -1;
+          }
+        break;
       }
-  } 
+    }
+
+  freeaddrinfo (result);
 
   /* Turn off nonblocking.  */
   ioarg = 0;
-- 
1.8.3.2


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-08 16:54 [PATCH] Add IPv6 support for remote TCP connections Paul Fertser
@ 2014-02-09  8:31 ` Jan Kratochvil
  2014-02-09  9:53   ` Paul Fertser
  2014-02-09 16:25   ` Eli Zaretskii
  0 siblings, 2 replies; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-09  8:31 UTC (permalink / raw)
  To: Paul Fertser; +Cc: gdb-patches, Kai Tietz

On Sat, 08 Feb 2014 17:53:55 +0100, Paul Fertser wrote:
> This patch implements target host lookup the modern way,
> see ``man 3 getaddrinfo'' for details; as a result, both IPv4 and IPv6
> are transparently supported.

Such patch is pending around since ~2006
	https://bugzilla.redhat.com/show_bug.cgi?id=198365#c1

and currently a different patch is on
	jankratochvil/ipv6
	git://sourceware.org/git/archer.git

It should also implement IPv6 in gdbserver (which you may not need).

The problem is that MinGW (=MS-Windows) port does not have getaddrinfo, there
are multiple way how to deal with it, the most clean should be via extending
gdb/gnulib/ :
------------------------------------------------------------------------------
I was trying to fix it myself but I found out one needs to know mingw/cygwin
more than I do.  More the chat below, about current GDB #ifdefs for MS-Windows
vs. probably the preferred way of using gdb/gnulib/ . For IPv6 mingw build
I found I need to add these modules to gdb/gnulib/update-gnulib.sh :
        IMPORTED_GNULIB_MODULES="$IMPORTED_GNULIB_MODULES getaddrinfo inet_pton accept"
        IMPORTED_GNULIB_MODULES="$IMPORTED_GNULIB_MODULES bind getsockname listen recv"
        IMPORTED_GNULIB_MODULES="$IMPORTED_GNULIB_MODULES send setsockopt socket close"
        IMPORTED_GNULIB_MODULES="$IMPORTED_GNULIB_MODULES sys_select select getsockopt"
        IMPORTED_GNULIB_MODULES="$IMPORTED_GNULIB_MODULES gettimeofday connect"
(the initial few modules are required by the IPv6 patch, all the remaining
ones came in as some dependencies IIRC)

But then mingw build fails.  I tried to fix it in archer/jankratochvil/ipv6
( git://sourceware.org/git/archer.git ) but I got lost in what is the right way
so I guess you should do it from scratch on your own.  I tried it more
a quick&dirty way but it probably needs a more clean thorough rework IMO.
------------------------------------------------------------------------------

So due to buggy MinGW normal OSes still can't use IPv6 after 7 years while IPv4
even no longer exists on some networks.



Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09  8:31 ` Jan Kratochvil
@ 2014-02-09  9:53   ` Paul Fertser
  2014-02-09 13:05     ` Jan Kratochvil
  2014-02-09 16:29     ` Eli Zaretskii
  2014-02-09 16:25   ` Eli Zaretskii
  1 sibling, 2 replies; 49+ messages in thread
From: Paul Fertser @ 2014-02-09  9:53 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: gdb-patches, Kai Tietz

Hi,

On Sun, Feb 09, 2014 at 09:30:56AM +0100, Jan Kratochvil wrote:
> and currently a different patch is on
> 	jankratochvil/ipv6
> 	git://sourceware.org/git/archer.git
> 
> It should also implement IPv6 in gdbserver (which you may not need).

That was my other concern indeed. I am afraid your implementation
relies on IPv4-mapped IPv6 which is not supported on OpenBSD at all
(and also on older windows versions including wxp and w2k3) and can be
disabled by system administrators on other systems.

I think the way I modified net_open() behaviour matches the current
code closer, i.e. in case the target didn't bind its socket yet in my
version it'll will cycle through all the available addresses for 15
seconds and it looks like in your version it'll try connecting once to
all potential addresses, get "connection refused" and give up.

> The problem is that MinGW (=MS-Windows) port does not have getaddrinfo, there
> are multiple way how to deal with it, the most clean should be via extending
> gdb/gnulib/ :

Do you take into account that there're currently two competing
solutions for providing windows support: MinGW and MinGW-w64? The
former declares tools availability as their aim, but the latter also
strives for C99 and some POSIX compatibility. There's also Cygwin
which is, of course, even closer to traditional systems. All major
distros (that provide cross-compiling toolchain for windows) switched
to MinGW-w64 by now.

I've just tried cross-compiling code with getaddrinfo with mingw-w64
without any replacements and it was built (and run with wine) just
fine.

> But then mingw build fails.  I tried to fix it in archer/jankratochvil/ipv6
> ( git://sourceware.org/git/archer.git ) but I got lost in what is the right way
> so I guess you should do it from scratch on your own.  I tried it more
> a quick&dirty way but it probably needs a more clean thorough rework IMO.

https://www.gnu.org/software/gnulib/manual/html_node/getaddrinfo.html
implies all compatibility issues should be solved with it. So is it
not so, and there's a bug in gnulib?

> So due to buggy MinGW normal OSes still can't use IPv6 after 7 years while IPv4
> even no longer exists on some networks.

Probably it's time to change that finally, especially given MinGW-w64
seems to work fine?

-- 
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09  9:53   ` Paul Fertser
@ 2014-02-09 13:05     ` Jan Kratochvil
  2014-02-09 16:35       ` Eli Zaretskii
  2014-02-09 16:29     ` Eli Zaretskii
  1 sibling, 1 reply; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-09 13:05 UTC (permalink / raw)
  To: Paul Fertser; +Cc: gdb-patches, Kai Tietz

[-- Attachment #1: Type: text/plain, Size: 1334 bytes --]

On Sun, 09 Feb 2014 10:53:08 +0100, Paul Fertser wrote:
> Do you take into account that there're currently two competing
> solutions for providing windows support: MinGW and MinGW-w64?

Yes, recent Fedoras AFAIK follow the MinGW-w64 port:
	https://fedoraproject.org/wiki/MinGW?rd=SIGs/MinGW
	https://fedoraproject.org/wiki/MinGW/CrossCompilerFramework
	http://mingw-w64.sourceforge.net/


> I've just tried cross-compiling code with getaddrinfo with mingw-w64
> without any replacements and it was built (and run with wine) just
> fine.

I have different results for gdb-7.7 with your patch on Fedora Rawhide
(=F-21pre) x86_64:

../../gdb/ser-tcp.c: In function 'net_open':
../../gdb/ser-tcp.c:162:19: error: storage size of 'hints' isn't known
   struct addrinfo hints;
                   ^
../../gdb/ser-tcp.c:196:30: error: invalid application of 'sizeof' to incomplete type 'struct addrinfo'
   memset (&hints, 0, sizeof (struct addrinfo));
                              ^
../../gdb/ser-tcp.c:205:3: warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
   tmp = getaddrinfo (hostname, port_str, &hints, &result);
   ^
[...]

This is why I did start the unfinished/unsuccessful work on gdb/gnulib/ .

Does it mean the Fedora MinGW is broken?  Which MinGW packaging have you used?


Thanks,
Jan

[-- Attachment #2: 1 --]
[-- Type: text/plain, Size: 581 bytes --]

mingw-binutils-generic-2.24-1.fc21.x86_64
mingw-filesystem-base-99-3.fc20.noarch
mingw64-binutils-2.24-1.fc21.x86_64
mingw64-cpp-4.8.2-2.fc21.x86_64
mingw64-crt-3.1.999-0.3.trunk.r6469.20140126.fc21.noarch
mingw64-expat-2.1.0-5.fc20.noarch
mingw64-filesystem-99-3.fc20.noarch
mingw64-gcc-4.8.2-2.fc21.x86_64
mingw64-headers-3.1.999-0.3.trunk.r6469.20140126.fc21.noarch
mingw64-pkg-config-0.28-2.fc20.x86_64
mingw64-win-iconv-0.0.4-3.fc20.noarch
mingw64-wine-gecko-2.24-1.fc21.noarch
mingw64-winpthreads-3.1.999-0.2.trunk.r6460.20140124.fc21.noarch
mingw64-zlib-1.2.8-2.fc20.noarch

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09  8:31 ` Jan Kratochvil
  2014-02-09  9:53   ` Paul Fertser
@ 2014-02-09 16:25   ` Eli Zaretskii
  1 sibling, 0 replies; 49+ messages in thread
From: Eli Zaretskii @ 2014-02-09 16:25 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: fercerpav, gdb-patches, ktietz

> Date: Sun, 9 Feb 2014 09:30:56 +0100
> From: Jan Kratochvil <jan.kratochvil@redhat.com>
> Cc: gdb-patches@sourceware.org, Kai Tietz <ktietz@redhat.com>
> 
> The problem is that MinGW (=MS-Windows) port does not have getaddrinfo

??? Of course, Windows supports getaddrinfo, see

  http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520%28v=vs.85%29.aspx

I cannot believe this patch us held off for so long when the problem
doesn't exist (unless I'm missing something obvious).


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09  9:53   ` Paul Fertser
  2014-02-09 13:05     ` Jan Kratochvil
@ 2014-02-09 16:29     ` Eli Zaretskii
  1 sibling, 0 replies; 49+ messages in thread
From: Eli Zaretskii @ 2014-02-09 16:29 UTC (permalink / raw)
  To: Paul Fertser; +Cc: jan.kratochvil, gdb-patches, ktietz

> Date: Sun, 9 Feb 2014 13:53:08 +0400
> From: Paul Fertser <fercerpav@gmail.com>
> Cc: gdb-patches@sourceware.org, Kai Tietz <ktietz@redhat.com>
> 
> https://www.gnu.org/software/gnulib/manual/html_node/getaddrinfo.html
> implies all compatibility issues should be solved with it. So is it
> not so, and there's a bug in gnulib?

The only issue with MinGW is that the function is declared in a
non-standard header.  That's hardly a reason good enough to pull in
gnulib.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09 13:05     ` Jan Kratochvil
@ 2014-02-09 16:35       ` Eli Zaretskii
  2014-02-09 16:47         ` Jan Kratochvil
  0 siblings, 1 reply; 49+ messages in thread
From: Eli Zaretskii @ 2014-02-09 16:35 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: fercerpav, gdb-patches, ktietz

> Date: Sun, 9 Feb 2014 14:05:01 +0100
> From: Jan Kratochvil <jan.kratochvil@redhat.com>
> Cc: gdb-patches@sourceware.org, Kai Tietz <ktietz@redhat.com>
> 
> On Sun, 09 Feb 2014 10:53:08 +0100, Paul Fertser wrote:
> > Do you take into account that there're currently two competing
> > solutions for providing windows support: MinGW and MinGW-w64?
> 
> Yes, recent Fedoras AFAIK follow the MinGW-w64 port:
> 	https://fedoraproject.org/wiki/MinGW?rd=SIGs/MinGW
> 	https://fedoraproject.org/wiki/MinGW/CrossCompilerFramework
> 	http://mingw-w64.sourceforge.net/
> 
> 
> > I've just tried cross-compiling code with getaddrinfo with mingw-w64
> > without any replacements and it was built (and run with wine) just
> > fine.
> 
> I have different results for gdb-7.7 with your patch on Fedora Rawhide
> (=F-21pre) x86_64:
> 
> ../../gdb/ser-tcp.c: In function 'net_open':
> ../../gdb/ser-tcp.c:162:19: error: storage size of 'hints' isn't known
>    struct addrinfo hints;
>                    ^
> ../../gdb/ser-tcp.c:196:30: error: invalid application of 'sizeof' to incomplete type 'struct addrinfo'
>    memset (&hints, 0, sizeof (struct addrinfo));
>                               ^
> ../../gdb/ser-tcp.c:205:3: warning: implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
>    tmp = getaddrinfo (hostname, port_str, &hints, &result);
>    ^
> [...]

Did you include ws2tcpip.h?  That's the header where getaddrinfo and
all that is needed to use it are declared, per the MSDN documentation:

  http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520%28v=vs.85%29.aspx


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09 16:35       ` Eli Zaretskii
@ 2014-02-09 16:47         ` Jan Kratochvil
  2014-02-09 17:08           ` Paul Fertser
  0 siblings, 1 reply; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-09 16:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: fercerpav, gdb-patches, ktietz

On Sun, 09 Feb 2014 17:34:28 +0100, Eli Zaretskii wrote:
> Did you include ws2tcpip.h?  That's the header where getaddrinfo and
> all that is needed to use it are declared, per the MSDN documentation:
> 
>   http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520%28v=vs.85%29.aspx

The patch with <ws2tcpip.h> really builds OK on Fedora mingw64.

I did not expect the function may be missing just due to a non-standard header
file.

OK, we can now go with the patch and merge in gdbserver bits from my patch.


Thanks,
Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09 16:47         ` Jan Kratochvil
@ 2014-02-09 17:08           ` Paul Fertser
  2014-02-09 17:29             ` Jan Kratochvil
  2015-03-22 16:39             ` [PATCH] Add IPv6 support for " Jan Kratochvil
  0 siblings, 2 replies; 49+ messages in thread
From: Paul Fertser @ 2014-02-09 17:08 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Eli Zaretskii, gdb-patches, ktietz

On Sun, Feb 09, 2014 at 05:47:48PM +0100, Jan Kratochvil wrote:
> On Sun, 09 Feb 2014 17:34:28 +0100, Eli Zaretskii wrote:
> > Did you include ws2tcpip.h?  That's the header where getaddrinfo and
> > all that is needed to use it are declared, per the MSDN documentation:
> > 
> >   http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520%28v=vs.85%29.aspx
> 
> The patch with <ws2tcpip.h> really builds OK on Fedora mingw64.

I'm testing exactly that right atm and came to the same conclusion.

> I did not expect the function may be missing just due to a non-standard header
> file.

But gnulib docs say "This function is missing on some platforms: HP-UX
11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9,
Interix 3.5, BeOS", is it really ok this way?

> OK, we can now go with the patch and merge in gdbserver bits from my patch.

I tested my patch against OpenOCD locally and it seems to behave as
expected, but I admit that's not a really thorough testing.

Another point: configure.ac should probably check for getaddrinfo in
"nsl" and "socket" as Solaris docs say both libs are required for it.

Regarding gdbserver mods, I didn't test it at all but from a cursory
look at the source code it feels like the user can't specify if an
ipv4 or ipv6 socket should be used? And that only a single socket is
bound, so if ipv6 is available, it'll bind to ipv6 and if the
particular system doesn't map ipv4 address space to ipv6 (such as
OpenBSD) then it wouldn't be possible to make gdbserver accessible on
legacy ipv4 at all? Sorry if I'm missing something obvious here, just
wanted to make sure it's all covered.

Do you want me to send any updates to this patch or will you handle it
yourself now?

-- 
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09 17:08           ` Paul Fertser
@ 2014-02-09 17:29             ` Jan Kratochvil
       [not found]               ` <1392033768-16793-1-git-send-email-fercerpav@gmail.com>
  2015-03-22 16:39             ` [PATCH] Add IPv6 support for " Jan Kratochvil
  1 sibling, 1 reply; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-09 17:29 UTC (permalink / raw)
  To: Paul Fertser; +Cc: Eli Zaretskii, gdb-patches, ktietz

On Sun, 09 Feb 2014 18:08:21 +0100, Paul Fertser wrote:
> But gnulib docs say "This function is missing on some platforms: HP-UX
> 11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9,
> Interix 3.5, BeOS", is it really ok this way?
+
> Another point: configure.ac should probably check for getaddrinfo in
> "nsl" and "socket" as Solaris docs say both libs are required for it.

Good catch.  One should be able to test some of those (at least the IRIX) at:
	http://gcc.gnu.org/wiki/CompileFarm


> Regarding gdbserver mods, I didn't test it at all but from a cursory
> look at the source code it feels like the user can't specify if an
> ipv4 or ipv6 socket should be used? And that only a single socket is
> bound, so if ipv6 is available, it'll bind to ipv6 and if the
> particular system doesn't map ipv4 address space to ipv6 (such as
> OpenBSD) then it wouldn't be possible to make gdbserver accessible on
> legacy ipv4 at all?

If some OSes do not support the IPv6<->IPv4 connections then sure gdbserver
has to bind to two sockets and select() which one gets a connection first.

That should be easier for users than introducing new commandline options.


> Do you want me to send any updates to this patch or will you handle it
> yourself now?

It can be all faster if you do it, I should do it otherwise anyway.


Thanks,
Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2] Add IPv6 support for remote TCP connections
       [not found]               ` <1392033768-16793-1-git-send-email-fercerpav@gmail.com>
@ 2014-02-10 16:53                 ` Eli Zaretskii
  2014-02-10 17:02                   ` Paul Fertser
  0 siblings, 1 reply; 49+ messages in thread
From: Eli Zaretskii @ 2014-02-10 16:53 UTC (permalink / raw)
  To: Paul Fertser; +Cc: jan.kratochvil, gdb-patches, ktietz

> From: Paul Fertser <fercerpav@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, gdb-patches@sourceware.org,
>         ktietz@redhat.com
> Date: Mon, 10 Feb 2014 16:02:48 +0400
> 
> I'm not sure if GDB prefers to count on Gnulib always or to use ifdefs
> here and there to treat windows as a special case. As windows provides
> getaddrinfo itself this gnulib "bloat" introduced by this patch is not
> really needed.
> 
> But there're some old OSes that lack this function altogether

Which ones?  Does GDB support them?


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2] Add IPv6 support for remote TCP connections
  2014-02-10 16:53                 ` [PATCH v2] " Eli Zaretskii
@ 2014-02-10 17:02                   ` Paul Fertser
  2014-02-10 17:45                     ` Eli Zaretskii
  0 siblings, 1 reply; 49+ messages in thread
From: Paul Fertser @ 2014-02-10 17:02 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: jan.kratochvil, gdb-patches, ktietz

Folks, sorry for the huge patch I've sent, what is the recommended
sizelimit after which one should rather push to some public git tree?

On Mon, Feb 10, 2014 at 06:53:31PM +0200, Eli Zaretskii wrote:
> > I'm not sure if GDB prefers to count on Gnulib always or to use ifdefs
> > here and there to treat windows as a special case. As windows provides
> > getaddrinfo itself this gnulib "bloat" introduced by this patch is not
> > really needed.
> > 
> > But there're some old OSes that lack this function altogether
> 
> Which ones?  Does GDB support them?

To cite Gnulib docs:
``This function is missing on some platforms: HP-UX 11.11, IRIX 6.5,
OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS''

TBH, I have no idea how to check that, I couldn't find any specific
versions of the systems Gdb is supposed to support.

-- 
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v2] Add IPv6 support for remote TCP connections
  2014-02-10 17:02                   ` Paul Fertser
@ 2014-02-10 17:45                     ` Eli Zaretskii
  2014-02-10 19:58                       ` getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Jan Kratochvil
  0 siblings, 1 reply; 49+ messages in thread
From: Eli Zaretskii @ 2014-02-10 17:45 UTC (permalink / raw)
  To: Paul Fertser; +Cc: jan.kratochvil, gdb-patches, ktietz

> Date: Mon, 10 Feb 2014 21:02:44 +0400
> From: Paul Fertser <fercerpav@gmail.com>
> Cc: jan.kratochvil@redhat.com, gdb-patches@sourceware.org, ktietz@redhat.com
> 
> On Mon, Feb 10, 2014 at 06:53:31PM +0200, Eli Zaretskii wrote:
> > > I'm not sure if GDB prefers to count on Gnulib always or to use ifdefs
> > > here and there to treat windows as a special case. As windows provides
> > > getaddrinfo itself this gnulib "bloat" introduced by this patch is not
> > > really needed.
> > > 
> > > But there're some old OSes that lack this function altogether
> > 
> > Which ones?  Does GDB support them?
> 
> To cite Gnulib docs:
> ``This function is missing on some platforms: HP-UX 11.11, IRIX 6.5,
> OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS''
> 
> TBH, I have no idea how to check that, I couldn't find any specific
> versions of the systems Gdb is supposed to support.

Cygwin 1.5, MSVC, and Interix aren't supported, AFAIK, and MinGW is
not relevant.  Not sure about the others; hopefully, someone else will
chime in.

Thanks.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-10 17:45                     ` Eli Zaretskii
@ 2014-02-10 19:58                       ` Jan Kratochvil
  2014-02-11  3:42                         ` Joel Brobecker
  2014-02-11 19:48                         ` [PATCH v3] Add IPv6 support for outgoing remote TCP connections Paul Fertser
  0 siblings, 2 replies; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-10 19:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Paul Fertser, gdb-patches, ktietz

On Mon, 10 Feb 2014 18:45:15 +0100, Eli Zaretskii wrote:
> > To cite Gnulib docs:
> > ``This function is missing on some platforms: HP-UX 11.11, IRIX 6.5,
> > OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS''
> > 
> > TBH, I have no idea how to check that, I couldn't find any specific
> > versions of the systems Gdb is supposed to support.
> 
> Cygwin 1.5, MSVC, and Interix aren't supported, AFAIK, and MinGW is
> not relevant.  Not sure about the others; hopefully, someone else will
> chime in.

I have tested AIX on gcc111.fsffrance.org builds ser-tcp.c fine (the build
fails due to some other errors but that is off-topic here).

As discussed off-list with Tom recently changing subject and getaddrinfo
should be available even without gnulib.  (The patch code itself still needs
a review.) If some host does not have getaddrinfo its maintainer should say
so.


Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-10 19:58                       ` getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Jan Kratochvil
@ 2014-02-11  3:42                         ` Joel Brobecker
  2014-02-11 20:05                           ` Jan Kratochvil
  2014-02-13 11:36                           ` Jan Kratochvil
  2014-02-11 19:48                         ` [PATCH v3] Add IPv6 support for outgoing remote TCP connections Paul Fertser
  1 sibling, 2 replies; 49+ messages in thread
From: Joel Brobecker @ 2014-02-11  3:42 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Eli Zaretskii, Paul Fertser, gdb-patches, ktietz

> > > ``This function is missing on some platforms: HP-UX 11.11, IRIX 6.5,
> > > OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS''
[...]
> As discussed off-list with Tom recently changing subject and getaddrinfo
> should be available even without gnulib.  (The patch code itself still needs
> a review.) If some host does not have getaddrinfo its maintainer should say
> so.

In addition to Eli's list of unsupported targets, HP-UX, IRIX, OSF are
probably de facto unmaintained, at this point. Same for Solaris 7 which
is ancient ancient ancient, and no longer supported by its vendor.

We should probably send an announcement if we ever implement a change
we know might be breaking some platforms, though.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH v3] Add IPv6 support for outgoing remote TCP connections
  2014-02-10 19:58                       ` getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Jan Kratochvil
  2014-02-11  3:42                         ` Joel Brobecker
@ 2014-02-11 19:48                         ` Paul Fertser
  2014-02-12 16:53                           ` Jan Kratochvil
  1 sibling, 1 reply; 49+ messages in thread
From: Paul Fertser @ 2014-02-11 19:48 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Paul Fertser, Eli Zaretskii, gdb-patches, ktietz

This patch implements target host lookup the modern way,
see ``man 3 getaddrinfo'' for details; as a result, both IPv4 and IPv6
are transparently supported.

Changes since v1:

* Use gnulib to remain compatible with old systems lacking this
  function.
* Compile-time tested with MinGW-w64 (cross).

Changes since v2:

* Do not use gnulib, handle windows case separately.

gdb:

2014-02-10  Paul Fertser  <fercerpav@gmail.com>

    * ser-tcp.c : Additionally include ws2tcpip.h for windows.
    * ser-tcp.c (net-open): Use last semicolon as port separator.
    * ser-tcp.c (net-open): Use getaddrinfo for host lookup.
    * configure.ac : Add check for getaddrinfo.
    * configure : Regenerated.
---

Interestingly enough, this version continues to try connecting for
about 12 seconds (cycling IPv6 and IPv4 loopback addresess) when run as

./gdb -ex "tar ext :3333"

and nobody's listening.

The same cross-compiled and run with Wine stops trying immediately
(but connects ok if there's a listener). I haven't tried vanilla
version and haven't tried on native windows, so it's hard to tell if
that's a wine artifact.

In this patch I was trying to change current behaviour as little as
possible.

 gdb/configure    |  58 +++++++++++++++++
 gdb/configure.ac |   3 +
 gdb/ser-tcp.c    | 191 +++++++++++++++++++++++++++++--------------------------
 3 files changed, 162 insertions(+), 90 deletions(-)

diff --git a/gdb/configure b/gdb/configure
index 8ae2e09..ea7a9db 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -6509,6 +6509,64 @@ if test "$ac_res" != no; then :
 fi
 
 
+# Borrow from gnulib, Solaris might additionally need nsl
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getaddrinfo" >&5
+$as_echo_n "checking for library containing getaddrinfo... " >&6; }
+if test "${ac_cv_search_getaddrinfo+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char getaddrinfo ();
+int
+main ()
+{
+return getaddrinfo ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' socket network net; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib -lnsl $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_getaddrinfo=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_getaddrinfo+set}" = set; then :
+  break
+fi
+done
+if test "${ac_cv_search_getaddrinfo+set}" = set; then :
+
+else
+  ac_cv_search_getaddrinfo=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getaddrinfo" >&5
+$as_echo "$ac_cv_search_getaddrinfo" >&6; }
+ac_res=$ac_cv_search_getaddrinfo
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5
 $as_echo_n "checking for library containing socketpair... " >&6; }
diff --git a/gdb/configure.ac b/gdb/configure.ac
index feb28f3..fb14c4b 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -512,6 +512,9 @@ AC_CHECK_FUNC(wctype, [],
 # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
 AC_SEARCH_LIBS(gethostbyname, nsl)
 
+# Borrow from gnulib, Solaris might additionally need nsl
+AC_SEARCH_LIBS(getaddrinfo, [socket network net], [], [], [-lnsl])
+
 # Some systems (e.g. Solaris) have `socketpair' in libsocket.
 AC_SEARCH_LIBS(socketpair, socket)
 
diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
index c288ab4..15f7648 100644
--- a/gdb/ser-tcp.c
+++ b/gdb/ser-tcp.c
@@ -39,6 +39,7 @@
 
 #ifdef USE_WIN32API
 #include <winsock2.h>
+#include <ws2tcpip.h>
 #ifndef ETIMEDOUT
 #define ETIMEDOUT WSAETIMEDOUT
 #endif
@@ -157,9 +158,10 @@ int
 net_open (struct serial *scb, const char *name)
 {
   char *port_str, hostname[100];
-  int n, port, tmp;
+  int n, tmp;
   int use_udp;
-  struct hostent *hostent;
+  struct addrinfo hints;
+  struct addrinfo *result, *rp;
   struct sockaddr_in sockaddr;
 #ifdef USE_WIN32API
   u_long ioarg;
@@ -177,7 +179,7 @@ net_open (struct serial *scb, const char *name)
   else if (strncmp (name, "tcp:", 4) == 0)
     name = name + 4;
 
-  port_str = strchr (name, ':');
+  port_str = strrchr (name, ':');
 
   if (!port_str)
     error (_("net_open: No colon in host name!"));  /* Shouldn't ever
@@ -186,124 +188,133 @@ net_open (struct serial *scb, const char *name)
   tmp = min (port_str - name, (int) sizeof hostname - 1);
   strncpy (hostname, name, tmp);	/* Don't want colon.  */
   hostname[tmp] = '\000';	/* Tie off host name.  */
-  port = atoi (port_str + 1);
+  port_str++;
 
   /* Default hostname is localhost.  */
   if (!hostname[0])
     strcpy (hostname, "localhost");
 
-  hostent = gethostbyname (hostname);
-  if (!hostent)
+  memset (&hints, 0, sizeof (struct addrinfo));
+  hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */
+  if (use_udp)
+    hints.ai_socktype = SOCK_DGRAM;
+  else
+    hints.ai_socktype = SOCK_STREAM;
+  hints.ai_flags = 0;
+  hints.ai_protocol = 0;
+
+  tmp = getaddrinfo (hostname, port_str, &hints, &result);
+  if (tmp)
     {
       fprintf_unfiltered (gdb_stderr, "%s: unknown host\n", hostname);
       errno = ENOENT;
       return -1;
     }
 
-  sockaddr.sin_family = PF_INET;
-  sockaddr.sin_port = htons (port);
-  memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr,
-	  sizeof (struct in_addr));
-
- retry:
-
-  if (use_udp)
-    scb->fd = gdb_socket_cloexec (PF_INET, SOCK_DGRAM, 0);
-  else
-    scb->fd = gdb_socket_cloexec (PF_INET, SOCK_STREAM, 0);
+  for (rp = result; ; rp = rp->ai_next ? rp->ai_next : result)
+    {
+      scb->fd = gdb_socket_cloexec (rp->ai_family, rp->ai_socktype,
+                                    rp->ai_protocol);
 
-  if (scb->fd == -1)
-    return -1;
+      if (scb->fd == -1)
+        continue;
   
-  /* Set socket nonblocking.  */
-  ioarg = 1;
-  ioctl (scb->fd, FIONBIO, &ioarg);
+      /* Set socket nonblocking.  */
+      ioarg = 1;
+      ioctl (scb->fd, FIONBIO, &ioarg);
 
-  /* Use Non-blocking connect.  connect() will return 0 if connected
-     already.  */
-  n = connect (scb->fd, (struct sockaddr *) &sockaddr, sizeof (sockaddr));
+      /* Use Non-blocking connect.  connect() will return 0 if connected
+         already.  */
+      n = connect (scb->fd, rp->ai_addr, rp->ai_addrlen);
 
-  if (n < 0)
-    {
+      if (n < 0)
+        {
 #ifdef USE_WIN32API
-      int err = WSAGetLastError();
+          int err = WSAGetLastError();
 #else
-      int err = errno;
+          int err = errno;
 #endif
 
-      /* Maybe we're waiting for the remote target to become ready to
-	 accept connections.  */
-      if (tcp_auto_retry
+          /* Maybe we're waiting for the remote target to become ready to
+             accept connections.  */
+          if (tcp_auto_retry
 #ifdef USE_WIN32API
-	  && err == WSAECONNREFUSED
+              && err == WSAECONNREFUSED
 #else
-	  && err == ECONNREFUSED
+              && err == ECONNREFUSED
 #endif
-	  && wait_for_connect (NULL, &polls) >= 0)
-	{
-	  close (scb->fd);
-	  goto retry;
-	}
+              && wait_for_connect (NULL, &polls) >= 0)
+            {
+              close (scb->fd);
+              continue;
+            }
 
-      if (
+          if (
 #ifdef USE_WIN32API
-	  /* Under Windows, calling "connect" with a non-blocking socket
-	     results in WSAEWOULDBLOCK, not WSAEINPROGRESS.  */
-	  err != WSAEWOULDBLOCK
+              /* Under Windows, calling "connect" with a non-blocking socket
+                 results in WSAEWOULDBLOCK, not WSAEINPROGRESS.  */
+              err != WSAEWOULDBLOCK
 #else
-	  err != EINPROGRESS
+              err != EINPROGRESS
 #endif
-	  )
-	{
-	  errno = err;
-	  net_close (scb);
-	  return -1;
-	}
-
-      /* Looks like we need to wait for the connect.  */
-      do 
-	{
-	  n = wait_for_connect (scb, &polls);
-	} 
-      while (n == 0);
-      if (n < 0)
-	{
-	  net_close (scb);
-	  return -1;
-	}
-    }
-
-  /* Got something.  Is it an error?  */
-  {
-    int res, err;
-    socklen_t len;
-
-    len = sizeof (err);
-    /* On Windows, the fourth parameter to getsockopt is a "char *";
-       on UNIX systems it is generally "void *".  The cast to "void *"
-       is OK everywhere, since in C "void *" can be implicitly
-       converted to any pointer type.  */
-    res = getsockopt (scb->fd, SOL_SOCKET, SO_ERROR, (void *) &err, &len);
-    if (res < 0 || err)
+              )
+            {
+              errno = err;
+              net_close (scb);
+              freeaddrinfo (result);
+              return -1;
+            }
+
+          /* Looks like we need to wait for the connect.  */
+          do
+            {
+              n = wait_for_connect (scb, &polls);
+            }
+          while (n == 0);
+          if (n < 0)
+            {
+              net_close (scb);
+              freeaddrinfo (result);
+              return -1;
+            }
+        }
+
+      /* Got something.  Is it an error?  */
       {
-	/* Maybe the target still isn't ready to accept the connection.  */
-	if (tcp_auto_retry
+        int res, err;
+        socklen_t len;
+
+        len = sizeof (err);
+        /* On Windows, the fourth parameter to getsockopt is a "char *";
+           on UNIX systems it is generally "void *".  The cast to "void *"
+           is OK everywhere, since in C "void *" can be implicitly
+           converted to any pointer type.  */
+        res = getsockopt (scb->fd, SOL_SOCKET, SO_ERROR, (void *) &err, &len);
+        if (res < 0 || err)
+          {
+            /* Maybe the target still isn't ready to accept the connection.  */
+            if (tcp_auto_retry
 #ifdef USE_WIN32API
-	    && err == WSAECONNREFUSED
+                && err == WSAECONNREFUSED
 #else
-	    && err == ECONNREFUSED
+                && err == ECONNREFUSED
 #endif
-	    && wait_for_connect (NULL, &polls) >= 0)
-	  {
-	    close (scb->fd);
-	    goto retry;
-	  }
-	if (err)
-	  errno = err;
-	net_close (scb);
-	return -1;
+                && wait_for_connect (NULL, &polls) >= 0)
+              {
+                close (scb->fd);
+                continue;
+              }
+            if (err)
+              errno = err;
+            net_close (scb);
+            freeaddrinfo (result);
+            return -1;
+          }
+        break;
       }
-  } 
+    }
+
+  freeaddrinfo (result);
 
   /* Turn off nonblocking.  */
   ioarg = 0;
-- 
1.8.3.2


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-11  3:42                         ` Joel Brobecker
@ 2014-02-11 20:05                           ` Jan Kratochvil
  2014-02-11 20:33                             ` Stan Shebs
  2014-02-12  3:00                             ` Joel Brobecker
  2014-02-13 11:36                           ` Jan Kratochvil
  1 sibling, 2 replies; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-11 20:05 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Eli Zaretskii, Paul Fertser, gdb-patches, ktietz

On Tue, 11 Feb 2014 04:41:57 +0100, Joel Brobecker wrote:
> We should probably send an announcement if we ever implement a change
> we know might be breaking some platforms, though.

What do you mean by "an announcement"? gdb-announce maling list (ml)?
gdb ml? gdb-patches ml? gdb/NEWS entry?

This mail thread you do not seem to consider a good enough announcement for
host maintainer.


Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-11 20:05                           ` Jan Kratochvil
@ 2014-02-11 20:33                             ` Stan Shebs
  2014-02-12  3:04                               ` Joel Brobecker
  2014-02-12  3:00                             ` Joel Brobecker
  1 sibling, 1 reply; 49+ messages in thread
From: Stan Shebs @ 2014-02-11 20:33 UTC (permalink / raw)
  To: gdb-patches

On 2/11/14 12:04 PM, Jan Kratochvil wrote:
> On Tue, 11 Feb 2014 04:41:57 +0100, Joel Brobecker wrote:
>> We should probably send an announcement if we ever implement a change
>> we know might be breaking some platforms, though.
> 
> What do you mean by "an announcement"? gdb-announce maling list (ml)?
> gdb ml? gdb-patches ml? gdb/NEWS entry?
> 
> This mail thread you do not seem to consider a good enough announcement for
> host maintainer.

I would say gdb/NEWS, so downstream tarball users get a heads-up before
a build fails and they start deluging bugzilla with reports.

Stan
stan@codesourcery.com


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-11 20:05                           ` Jan Kratochvil
  2014-02-11 20:33                             ` Stan Shebs
@ 2014-02-12  3:00                             ` Joel Brobecker
  2014-02-12 12:10                               ` Jan Kratochvil
  1 sibling, 1 reply; 49+ messages in thread
From: Joel Brobecker @ 2014-02-12  3:00 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Eli Zaretskii, Paul Fertser, gdb-patches, ktietz

Thinking out loud...

> What do you mean by "an announcement"? gdb-announce maling list (ml)?
> gdb ml? gdb-patches ml? gdb/NEWS entry?

I am not really sure - we don't really have a procedure we've agreed
on. At the very very least, I would send an email to the gdb@ mailing
list. Would it be too much noise if we sent to gdb-announce@, though?

Should we also mention that fact with a NEWS entry on the GDB website?
I think so.

> This mail thread you do not seem to consider a good enough
> announcement for host maintainer.

I don't think we have any maintainer for those ports. I think we're
really searching for an idea of the remaining number of users instead.
For some of them, I used to have access to machines running those OSes,
and so could be used as a resource. But not anymore.

Note that I'm also open to discussing a different strategy where
we could decide that for those very old and exotic platforms with
no maintainer and no recent activity, it's OK to just deprecate
the port without further ado.

I propose the following:

  - Email to gdb or gdb-announce to announce that ports XXX, YYY, and
    ZZZ are deprecated, and that GDB version 7.8 will be the last
    release supporting them. The decision can be reverted if someone
    commits to maintaining that port;

  - Add corresponding note in GDB's website news area.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-11 20:33                             ` Stan Shebs
@ 2014-02-12  3:04                               ` Joel Brobecker
  0 siblings, 0 replies; 49+ messages in thread
From: Joel Brobecker @ 2014-02-12  3:04 UTC (permalink / raw)
  To: Stan Shebs; +Cc: gdb-patches

> I would say gdb/NEWS, so downstream tarball users get a heads-up before
> a build fails and they start deluging bugzilla with reports.

Indeed, we've been documenting in gdb/NEWS the deprecation and removal
of any feature or platform support!

I think we need to do a little more (see my other email), though;
If I'd make a guess, I would say that most people do not read,
or even peek at, the news file as all.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-12  3:00                             ` Joel Brobecker
@ 2014-02-12 12:10                               ` Jan Kratochvil
  2014-02-13  7:37                                 ` Joel Brobecker
  2014-02-13 14:26                                 ` getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Tom Tromey
  0 siblings, 2 replies; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-12 12:10 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Eli Zaretskii, Paul Fertser, gdb-patches, ktietz

On Wed, 12 Feb 2014 04:00:12 +0100, Joel Brobecker wrote:
>   - Email to gdb or gdb-announce to announce that ports XXX, YYY, and
>     ZZZ are deprecated, and that GDB version 7.8 will be the last
>     release supporting them. The decision can be reverted if someone
>     commits to maintaining that port;

Did you mean to write there 7.7?  Otherwise for example the import of IPv6
getaddrinfo is still blocked.


I failed to build (make failed to find how to build file "-lz") GDB even on
AIX - on gcc111.fsffrance.org - which should be a supported OS (by you
coincidentally) so I have doubts GDB is buildable on OSes no one even tests.


Regards,
Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v3] Add IPv6 support for outgoing remote TCP connections
  2014-02-11 19:48                         ` [PATCH v3] Add IPv6 support for outgoing remote TCP connections Paul Fertser
@ 2014-02-12 16:53                           ` Jan Kratochvil
  2014-02-12 17:32                             ` Paul Fertser
  0 siblings, 1 reply; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-12 16:53 UTC (permalink / raw)
  To: Paul Fertser; +Cc: Eli Zaretskii, gdb-patches, ktietz

On Tue, 11 Feb 2014 20:48:09 +0100, Paul Fertser wrote:
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -512,6 +512,9 @@ AC_CHECK_FUNC(wctype, [],
>  # Some systems (e.g. Solaris) have `gethostbyname' in libnsl.
>  AC_SEARCH_LIBS(gethostbyname, nsl)
>  
> +# Borrow from gnulib, Solaris might additionally need nsl

Missing trailing dot (.).

> +AC_SEARCH_LIBS(getaddrinfo, [socket network net], [], [], [-lnsl])

Where is it stated in gnulib?  I could not find it.


> +
>  # Some systems (e.g. Solaris) have `socketpair' in libsocket.
>  AC_SEARCH_LIBS(socketpair, socket)
>  
> diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
> index c288ab4..15f7648 100644
> --- a/gdb/ser-tcp.c
> +++ b/gdb/ser-tcp.c
> @@ -39,6 +39,7 @@
>  
>  #ifdef USE_WIN32API
>  #include <winsock2.h>
> +#include <ws2tcpip.h>

Put there AC_CHECK_HEADERS for it unless someone confirms all MS-Windows hosts
really have that include file.  I have no idea.


>  #ifndef ETIMEDOUT
>  #define ETIMEDOUT WSAETIMEDOUT
>  #endif
> @@ -157,9 +158,10 @@ int
>  net_open (struct serial *scb, const char *name)
>  {
>    char *port_str, hostname[100];
> -  int n, port, tmp;
> +  int n, tmp;
>    int use_udp;
> -  struct hostent *hostent;
> +  struct addrinfo hints;
> +  struct addrinfo *result, *rp;
>    struct sockaddr_in sockaddr;
>  #ifdef USE_WIN32API
>    u_long ioarg;
> @@ -177,7 +179,7 @@ net_open (struct serial *scb, const char *name)
>    else if (strncmp (name, "tcp:", 4) == 0)
>      name = name + 4;
>  
> -  port_str = strchr (name, ':');
> +  port_str = strrchr (name, ':');
>  
>    if (!port_str)
>      error (_("net_open: No colon in host name!"));  /* Shouldn't ever
> @@ -186,124 +188,133 @@ net_open (struct serial *scb, const char *name)
>    tmp = min (port_str - name, (int) sizeof hostname - 1);
>    strncpy (hostname, name, tmp);	/* Don't want colon.  */
>    hostname[tmp] = '\000';	/* Tie off host name.  */
> -  port = atoi (port_str + 1);
> +  port_str++;
>  
>    /* Default hostname is localhost.  */
>    if (!hostname[0])
>      strcpy (hostname, "localhost");
>  
> -  hostent = gethostbyname (hostname);
> -  if (!hostent)
> +  memset (&hints, 0, sizeof (struct addrinfo));
> +  hints.ai_family = AF_UNSPEC;    /* Allow IPv4 or IPv6 */
> +  if (use_udp)
> +    hints.ai_socktype = SOCK_DGRAM;
> +  else
> +    hints.ai_socktype = SOCK_STREAM;
> +  hints.ai_flags = 0;
> +  hints.ai_protocol = 0;
> +
> +  tmp = getaddrinfo (hostname, port_str, &hints, &result);
> +  if (tmp)
>      {
>        fprintf_unfiltered (gdb_stderr, "%s: unknown host\n", hostname);

It should use gai_strerror().  I understand you wrote
# In this patch I was trying to change current behaviour as little as
# possible.
It can be a separate patch 2/2 or even in this one.


>        errno = ENOENT;
>        return -1;
>      }
>  
> -  sockaddr.sin_family = PF_INET;
> -  sockaddr.sin_port = htons (port);
> -  memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr,
> -	  sizeof (struct in_addr));
> -
> - retry:
> -
> -  if (use_udp)
> -    scb->fd = gdb_socket_cloexec (PF_INET, SOCK_DGRAM, 0);
> -  else
> -    scb->fd = gdb_socket_cloexec (PF_INET, SOCK_STREAM, 0);
> +  for (rp = result; ; rp = rp->ai_next ? rp->ai_next : result)
> +    {
> +      scb->fd = gdb_socket_cloexec (rp->ai_family, rp->ai_socktype,
> +                                    rp->ai_protocol);
>  
> -  if (scb->fd == -1)
> -    return -1;
> +      if (scb->fd == -1)
> +        continue;

Neither 'return -1' nor 'continue' are right here.  It should not lock-up if
none of the sockets can be created, it should return so that the error gets
reported.



> -  /* Set socket nonblocking.  */
> -  ioarg = 1;
> -  ioctl (scb->fd, FIONBIO, &ioarg);
> +      /* Set socket nonblocking.  */
> +      ioarg = 1;
> +      ioctl (scb->fd, FIONBIO, &ioarg);
[...]


Thanks,
Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v3] Add IPv6 support for outgoing remote TCP connections
  2014-02-12 16:53                           ` Jan Kratochvil
@ 2014-02-12 17:32                             ` Paul Fertser
  2014-02-12 20:10                               ` Jan Kratochvil
  0 siblings, 1 reply; 49+ messages in thread
From: Paul Fertser @ 2014-02-12 17:32 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Eli Zaretskii, gdb-patches, ktietz

Hi Jan,

Thank you for the review!

On Wed, Feb 12, 2014 at 05:53:18PM +0100, Jan Kratochvil wrote:
> > +AC_SEARCH_LIBS(getaddrinfo, [socket network net], [], [], [-lnsl])
> 
> Where is it stated in gnulib?  I could not find it.

http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=m4/getaddrinfo.m4;h=2e66584865e9b45c201219071a5abc454ef43937;hb=HEAD#l21

-lnsl is needed per Oracle getaddrinfo man page.

> >  #ifdef USE_WIN32API
> >  #include <winsock2.h>
> > +#include <ws2tcpip.h>
> 
> Put there AC_CHECK_HEADERS for it unless someone confirms all MS-Windows hosts
> really have that include file.  I have no idea.

Hm, ok, I'll try to come up with something justifiable here.

> > +  tmp = getaddrinfo (hostname, port_str, &hints, &result);
> > +  if (tmp)
> >      {
> >        fprintf_unfiltered (gdb_stderr, "%s: unknown host\n", hostname);
> 
> It should use gai_strerror().  I understand you wrote
> # In this patch I was trying to change current behaviour as little as
> # possible.
> It can be a separate patch 2/2 or even in this one.

Ok.

> > +  for (rp = result; ; rp = rp->ai_next ? rp->ai_next : result)
> > +    {
> > +      scb->fd = gdb_socket_cloexec (rp->ai_family, rp->ai_socktype,
> > +                                    rp->ai_protocol);
> >  
> > -  if (scb->fd == -1)
> > -    return -1;
> > +      if (scb->fd == -1)
> > +        continue;
> 
> Neither 'return -1' nor 'continue' are right here.  It should not lock-up if
> none of the sockets can be created, it should return so that the error gets
> reported.

Indeed, thank you for spotting this! So can it be fprintf_unfiltered +
return -1 here?

I'm still puzzled about native windows behaviour; at least when run
with wine this code I proposed performs differently compared to
GNU/Linux, but I think it is the case with the unmodified code too.

-- 
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:fercerpav@gmail.com


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH v3] Add IPv6 support for outgoing remote TCP connections
  2014-02-12 17:32                             ` Paul Fertser
@ 2014-02-12 20:10                               ` Jan Kratochvil
  0 siblings, 0 replies; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-12 20:10 UTC (permalink / raw)
  To: Paul Fertser; +Cc: Eli Zaretskii, gdb-patches, ktietz

Hi Paul,

On Wed, 12 Feb 2014 18:32:05 +0100, Paul Fertser wrote:
> On Wed, Feb 12, 2014 at 05:53:18PM +0100, Jan Kratochvil wrote:
> > > +AC_SEARCH_LIBS(getaddrinfo, [socket network net], [], [], [-lnsl])
> > 
> > Where is it stated in gnulib?  I could not find it.
> 
> http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=m4/getaddrinfo.m4;h=2e66584865e9b45c201219071a5abc454ef43937;hb=HEAD#l21
> 
> -lnsl is needed per Oracle getaddrinfo man page.

Thanks, fine with it now.


> > > +  for (rp = result; ; rp = rp->ai_next ? rp->ai_next : result)
> > > +    {
> > > +      scb->fd = gdb_socket_cloexec (rp->ai_family, rp->ai_socktype,
> > > +                                    rp->ai_protocol);
> > >  
> > > -  if (scb->fd == -1)
> > > -    return -1;
> > > +      if (scb->fd == -1)
> > > +        continue;
> > 
> > Neither 'return -1' nor 'continue' are right here.  It should not lock-up if
> > none of the sockets can be created, it should return so that the error gets
> > reported.
> 
> Indeed, thank you for spotting this! So can it be fprintf_unfiltered +
> return -1 here?

Currently I think it should do:

any_socket_opened = 0;
for (rp = result; ; rp = rp->ai_next ? rp->ai_next : result) {
  scb->fd = gdb_socket_cloexec (...);
  if (scb->fd == -1) {
    if (rp->ai_next == NULL && (!any_socket_opened || !tcp_auto_retry))
      return -1;
    continue;
  }
  any_socket_opened = 1;
  [...]
}

It is not perfect for the case
    if (rp->ai_next == NULL && any_socket_opened && !tcp_auto_retry)
as errno will be returned from the failed gdb_socket_cloexec() while it would
be more appropriate to return errno from formerly failed connect().  But I do
not think it matters too much, sure it can be also fixed.

But that "return -1" part also depends on the requested gai_strerror()
implementation - currently the caller always calls perror_with_name() which
will be no longer right with gai_strerror().

I also think that it does not behave correctly now with:
	set tcp auto-retry off
It will abort on first IPv6 "connection refused" despite IMO it should still
try even the IPv4 entry (although only once due to "set tcp auto-retry off").


> I'm still puzzled about native windows behaviour; at least when run
> with wine this code I proposed performs differently compared to
> GNU/Linux, but I think it is the case with the unmodified code too.

I do not think the Wine run is too important.  I was trying to use Wine to
test the MinGW port before but I do not find the Wine run of MinGW GDB usable
for too may other reasons.  After the IPv6 patch gets finalized we can ask
someone with native MS-Windows access to verify the behavior.  Nice you have
found this difference.


Thanks,
Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-12 12:10                               ` Jan Kratochvil
@ 2014-02-13  7:37                                 ` Joel Brobecker
  2014-02-13 10:44                                   ` [patch] [sim] --disable-sim on ppc* by default (for AIX) [Re: getaddrinfo available on all GDB hosts?] Jan Kratochvil
  2014-02-13 14:26                                 ` getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Tom Tromey
  1 sibling, 1 reply; 49+ messages in thread
From: Joel Brobecker @ 2014-02-13  7:37 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Eli Zaretskii, Paul Fertser, gdb-patches, ktietz

> >   - Email to gdb or gdb-announce to announce that ports XXX, YYY, and
> >     ZZZ are deprecated, and that GDB version 7.8 will be the last
> >     release supporting them. The decision can be reverted if someone
> >     commits to maintaining that port;
> 
> Did you mean to write there 7.7?  Otherwise for example the import of IPv6
> getaddrinfo is still blocked.

Yes, sorry.

> I failed to build (make failed to find how to build file "-lz") GDB even on
> AIX - on gcc111.fsffrance.org - which should be a supported OS (by you
> coincidentally) so I have doubts GDB is buildable on OSes no one even tests.

I did so on gcc111 not so long ago, and now that we have our ppc-aix
machine back, we build it routinely.

For the other platforms, I cannot say.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [patch] [sim] --disable-sim on ppc* by default (for AIX)  [Re: getaddrinfo available on all GDB hosts?]
  2014-02-13  7:37                                 ` Joel Brobecker
@ 2014-02-13 10:44                                   ` Jan Kratochvil
  2014-02-13 10:51                                     ` Pedro Alves
  2014-02-13 11:59                                     ` Joel Brobecker
  0 siblings, 2 replies; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-13 10:44 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Eli Zaretskii, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 1001 bytes --]

On Thu, 13 Feb 2014 08:37:26 +0100, Joel Brobecker wrote:
> > I failed to build (make failed to find how to build file "-lz") GDB even on
> > AIX - on gcc111.fsffrance.org - which should be a supported OS (by you
> > coincidentally) so I have doubts GDB is buildable on OSes no one even tests.
> 
> I did so on gcc111 not so long ago, and now that we have our ppc-aix
> machine back, we build it routinely.

gcc111.fsffrance.org:

bzip2 -dc gdb-7.7.tar.bz2|tar xf -;cd gdb-7.7;./configure;make
	gcc -g -O2 -I. -I. -I./../../include -I../../bfd -I./../../bfd -I../../gdb -I./../../gdb  -I./../../gdb/config  -I. -I../common -I./../common -o gentmap
gcc: fatal error: no input files
compilation terminated.
make: 1254-004 The error code from the last command is 1.

(BTW it builds OK on RHEL-5 ppc64.)

But I have figured out now it builds with --disable-sim .  Maybe to disable
ppc* sim by default?  I have disabled it in Fedora/RHEL in Feb 2008 as already
that time it could not run any binary.


Jan

[-- Attachment #2: nosim.patch --]
[-- Type: text/plain, Size: 2742 bytes --]

sim/
2014-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* configure: Regenerate.
	* configure.ac (enable_sim): Use AS_HELP_STRING, set auto by defaultr.
	* configure.tgt (sim_default): New.
	(powerpc*-*-*): Disable it.

diff --git a/sim/configure b/sim/configure
index ab98231b..33df8f9 100755
--- a/sim/configure
+++ b/sim/configure
@@ -1280,7 +1280,8 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-sim
+  --enable-sim            Include simulated target (default=yes for most
+                          targets)
 
 Some influential environment variables:
   CC          C compiler command
@@ -3605,11 +3606,14 @@ if test "${enable_sim+set}" = set; then :
 yes | no) ;;
 *)	as_fn_error "bad value ${enableval} given for --enable-sim option" "$LINENO" 5 ;;
 esac
+else
+  enable_sim=auto
 fi
 
 
 
-if test "${enable_sim}" != no; then
+if test "${enable_sim}" = yes \
+	-o '(' "${enable_sim}" != no -a $sim_default = yes ')'; then
 
 # WHEN ADDING ENTRIES TO THIS MATRIX:
 
@@ -3624,6 +3628,7 @@ sim_testsuite=no
 sim_common=yes
 sim_igen=no
 sim_arch=
+sim_default=yes
 case "${target}" in
    arm*-*-*)
 
@@ -3820,6 +3825,7 @@ subdirs="$subdirs arm"
   subdirs="$subdirs ppc"
 
 
+       sim_default=no
        ;;
    v850*-*-*)
 
diff --git a/sim/configure.ac b/sim/configure.ac
index 8c1d914..6a76712 100644
--- a/sim/configure.ac
+++ b/sim/configure.ac
@@ -30,17 +30,20 @@ AC_SUBST(CFLAGS_FOR_BUILD)
 # If a cpu ever has more than one simulator to choose from, use
 # --enable-sim=... to choose.
 AC_ARG_ENABLE(sim,
-[  --enable-sim ],
+AS_HELP_STRING([--enable-sim],
+	       [Include simulated target (default=yes for most targets)]),
 [case "${enableval}" in
 yes | no) ;;
 *)	AC_MSG_ERROR(bad value ${enableval} given for --enable-sim option) ;;
-esac])
+esac],
+[enable_sim=auto])
 
 m4_define([SIM_ARCH], [
   sim_arch=$1
   AC_CONFIG_SUBDIRS($1)
 ])
-if test "${enable_sim}" != no; then
+if test "${enable_sim}" = yes \
+	-o '(' "${enable_sim}" != no -a $sim_default = yes ')'; then
    sinclude(configure.tgt)
    if test "$sim_testsuite" = yes; then
       AC_CONFIG_SUBDIRS(testsuite)
diff --git a/sim/configure.tgt b/sim/configure.tgt
index 39f92b6..b5cd02a 100644
--- a/sim/configure.tgt
+++ b/sim/configure.tgt
@@ -15,6 +15,7 @@ sim_testsuite=no
 sim_common=yes
 sim_igen=no
 sim_arch=
+sim_default=yes
 case "${target}" in
    arm*-*-*)
        SIM_ARCH(arm)
@@ -109,6 +110,7 @@ case "${target}" in
        ;;
    powerpc*-*-*)
        SIM_ARCH(ppc)
+       sim_default=no
        ;;
    v850*-*-*)
        SIM_ARCH(v850)

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [patch] [sim] --disable-sim on ppc* by default (for AIX)  [Re: getaddrinfo available on all GDB hosts?]
  2014-02-13 10:44                                   ` [patch] [sim] --disable-sim on ppc* by default (for AIX) [Re: getaddrinfo available on all GDB hosts?] Jan Kratochvil
@ 2014-02-13 10:51                                     ` Pedro Alves
  2014-02-13 11:04                                       ` Jan Kratochvil
  2014-02-13 11:59                                     ` Joel Brobecker
  1 sibling, 1 reply; 49+ messages in thread
From: Pedro Alves @ 2014-02-13 10:51 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Joel Brobecker, Eli Zaretskii, gdb-patches

On 02/13/2014 10:43 AM, Jan Kratochvil wrote:

> bzip2 -dc gdb-7.7.tar.bz2|tar xf -;cd gdb-7.7;./configure;make
> 	gcc -g -O2 -I. -I. -I./../../include -I../../bfd -I./../../bfd -I../../gdb -I./../../gdb  -I./../../gdb/config  -I. -I../common -I./../common -o gentmap
> gcc: fatal error: no input files
> compilation terminated.
> make: 1254-004 The error code from the last command is 1.
> 
> (BTW it builds OK on RHEL-5 ppc64.)
> 
> But I have figured out now it builds with --disable-sim .  Maybe to disable
> ppc* sim by default?

I don't see how that makes sense.  This sounds like a host
issue rather than a target issue?

> @@ -109,6 +110,7 @@ case "${target}" in
>         ;;
>     powerpc*-*-*)
>         SIM_ARCH(ppc)
> +       sim_default=no
>         ;;

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [patch] [sim] --disable-sim on ppc* by default (for AIX)  [Re: getaddrinfo available on all GDB hosts?]
  2014-02-13 10:51                                     ` Pedro Alves
@ 2014-02-13 11:04                                       ` Jan Kratochvil
  2014-02-13 11:39                                         ` Pedro Alves
  0 siblings, 1 reply; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-13 11:04 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Joel Brobecker, Eli Zaretskii, gdb-patches

On Thu, 13 Feb 2014 11:51:18 +0100, Pedro Alves wrote:
> On 02/13/2014 10:43 AM, Jan Kratochvil wrote:
> 
> > bzip2 -dc gdb-7.7.tar.bz2|tar xf -;cd gdb-7.7;./configure;make
> > 	gcc -g -O2 -I. -I. -I./../../include -I../../bfd -I./../../bfd -I../../gdb -I./../../gdb  -I./../../gdb/config  -I. -I../common -I./../common -o gentmap
> > gcc: fatal error: no input files
> > compilation terminated.
> > make: 1254-004 The error code from the last command is 1.
> > 
> > (BTW it builds OK on RHEL-5 ppc64.)
> > 
> > But I have figured out now it builds with --disable-sim .  Maybe to disable
> > ppc* sim by default?
> 
> I don't see how that makes sense.  This sounds like a host
> issue rather than a target issue?

The mail was about two unrelated problems:

(1) GDB by default fails to build on some archs of AIX.
    This could be fixed.  Currently I do not know how but there is some way.

(2) The ppc sim target is useless.  Therefore it wastes time of people trying
    to use it.

By fixing (2) one also fixes (1) as a side effect.  Fixing just (2) on its own
makes sense.

The patch below is to fix (2).


Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-11  3:42                         ` Joel Brobecker
  2014-02-11 20:05                           ` Jan Kratochvil
@ 2014-02-13 11:36                           ` Jan Kratochvil
  2014-02-13 11:55                             ` Joel Brobecker
  1 sibling, 1 reply; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-13 11:36 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Eli Zaretskii, Paul Fertser, gdb-patches

On Tue, 11 Feb 2014 04:41:57 +0100, Joel Brobecker wrote:
> > > > ``This function is missing on some platforms: HP-UX 11.11, IRIX 6.5,
> > > > OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS''
> [...]
> > As discussed off-list with Tom recently changing subject and getaddrinfo
> > should be available even without gnulib.  (The patch code itself still needs
> > a review.) If some host does not have getaddrinfo its maintainer should say
> > so.
> 
> In addition to Eli's list of unsupported targets, HP-UX, IRIX, OSF are
> probably de facto unmaintained, at this point.

Do you mean IRIX host or both IRIX host and target?

Implementing IPv6 in gdbserver will make IRIX incompatible even as a target.

I am asking as I have seen for example yours:

commit 1324a0d9b562a38f4ce23c8835e1dacbbe3b51b9
Author: Joel Brobecker <brobecker@gnat.com>
Date:   Tue Nov 23 01:06:08 2010 +0000
    support for mips-irix on-stack trampolines
    [...]


Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [patch] [sim] --disable-sim on ppc* by default (for AIX)  [Re: getaddrinfo available on all GDB hosts?]
  2014-02-13 11:04                                       ` Jan Kratochvil
@ 2014-02-13 11:39                                         ` Pedro Alves
  2014-02-13 11:51                                           ` Joel Brobecker
  2014-02-13 12:08                                           ` [cancel] " Jan Kratochvil
  0 siblings, 2 replies; 49+ messages in thread
From: Pedro Alves @ 2014-02-13 11:39 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Joel Brobecker, Eli Zaretskii, gdb-patches

On 02/13/2014 11:04 AM, Jan Kratochvil wrote:
> On Thu, 13 Feb 2014 11:51:18 +0100, Pedro Alves wrote:
>> On 02/13/2014 10:43 AM, Jan Kratochvil wrote:
>>
>>> bzip2 -dc gdb-7.7.tar.bz2|tar xf -;cd gdb-7.7;./configure;make
>>> 	gcc -g -O2 -I. -I. -I./../../include -I../../bfd -I./../../bfd -I../../gdb -I./../../gdb  -I./../../gdb/config  -I. -I../common -I./../common -o gentmap
>>> gcc: fatal error: no input files
>>> compilation terminated.
>>> make: 1254-004 The error code from the last command is 1.
>>>
>>> (BTW it builds OK on RHEL-5 ppc64.)
>>>
>>> But I have figured out now it builds with --disable-sim .  Maybe to disable
>>> ppc* sim by default?
>>
>> I don't see how that makes sense.  This sounds like a host
>> issue rather than a target issue?
> 
> The mail was about two unrelated problems:
> 
> (1) GDB by default fails to build on some archs of AIX.
>     This could be fixed.  Currently I do not know how but there is some way.
> 
> (2) The ppc sim target is useless.  Therefore it wastes time of people trying
>     to use it.
> 
> By fixing (2) one also fixes (1) as a side effect.  

Only if you assume native build.

Does the sim build on AIX for other targets?  E.g., --target=arm-eabi.

Let's not conflate the issues please.

> (2) The ppc sim target is useless.  Therefore it wastes time of people trying
>     to use it.
...
> But I have figured out now it builds with --disable-sim .  Maybe to disable
> ppc* sim by default?  I have disabled it in Fedora/RHEL in Feb 2008 as already
> that time it could not run any binary.

This is all arguable.   You can't really expect that most of
our sims are able to run full GNU/Linux binaries.
I just tried the ppc one on gcc110 (gdb built w/ -m32) and I
found that it works OK for basic bare-metal debugging, about the
same as most other sims -- as documented in its README, it only
supports static executables.  Often I'll just run a .o
file with a sim.  E.g., on gcc110/ppc64, gdb built w/ -m32:

>./gdb ./gdb.o
Reading symbols from ./gdb.o...done.
(gdb) tar sim
Connected to the simulator.
(gdb) load
(gdb) b main
Breakpoint 1 at 0x1c: file ../../src/gdb/gdb.c, line 29.
(gdb) r
Starting program: /home/palves/gdb/binutils-gdb/build/gdb/gdb.o

Breakpoint 1, main (argc=1, argv=0xfdea0) at ../../src/gdb/gdb.c:29
29        memset (&args, 0, sizeof args);
(gdb) disassemble
Dump of assembler code for function main:
   0x00000000 <+0>:     ori     r15,r27,28275
   0x00000004 <+4>:     xoris   r12,r27,25856
   0x00000008 <+8>:     stw     r0,52(r1)
   0x0000000c <+12>:    stw     r31,44(r1)
   0x00000010 <+16>:    mr      r31,r1
   0x00000014 <+20>:    stw     r3,24(r31)
   0x00000018 <+24>:    stw     r4,28(r31)
=> 0x0000001c <+28>:    addi    r9,r31,8
   0x00000020 <+32>:    mr      r3,r9
   0x00000024 <+36>:    li      r4,0
   0x00000028 <+40>:    li      r5,12
   0x0000002c <+44>:    bl      0x2c <main+44>
   0x00000030 <+48>:    lwz     r9,24(r31)
   0x00000034 <+52>:    stw     r9,8(r31)
   0x00000038 <+56>:    lwz     r9,28(r31)
   0x0000003c <+60>:    stw     r9,12(r31)
   0x00000040 <+64>:    lis     r9,0
   0x00000044 <+68>:    addi    r9,r9,0
   0x00000048 <+72>:    stw     r9,16(r31)
   0x0000004c <+76>:    addi    r9,r31,8
   0x00000050 <+80>:    mr      r3,r9
   0x00000054 <+84>:    bl      0x54 <main+84>
   0x00000058 <+88>:    mr      r9,r3
   0x0000005c <+92>:    mr      r3,r9
   0x00000060 <+96>:    addi    r11,r31,48
   0x00000064 <+100>:   lwz     r0,4(r11)
   0x00000068 <+104>:   mtlr    r0
   0x0000006c <+108>:   lwz     r31,-4(r11)
   0x00000070 <+112>:   mr      r1,r11
   0x00000074 <+116>:   blr
End of assembler dump.
(gdb)


I'm not seeing what is special about the ppc sim/target in
this whole scenario in question.

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [patch] [sim] --disable-sim on ppc* by default (for AIX)  [Re: getaddrinfo available on all GDB hosts?]
  2014-02-13 11:39                                         ` Pedro Alves
@ 2014-02-13 11:51                                           ` Joel Brobecker
  2014-02-13 12:08                                           ` [cancel] " Jan Kratochvil
  1 sibling, 0 replies; 49+ messages in thread
From: Joel Brobecker @ 2014-02-13 11:51 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Jan Kratochvil, Eli Zaretskii, gdb-patches

> > (2) The ppc sim target is useless.  Therefore it wastes time of people trying
> >     to use it.

We use the ppc builtin simulator routinely as well. It's just an issue
of building it on AIX, which apparently doesn't work out of the box.
Not needing it on AIX, AdaCore just configures GDB with --disable-sim
as Jan just figured out.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-13 11:36                           ` Jan Kratochvil
@ 2014-02-13 11:55                             ` Joel Brobecker
  0 siblings, 0 replies; 49+ messages in thread
From: Joel Brobecker @ 2014-02-13 11:55 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Eli Zaretskii, Paul Fertser, gdb-patches

> Do you mean IRIX host or both IRIX host and target?

I mean both.

> Implementing IPv6 in gdbserver will make IRIX incompatible even as a target.
> 
> I am asking as I have seen for example yours:
> 
> commit 1324a0d9b562a38f4ce23c8835e1dacbbe3b51b9
> Author: Joel Brobecker <brobecker@gnat.com>
> Date:   Tue Nov 23 01:06:08 2010 +0000
>     support for mips-irix on-stack trampolines
>     [...]

Back then, I had access to a machine, and some interest in maintaining
this port. It's been a somewhat fun port, especially in the early days
of DWARF, and also playing with mips, but unfortunately, I don't have
access to an IRIX machine anymore, and even if I did, I'm afraid I might
not have much time to play with it except maybe for really small tasks.

The same goes for other platforms, such as HP/UX. No more hardware,
and very little time. And since I was one of the very few and
occasional maintainers of those ports, I concluded that the ports
were probably, de facto, orphaned.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [patch] [sim] --disable-sim on ppc* by default (for AIX)  [Re: getaddrinfo available on all GDB hosts?]
  2014-02-13 10:44                                   ` [patch] [sim] --disable-sim on ppc* by default (for AIX) [Re: getaddrinfo available on all GDB hosts?] Jan Kratochvil
  2014-02-13 10:51                                     ` Pedro Alves
@ 2014-02-13 11:59                                     ` Joel Brobecker
  1 sibling, 0 replies; 49+ messages in thread
From: Joel Brobecker @ 2014-02-13 11:59 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Eli Zaretskii, gdb-patches

> gcc111.fsffrance.org:
> 
> bzip2 -dc gdb-7.7.tar.bz2|tar xf -;cd gdb-7.7;./configure;make
> 	gcc -g -O2 -I. -I. -I./../../include -I../../bfd -I./../../bfd -I../../gdb -I./../../gdb  -I./../../gdb/config  -I. -I../common -I./../common -o gentmap
> gcc: fatal error: no input files
> compilation terminated.
> make: 1254-004 The error code from the last command is 1.

A wild guess is that this looks like a Makefile issue - perhaps
the PPC sim makefiles require GNU Make to build. A bug according
to our standards, but I'm not sure anyone has the interest in
actually chasing it.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* [cancel] [patch] [sim] --disable-sim on ppc* by default (for AIX)  [Re: getaddrinfo available on all GDB hosts?]
  2014-02-13 11:39                                         ` Pedro Alves
  2014-02-13 11:51                                           ` Joel Brobecker
@ 2014-02-13 12:08                                           ` Jan Kratochvil
  1 sibling, 0 replies; 49+ messages in thread
From: Jan Kratochvil @ 2014-02-13 12:08 UTC (permalink / raw)
  To: Pedro Alves; +Cc: Joel Brobecker, Eli Zaretskii, gdb-patches

On Thu, 13 Feb 2014 12:39:45 +0100, Pedro Alves wrote:
> Only if you assume native build.
> 
> Does the sim build on AIX for other targets?  E.g., --target=arm-eabi.

Yes, it works.  This confirms that default disable of ppc sim would fix
(=workaround) the AIX build.


> This is all arguable.   You can't really expect that most of
> our sims are able to run full GNU/Linux binaries.
> I just tried the ppc one on gcc110 (gdb built w/ -m32) and I
> found that it works OK for basic bare-metal debugging, about the
> same as most other sims -- as documented in its README, it only
> supports static executables.  Often I'll just run a .o
> file with a sim.  E.g., on gcc110/ppc64, gdb built w/ -m32:

If one has to use .o file I really still find it useless.
The patch does not remove the simulator - it is just not built by default.
As I believe 99% of './configure; make' users do not want the simulator.
And building any more code is moreover slow on ppc.

Joel also claims they use the ppc simulator so I no longer argue about it.
Therefore considering the patch as cancelled.


Regards,
Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: getaddrinfo available on all GDB hosts?  [Re: [PATCH v2] Add IPv6 support for remote TCP connections]
  2014-02-12 12:10                               ` Jan Kratochvil
  2014-02-13  7:37                                 ` Joel Brobecker
@ 2014-02-13 14:26                                 ` Tom Tromey
  1 sibling, 0 replies; 49+ messages in thread
From: Tom Tromey @ 2014-02-13 14:26 UTC (permalink / raw)
  To: Jan Kratochvil
  Cc: Joel Brobecker, Eli Zaretskii, Paul Fertser, gdb-patches, ktietz

Jan> I failed to build (make failed to find how to build file "-lz") GDB
Jan> even on AIX - on gcc111.fsffrance.org - which should be a supported
Jan> OS (by you coincidentally) so I have doubts GDB is buildable on
Jan> OSes no one even tests.

A while ago, I built there after setting PATH:

PATH=/opt/cfarm/bison-latest/bin:/opt/cfarm/make-latest/bin:/opt/cfarm/m4-latest/bin:/home/tromey/install/bin/:$PATH

Though I don't recall whether I used any special configure options.

Tom


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2014-02-09 17:08           ` Paul Fertser
  2014-02-09 17:29             ` Jan Kratochvil
@ 2015-03-22 16:39             ` Jan Kratochvil
  2015-03-22 16:54               ` Eli Zaretskii
  2015-03-23 19:03               ` Corinna Vinschen
  1 sibling, 2 replies; 49+ messages in thread
From: Jan Kratochvil @ 2015-03-22 16:39 UTC (permalink / raw)
  To: gdb-patches; +Cc: Eli Zaretskii, ktietz, Joel Brobecker, Paul Fertser

On Sun, 09 Feb 2014 18:08:21 +0100, Paul Fertser wrote:

https://www.gnu.org/software/gnulib/manual/html_node/getaddrinfo.html

> But gnulib docs say "This function is missing on some platforms: HP-UX
> 11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9,
> Interix 3.5, BeOS", is it really ok this way?
+
On Mon, 10 Feb 2014 18:45:15 +0100, Eli Zaretskii wrote:
> Cygwin 1.5, MSVC, and Interix aren't supported, AFAIK, and MinGW is
> not relevant.
+
On Sun, 09 Feb 2014 17:47:48 +0100, Jan Kratochvil wrote:
> The patch with <ws2tcpip.h> really builds OK on Fedora mingw64.

HP-UX 11.11: Removed by Jan: 61a12cfa7b25746914493cc0d94e5053a8492aa5
IRIX 6.5: Removed by Pedro: 3831839c089cf3b65ad6b2efbc608e5a24a40379
OSF/1 5.1: Removed by Pedro: 32a8097ba5dd6ddb71c0fb2fccbac262c371846a
Solaris 7: ???
Cygwin 1.5.x: Unsupported by GDB according to Eli.
mingw: mingw-w64 is compatible as tested by Jan.
MSVC 9: Unsupported by GDB according to Eli.
Interix 3.5: Unsupported by GDB according to Eli.
BeOS: Jan thinks the OS is unsupported by GDB.

Does anyone has Solaris 7 host available?  GDB should complain there during
configure but I guess from configure.host it will not.  Although do we care?

Are there any files that could be removed if Solaris 7 host support gets
removed?  I do not see any.

Otherwise the compilation of GDB will start failing there on getaddrinfo().
Do we care?


Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-22 16:39             ` [PATCH] Add IPv6 support for " Jan Kratochvil
@ 2015-03-22 16:54               ` Eli Zaretskii
  2015-03-22 17:09                 ` Jan Kratochvil
  2015-03-23 19:03               ` Corinna Vinschen
  1 sibling, 1 reply; 49+ messages in thread
From: Eli Zaretskii @ 2015-03-22 16:54 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: gdb-patches, ktietz, brobecker, fercerpav

> Date: Sun, 22 Mar 2015 17:39:22 +0100
> From: Jan Kratochvil <jan.kratochvil@redhat.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, ktietz@redhat.com,
>         Joel Brobecker <brobecker@adacore.com>,
>         Paul Fertser <fercerpav@gmail.com>
> 
> On Sun, 09 Feb 2014 18:08:21 +0100, Paul Fertser wrote:
> 
> https://www.gnu.org/software/gnulib/manual/html_node/getaddrinfo.html
> 
> > But gnulib docs say "This function is missing on some platforms: HP-UX
> > 11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9,
> > Interix 3.5, BeOS", is it really ok this way?
> +
> On Mon, 10 Feb 2014 18:45:15 +0100, Eli Zaretskii wrote:
> > Cygwin 1.5, MSVC, and Interix aren't supported, AFAIK, and MinGW is
> > not relevant.
> +
> On Sun, 09 Feb 2014 17:47:48 +0100, Jan Kratochvil wrote:
> > The patch with <ws2tcpip.h> really builds OK on Fedora mingw64.
> 
> HP-UX 11.11: Removed by Jan: 61a12cfa7b25746914493cc0d94e5053a8492aa5
> IRIX 6.5: Removed by Pedro: 3831839c089cf3b65ad6b2efbc608e5a24a40379
> OSF/1 5.1: Removed by Pedro: 32a8097ba5dd6ddb71c0fb2fccbac262c371846a
> Solaris 7: ???
> Cygwin 1.5.x: Unsupported by GDB according to Eli.
> mingw: mingw-w64 is compatible as tested by Jan.
> MSVC 9: Unsupported by GDB according to Eli.
> Interix 3.5: Unsupported by GDB according to Eli.
> BeOS: Jan thinks the OS is unsupported by GDB.

Not sure what this is about, but just FYI: getaddrinfo is available
only since Windows XP, so earlier versions will not have it.  MinGW64
doesn't care about versions older than XP, so it's a small wonder it
compiles without a hitch.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-22 16:54               ` Eli Zaretskii
@ 2015-03-22 17:09                 ` Jan Kratochvil
  2015-03-22 17:48                   ` Eli Zaretskii
  0 siblings, 1 reply; 49+ messages in thread
From: Jan Kratochvil @ 2015-03-22 17:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: gdb-patches, ktietz, brobecker, fercerpav

On Sun, 22 Mar 2015 17:53:52 +0100, Eli Zaretskii wrote:
> Not sure what this is about, but just FYI: getaddrinfo is available
> only since Windows XP, so earlier versions will not have it.  MinGW64
> doesn't care about versions older than XP, so it's a small wonder it
> compiles without a hitch.

Even MS-Windows XP is EOLed already, isn't it?  What older MS-Windows release
should be supported?  I guess MS-Windows 2000?  Do you mean it seriously?

The patch of my attempt for gnulib import of getaddrinfo had 1.5MB and it was
not easy due to conflict with all the existing MS-Windows #ifs in GDB code, is
it really worth those EOLed OSes?

I am really asking, the gnulib import does not seem right to me.  This is also
why the IPv6 support has been waiting for removal of the old OSes (like HP-UX).


Jan


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-22 17:09                 ` Jan Kratochvil
@ 2015-03-22 17:48                   ` Eli Zaretskii
  2015-03-23 18:02                     ` Pedro Alves
  0 siblings, 1 reply; 49+ messages in thread
From: Eli Zaretskii @ 2015-03-22 17:48 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: gdb-patches, ktietz, brobecker, fercerpav

> Date: Sun, 22 Mar 2015 18:09:32 +0100
> From: Jan Kratochvil <jan.kratochvil@redhat.com>
> Cc: gdb-patches@sourceware.org, ktietz@redhat.com, brobecker@adacore.com,
>         fercerpav@gmail.com
> 
> On Sun, 22 Mar 2015 17:53:52 +0100, Eli Zaretskii wrote:
> > Not sure what this is about, but just FYI: getaddrinfo is available
> > only since Windows XP, so earlier versions will not have it.  MinGW64
> > doesn't care about versions older than XP, so it's a small wonder it
> > compiles without a hitch.
> 
> Even MS-Windows XP is EOLed already, isn't it?

Don't EOL me ;-) One of my machines (the one I'm typing this on,
actually) still happily runs XP, and probably will for some time to
come.

> What older MS-Windows release
> should be supported?  I guess MS-Windows 2000?  Do you mean it seriously?

It's up to us to decide.  Emacs, for example, still supports Windows
98, per an explicit request from RMS, based on the large number of
users of those systems in the 3rd World.

> The patch of my attempt for gnulib import of getaddrinfo had 1.5MB and it was
> not easy due to conflict with all the existing MS-Windows #ifs in GDB code, is
> it really worth those EOLed OSes?
> 
> I am really asking, the gnulib import does not seem right to me.  This is also
> why the IPv6 support has been waiting for removal of the old OSes (like HP-UX).

Why can't we test at run time if getaddrinfo is available, and use it
if it is, else use the old code?  This will work on Windows, and is
much simpler than the gnulib rigmarole.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-22 17:48                   ` Eli Zaretskii
@ 2015-03-23 18:02                     ` Pedro Alves
  2015-03-23 18:42                       ` Eli Zaretskii
  0 siblings, 1 reply; 49+ messages in thread
From: Pedro Alves @ 2015-03-23 18:02 UTC (permalink / raw)
  To: Eli Zaretskii, Jan Kratochvil; +Cc: gdb-patches, ktietz, brobecker, fercerpav

On 03/22/2015 05:46 PM, Eli Zaretskii wrote:
>> Date: Sun, 22 Mar 2015 18:09:32 +0100
>> From: Jan Kratochvil <jan.kratochvil@redhat.com>
>> Cc: gdb-patches@sourceware.org, ktietz@redhat.com, brobecker@adacore.com,
>>         fercerpav@gmail.com
>>
>> On Sun, 22 Mar 2015 17:53:52 +0100, Eli Zaretskii wrote:
>>> Not sure what this is about, but just FYI: getaddrinfo is available
>>> only since Windows XP, so earlier versions will not have it.  MinGW64
>>> doesn't care about versions older than XP, so it's a small wonder it
>>> compiles without a hitch.
>>
>> Even MS-Windows XP is EOLed already, isn't it?
> 
> Don't EOL me ;-) One of my machines (the one I'm typing this on,
> actually) still happily runs XP, and probably will for some time to
> come.
> 
>> What older MS-Windows release
>> should be supported?  I guess MS-Windows 2000?  Do you mean it seriously?
> 
> It's up to us to decide.  Emacs, for example, still supports Windows
> 98, per an explicit request from RMS, based on the large number of
> users of those systems in the 3rd World.

Hmm, I couldn't find any statistic/report online that confirms this.
All I found puts worldwide Windows 9x usage <= 0.01%.

I don't think we should keep trying to remain compatible with
such old versions.  I'd actually be very surprised if indeed
we still are, given nobody's been really testing it.  I think
that people that still need to _develop_ for Windows 9x can
simply use an older GDB.

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-23 18:02                     ` Pedro Alves
@ 2015-03-23 18:42                       ` Eli Zaretskii
  2015-03-23 19:12                         ` Joel Brobecker
  2015-03-23 19:19                         ` Pedro Alves
  0 siblings, 2 replies; 49+ messages in thread
From: Eli Zaretskii @ 2015-03-23 18:42 UTC (permalink / raw)
  To: Pedro Alves; +Cc: jan.kratochvil, gdb-patches, ktietz, brobecker, fercerpav

> Date: Mon, 23 Mar 2015 18:02:39 +0000
> From: Pedro Alves <palves@redhat.com>
> CC: gdb-patches@sourceware.org, ktietz@redhat.com, brobecker@adacore.com,
>         fercerpav@gmail.com
> 
> >> What older MS-Windows release
> >> should be supported?  I guess MS-Windows 2000?  Do you mean it seriously?
> > 
> > It's up to us to decide.  Emacs, for example, still supports Windows
> > 98, per an explicit request from RMS, based on the large number of
> > users of those systems in the 3rd World.
> 
> Hmm, I couldn't find any statistic/report online that confirms this.
> All I found puts worldwide Windows 9x usage <= 0.01%.

Yes, and now multiply that by the size of the population in, say,
India, and see what you get.

> I don't think we should keep trying to remain compatible with
> such old versions.

As I said, it's up to us.

> I'd actually be very surprised if indeed we still are, given
> nobody's been really testing it.

It could very well be broken on these platforms, yes.

> I think that people that still need to _develop_ for Windows 9x can
> simply use an older GDB.

What about developing on latest versions of Windows, but debugging on
Windows 9X?  There could be 9X-specific problems that might require
that.  (I had such an experience with Emacs about 3 years ago, and the
person who helped me debug the problem was using GDB 7.2 on a Windows
98 box.)


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-22 16:39             ` [PATCH] Add IPv6 support for " Jan Kratochvil
  2015-03-22 16:54               ` Eli Zaretskii
@ 2015-03-23 19:03               ` Corinna Vinschen
  2015-03-23 19:12                 ` Pedro Alves
  1 sibling, 1 reply; 49+ messages in thread
From: Corinna Vinschen @ 2015-03-23 19:03 UTC (permalink / raw)
  To: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 1171 bytes --]

On Mar 22 17:39, Jan Kratochvil wrote:
> On Sun, 09 Feb 2014 18:08:21 +0100, Paul Fertser wrote:
> 
> https://www.gnu.org/software/gnulib/manual/html_node/getaddrinfo.html
> 
> > But gnulib docs say "This function is missing on some platforms: HP-UX
> > 11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9,
> > Interix 3.5, BeOS", is it really ok this way?
> +
> On Mon, 10 Feb 2014 18:45:15 +0100, Eli Zaretskii wrote:
> > Cygwin 1.5, MSVC, and Interix aren't supported, AFAIK, and MinGW is
> > not relevant.
> +
> On Sun, 09 Feb 2014 17:47:48 +0100, Jan Kratochvil wrote:
> > The patch with <ws2tcpip.h> really builds OK on Fedora mingw64.
> 
> HP-UX 11.11: Removed by Jan: 61a12cfa7b25746914493cc0d94e5053a8492aa5
> IRIX 6.5: Removed by Pedro: 3831839c089cf3b65ad6b2efbc608e5a24a40379
> OSF/1 5.1: Removed by Pedro: 32a8097ba5dd6ddb71c0fb2fccbac262c371846a
> Solaris 7: ???
> Cygwin 1.5.x: Unsupported by GDB according to Eli.

Cygwin 1.5.x is entirely unsupported these days, it's an old, cold,
stinking fish.

Cygwin 1.7 supported getaddrinfo from the start.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-23 19:03               ` Corinna Vinschen
@ 2015-03-23 19:12                 ` Pedro Alves
  0 siblings, 0 replies; 49+ messages in thread
From: Pedro Alves @ 2015-03-23 19:12 UTC (permalink / raw)
  To: gdb-patches

On 03/23/2015 07:03 PM, Corinna Vinschen wrote:
> On Mar 22 17:39, Jan Kratochvil wrote:
>> On Sun, 09 Feb 2014 18:08:21 +0100, Paul Fertser wrote:
>>
>> https://www.gnu.org/software/gnulib/manual/html_node/getaddrinfo.html
>>
>>> But gnulib docs say "This function is missing on some platforms: HP-UX
>>> 11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9,
>>> Interix 3.5, BeOS", is it really ok this way?
>> +
>> On Mon, 10 Feb 2014 18:45:15 +0100, Eli Zaretskii wrote:
>>> Cygwin 1.5, MSVC, and Interix aren't supported, AFAIK, and MinGW is
>>> not relevant.
>> +
>> On Sun, 09 Feb 2014 17:47:48 +0100, Jan Kratochvil wrote:
>>> The patch with <ws2tcpip.h> really builds OK on Fedora mingw64.
>>
>> HP-UX 11.11: Removed by Jan: 61a12cfa7b25746914493cc0d94e5053a8492aa5
>> IRIX 6.5: Removed by Pedro: 3831839c089cf3b65ad6b2efbc608e5a24a40379
>> OSF/1 5.1: Removed by Pedro: 32a8097ba5dd6ddb71c0fb2fccbac262c371846a
>> Solaris 7: ???
>> Cygwin 1.5.x: Unsupported by GDB according to Eli.
> 
> Cygwin 1.5.x is entirely unsupported these days, it's an old, cold,
> stinking fish.
> 
> Cygwin 1.7 supported getaddrinfo from the start.

I've updated https://sourceware.org/gdb/wiki/Systems with this info,
and removed HP-UX from the list too.

I'm under the impression that we had already dropped support
for Solaris 7 a long time ago.  Or maybe it was just that Joel
announced that he could no longer test it, or something like that.
Joel?

At least GCC dropped support for older Solaris too.
https://gcc.gnu.org/install/specific.html says:

 "Support for Solaris 9 has been removed in GCC 4.10. Support for Solaris 8 has been
 removed in GCC 4.8. Support for Solaris 7 has been removed in GCC 4.6."

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-23 18:42                       ` Eli Zaretskii
@ 2015-03-23 19:12                         ` Joel Brobecker
  2015-03-23 19:18                           ` Eli Zaretskii
  2015-03-23 19:19                         ` Pedro Alves
  1 sibling, 1 reply; 49+ messages in thread
From: Joel Brobecker @ 2015-03-23 19:12 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Pedro Alves, jan.kratochvil, gdb-patches, ktietz, fercerpav

> What about developing on latest versions of Windows, but debugging on
> Windows 9X?  There could be 9X-specific problems that might require
> that.  (I had such an experience with Emacs about 3 years ago, and the
> person who helped me debug the problem was using GDB 7.2 on a Windows
> 98 box.)

The problem is whether we have the means to support those older versions.
I can help with XP, for instance, but not with 98. You also need to have
people who are publicly committed to helping with the port's maintenance,
as it's unfair IMO to ask anyone to worry about a platform that only
affects 0.01%. Thinking from our perspective, we get more bang for our
buck if we dedicate what resources we have to platforms that have more
people using them.

-- 
Joel


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-23 19:12                         ` Joel Brobecker
@ 2015-03-23 19:18                           ` Eli Zaretskii
  2015-04-13 15:12                             ` Pedro Alves
  0 siblings, 1 reply; 49+ messages in thread
From: Eli Zaretskii @ 2015-03-23 19:18 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: palves, jan.kratochvil, gdb-patches, ktietz, fercerpav

> Date: Mon, 23 Mar 2015 12:12:32 -0700
> From: Joel Brobecker <brobecker@adacore.com>
> Cc: Pedro Alves <palves@redhat.com>, jan.kratochvil@redhat.com,	gdb-patches@sourceware.org, ktietz@redhat.com, fercerpav@gmail.com
> 
> > What about developing on latest versions of Windows, but debugging on
> > Windows 9X?  There could be 9X-specific problems that might require
> > that.  (I had such an experience with Emacs about 3 years ago, and the
> > person who helped me debug the problem was using GDB 7.2 on a Windows
> > 98 box.)
> 
> The problem is whether we have the means to support those older versions.
> I can help with XP, for instance, but not with 98. You also need to have
> people who are publicly committed to helping with the port's maintenance,
> as it's unfair IMO to ask anyone to worry about a platform that only
> affects 0.01%. Thinking from our perspective, we get more bang for our
> buck if we dedicate what resources we have to platforms that have more
> people using them.

Yes, this is all well-known.  However, I thought the issue was a bit
different: not whether we want to spend efforts on active support of
these platforms, but rather whether we should try to avoid
deliberately breaking them by introducing features that are not
available there, and leaving no fallbacks for when those new features
are unavailable.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-23 18:42                       ` Eli Zaretskii
  2015-03-23 19:12                         ` Joel Brobecker
@ 2015-03-23 19:19                         ` Pedro Alves
  1 sibling, 0 replies; 49+ messages in thread
From: Pedro Alves @ 2015-03-23 19:19 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: jan.kratochvil, gdb-patches, ktietz, brobecker, fercerpav

On 03/23/2015 06:42 PM, Eli Zaretskii wrote:
>> Date: Mon, 23 Mar 2015 18:02:39 +0000
>> From: Pedro Alves <palves@redhat.com>
>> CC: gdb-patches@sourceware.org, ktietz@redhat.com, brobecker@adacore.com,
>>         fercerpav@gmail.com
>>
>>>> What older MS-Windows release
>>>> should be supported?  I guess MS-Windows 2000?  Do you mean it seriously?
>>>
>>> It's up to us to decide.  Emacs, for example, still supports Windows
>>> 98, per an explicit request from RMS, based on the large number of
>>> users of those systems in the 3rd World.
>>
>> Hmm, I couldn't find any statistic/report online that confirms this.
>> All I found puts worldwide Windows 9x usage <= 0.01%.
> 
> Yes, and now multiply that by the size of the population in, say,
> India, and see what you get.

The stats I saw showed usage at 0.01% resolution; it could well
have been 0.0000000000000000001% rounded up for all we know.

And factor in the amount of people that use Windows 9x _and_
develop for Windows 9x _and_ of those, those who develop for
Windows 9x using GNU tools.  We could well be talking about
0.01% x 0.00000001% x 0.00000001% and end up with a universe
of 1 person.  The point is we just don't know with the data
we have.

Note that by that reasoning, according to:

  http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0

we should also be supporting Windows 3.1.

Without more reliable usage info, this just feels like guessing.

But all in all, I think what matters most is whether we have
active maintainers working on making sure the code still builds
and works on such platforms, taking care of user reported bugs,
etc.  If no one actively cares (and I mean a continuous effort),
then the burden of keeping support for very old versions just
slows us down.  We already have enough bugs and missing gdb features
on mainstream Windows versions that nobody is really paying attention
to, let alone ancient Windows versions.  Don't get me
wrong -- I came into GDB from the Windows side, and I'd be
glad if the Windows port was improved.

> 
>> I don't think we should keep trying to remain compatible with
>> such old versions.
> 
> As I said, it's up to us.
> 
>> I'd actually be very surprised if indeed we still are, given
>> nobody's been really testing it.
> 
> It could very well be broken on these platforms, yes.

/me *nods*

> 
>> I think that people that still need to _develop_ for Windows 9x can
>> simply use an older GDB.
> 
> What about developing on latest versions of Windows, but debugging on
> Windows 9X? 
> There could be 9X-specific problems that might require
> that.  (I had such an experience with Emacs about 3 years ago, and the
> person who helped me debug the problem was using GDB 7.2 on a Windows
> 98 box.)

I wouldn't find it the end of the world to use GDB 7.2 then.  It should
still work just as well today as it did 3 years ago.

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-03-23 19:18                           ` Eli Zaretskii
@ 2015-04-13 15:12                             ` Pedro Alves
  2015-04-13 15:27                               ` Eli Zaretskii
  0 siblings, 1 reply; 49+ messages in thread
From: Pedro Alves @ 2015-04-13 15:12 UTC (permalink / raw)
  To: Eli Zaretskii, Joel Brobecker
  Cc: jan.kratochvil, gdb-patches, ktietz, fercerpav

Hi guys,

Revising this, trying to move us forward.

On 03/23/2015 07:17 PM, Eli Zaretskii wrote:

> Yes, this is all well-known.  However, I thought the issue was a bit
> different: not whether we want to spend efforts on active support of
> these platforms, but rather whether we should try to avoid
> deliberately breaking them by introducing features that are not
> available there, and leaving no fallbacks for when those new features
> are unavailable.

I agree you have a point here.  It's hard to write a rule about this,
because I think it'll depend on the importance of the feature, and
the how much maintenance would keeping the fallback code really
impose.  In this case, it should be possible to add IPv6
support while leaving support for IPv4-only in place without much
trouble.  We can continue discussing which versions of Windows
we should still support in parallel, but we don't _really_ need to
be blocked by that.  So unless I managed to convince
you (this time! :-)) that it's OK to blindly (*) drop support for
ancient Windows versions, we'll revise the patch to keep the support for
IPv4-only code.

(*) - I do think though that if someone actually tries running GDB
on such older versions, and finds support has been broken for a
few releases, we should declare such versions unsupported, instead of
fixing things until they work, because it clearly means that nobody
has been paying attention already for years.

What do you think?

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-04-13 15:12                             ` Pedro Alves
@ 2015-04-13 15:27                               ` Eli Zaretskii
  2015-04-13 16:10                                 ` Pedro Alves
  0 siblings, 1 reply; 49+ messages in thread
From: Eli Zaretskii @ 2015-04-13 15:27 UTC (permalink / raw)
  To: Pedro Alves; +Cc: brobecker, jan.kratochvil, gdb-patches, ktietz, fercerpav

> Date: Mon, 13 Apr 2015 16:12:27 +0100
> From: Pedro Alves <palves@redhat.com>
> CC: jan.kratochvil@redhat.com, gdb-patches@sourceware.org, ktietz@redhat.com,
>         fercerpav@gmail.com
> 
> > Yes, this is all well-known.  However, I thought the issue was a bit
> > different: not whether we want to spend efforts on active support of
> > these platforms, but rather whether we should try to avoid
> > deliberately breaking them by introducing features that are not
> > available there, and leaving no fallbacks for when those new features
> > are unavailable.
> 
> I agree you have a point here.  It's hard to write a rule about this,
> because I think it'll depend on the importance of the feature, and
> the how much maintenance would keeping the fallback code really
> impose.

Yes, I agree with the principle.

> In this case, it should be possible to add IPv6
> support while leaving support for IPv4-only in place without much
> trouble.  We can continue discussing which versions of Windows
> we should still support in parallel, but we don't _really_ need to
> be blocked by that.  So unless I managed to convince
> you (this time! :-)) that it's OK to blindly (*) drop support for
> ancient Windows versions, we'll revise the patch to keep the support for
> IPv4-only code.

That'd be fine with me, of course.

> (*) - I do think though that if someone actually tries running GDB
> on such older versions, and finds support has been broken for a
> few releases, we should declare such versions unsupported, instead of
> fixing things until they work, because it clearly means that nobody
> has been paying attention already for years.

Unless that person, or someone else, also offers to fix whatever
problems they found, or at least work with us on finding the bug(s), I
think I agree.


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH] Add IPv6 support for remote TCP connections
  2015-04-13 15:27                               ` Eli Zaretskii
@ 2015-04-13 16:10                                 ` Pedro Alves
  0 siblings, 0 replies; 49+ messages in thread
From: Pedro Alves @ 2015-04-13 16:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: brobecker, jan.kratochvil, gdb-patches, ktietz, fercerpav

On 04/13/2015 04:27 PM, Eli Zaretskii wrote:
>> > (*) - I do think though that if someone actually tries running GDB
>> > on such older versions, and finds support has been broken for a
>> > few releases, we should declare such versions unsupported, instead of
>> > fixing things until they work, because it clearly means that nobody
>> > has been paying attention already for years.
> Unless that person, or someone else, also offers to fix whatever
> problems they found, or at least work with us on finding the bug(s), I
> think I agree.

Yeah, it goes back to the original point that what matters most is
whether there's people actively working on making sure the code still
builds and works on such platforms, taking care of user reported bugs,
etc., not the age of the platform.

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2015-04-13 16:10 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-08 16:54 [PATCH] Add IPv6 support for remote TCP connections Paul Fertser
2014-02-09  8:31 ` Jan Kratochvil
2014-02-09  9:53   ` Paul Fertser
2014-02-09 13:05     ` Jan Kratochvil
2014-02-09 16:35       ` Eli Zaretskii
2014-02-09 16:47         ` Jan Kratochvil
2014-02-09 17:08           ` Paul Fertser
2014-02-09 17:29             ` Jan Kratochvil
     [not found]               ` <1392033768-16793-1-git-send-email-fercerpav@gmail.com>
2014-02-10 16:53                 ` [PATCH v2] " Eli Zaretskii
2014-02-10 17:02                   ` Paul Fertser
2014-02-10 17:45                     ` Eli Zaretskii
2014-02-10 19:58                       ` getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Jan Kratochvil
2014-02-11  3:42                         ` Joel Brobecker
2014-02-11 20:05                           ` Jan Kratochvil
2014-02-11 20:33                             ` Stan Shebs
2014-02-12  3:04                               ` Joel Brobecker
2014-02-12  3:00                             ` Joel Brobecker
2014-02-12 12:10                               ` Jan Kratochvil
2014-02-13  7:37                                 ` Joel Brobecker
2014-02-13 10:44                                   ` [patch] [sim] --disable-sim on ppc* by default (for AIX) [Re: getaddrinfo available on all GDB hosts?] Jan Kratochvil
2014-02-13 10:51                                     ` Pedro Alves
2014-02-13 11:04                                       ` Jan Kratochvil
2014-02-13 11:39                                         ` Pedro Alves
2014-02-13 11:51                                           ` Joel Brobecker
2014-02-13 12:08                                           ` [cancel] " Jan Kratochvil
2014-02-13 11:59                                     ` Joel Brobecker
2014-02-13 14:26                                 ` getaddrinfo available on all GDB hosts? [Re: [PATCH v2] Add IPv6 support for remote TCP connections] Tom Tromey
2014-02-13 11:36                           ` Jan Kratochvil
2014-02-13 11:55                             ` Joel Brobecker
2014-02-11 19:48                         ` [PATCH v3] Add IPv6 support for outgoing remote TCP connections Paul Fertser
2014-02-12 16:53                           ` Jan Kratochvil
2014-02-12 17:32                             ` Paul Fertser
2014-02-12 20:10                               ` Jan Kratochvil
2015-03-22 16:39             ` [PATCH] Add IPv6 support for " Jan Kratochvil
2015-03-22 16:54               ` Eli Zaretskii
2015-03-22 17:09                 ` Jan Kratochvil
2015-03-22 17:48                   ` Eli Zaretskii
2015-03-23 18:02                     ` Pedro Alves
2015-03-23 18:42                       ` Eli Zaretskii
2015-03-23 19:12                         ` Joel Brobecker
2015-03-23 19:18                           ` Eli Zaretskii
2015-04-13 15:12                             ` Pedro Alves
2015-04-13 15:27                               ` Eli Zaretskii
2015-04-13 16:10                                 ` Pedro Alves
2015-03-23 19:19                         ` Pedro Alves
2015-03-23 19:03               ` Corinna Vinschen
2015-03-23 19:12                 ` Pedro Alves
2014-02-09 16:29     ` Eli Zaretskii
2014-02-09 16:25   ` Eli Zaretskii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox