This is the mail archive of the
mailing list for the GDB project.
Re: [PATCH] Fix building gdb-7.0 on x86_64-*-freebsd
On Mon, Oct 19, 2009 at 09:53:07PM +0200, Joel Brobecker wrote:
> Hi Sergio,
> > Thank you for this patch. I believe you could add a comment explaining what
> > this number means (just like you did above). What do you think?
> > Just my two cents, as usual :-).
> I just applied the following patch (head only)
> 2009-10-19 Joel Brobecker <firstname.lastname@example.org>
> * amd64fbsd-nat.c (amd64fbsd_supply_pcb): Add comment.
> Writing the comment made me think that we may have chosen the wrong
> version number, depending on the angle we look at things from: If we
> want to always be able to build, then we should have chosen version
> 74, since there are a few days where version 74 is missing the field
> and yet the GDB code still tries to access it for that versio number.
> However, if we're trying to have our code always use these fields
> whenver possible, then 75 is the right choice. Although we'll fail
> to build for any sources that's in between the moment the fields were
> removed and the moment the version was bumped to 75 (a time period
> of about a few days), we'll be able use these fields for the rest
> of version 74 of the sources.
> Based on the number of days this window is open, I would say that this
> situation is highly unlikely, and so we don't really need to worry about
You may be correct that a different version should have been used.
OTOH, gdb-6.8 was released on 2008-02-29 and the problematic code
is present in 6.8. I haven't seen anyone complain on the FreeBSD
mailing lists that they can't build 6.8. In looking at FreeBSD's
Port Collection, I find /usr/ports/devel/gdb6. This still uses the
gdb 6.6 tarball. In looking at the port, I find
troutmask:sgk cd /usr/ports/devel/gdb6
troutmask:sgk more files/patch-gdb-amd64fbsd-nat.c
--- gdb/amd64fbsd-nat.c.orig 2005-12-17 17:33:59.000000000 -0500
+++ gdb/amd64fbsd-nat.c 2009-09-10 02:29:33.000000000 -0400
@@ -125,10 +125,12 @@
regcache_raw_supply (regcache, 13, &pcb->pcb_r13);
regcache_raw_supply (regcache, 14, &pcb->pcb_r14);
regcache_raw_supply (regcache, 15, &pcb->pcb_r15);
+#if defined(__FreeBSD_version) && __FreeBSD_version < 800000
regcache_raw_supply (regcache, AMD64_DS_REGNUM, &pcb->pcb_ds);
regcache_raw_supply (regcache, AMD64_ES_REGNUM, &pcb->pcb_es);
regcache_raw_supply (regcache, AMD64_FS_REGNUM, &pcb->pcb_fs);
regcache_raw_supply (regcache, AMD64_GS_REGNUM, &pcb->pcb_gs);
Apparently, whoever is responsible for this port never
forwarded their patch upstream to the gdb developers.