Patch to enable a fully working gdb for GNU/Hurd

Svante Signell svante.signell@telia.com
Tue Jul 5 14:53:00 GMT 2011


On Mon, 2011-07-04 at 21:17 +0200, Svante Signell wrote:
> On Mon, 2011-07-04 at 20:18 +0200, Thomas Schwinge wrote:
> > Hallo!
...
> > I think that update_thread_list (which already is exported) should rather
> > be invoked instead of additionally exporting prune_threads.
> > 
> > But -- I can no longer reproduce the original problem with GDB HEAD.  Can
> > you?
> 
> I haven't compiled gdb for some time now. I can take a look, how to get
> the GDB HEAD? The prune_threads enabled gdb to work properly, and then
> Samuel applied an earlier version of the patch on debian-ports.
> 
> Since then the new Debian gdb maintainer wanted to get this patch
> applied upstream, so I did as was requested. Don't know if it is the
> correct approach or not. I can try to use update_thread_list instead,
> once I have the GDB HEAD files.

I have now built gdb HEAD and found that the patch is no longer needed.
Additionally adding update_thread_list in gnu_nat.c works for gdb-7.2,
will propose the following patch to the Debian bug report #579834 in
case there will be more releases of the 7.2-series until 7.4 is
released.

--- gdb/gnu-nat.c.orig  2011-07-05 15:41:54.000000000 +0200
+++ gdb/gnu-nat.c       2011-07-05 14:27:31.000000000 +0200
@@ -1578,6 +1578,7 @@
          if (--inf->pending_execs == 0)
            /* We're done!  */
            {
+             update_thread_list();
 #if 0                          /* do we need this? */
              prune_threads (1);        /* Get rid of the old shell
threads */
              renumber_threads (0);     /* Give our threads reasonable
names. */

A few observations when building gdb HEAD: GNU gdb (GDB)
7.3.50.20110704-cvs though:

1) I had to uncomment -Werror when compiling gdb/msg_U.c with Debian
4.6.1-1+hurd.1 due to the -Wstrict-aliasing flag set by -Wall, see
below:

msg_U.c: In function 'msg_del_auth':
msg_U.c:505:3: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c:520:3: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_get_init_ports':
msg_U.c:957:6: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_set_init_ports':
msg_U.c:1050:3: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_get_init_ints':
msg_U.c:1481:6: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_set_init_ints':
msg_U.c:1573:3: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_get_dtable':
msg_U.c:1739:6: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_set_dtable':
msg_U.c:1832:3: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_get_environment':
msg_U.c:2253:6: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_set_environment':
msg_U.c:2345:3: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_get_env_variable':
msg_U.c:2511:6: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c: In function 'msg_describe_ports':
msg_U.c:3018:3: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
msg_U.c:3083:6: error: dereferencing type-punned pointer will break
strict-aliasing rules [-Werror=strict-aliasing]
cc1: all warnings being treated as errors

2) When debugging an executable gdb does not find the debugging symbols
for libraries. For example with libc0.3-dbg installed, the symbols are
found with 7.2 but not with 7.3.50 when running the built gdb directly
on an executable having debugging symbols (they are found).




More information about the Gdb-patches mailing list