On Tue, Feb 27, 2024 at 11:15 PM John Baldwin <j...@freebsd.org> wrote:
> On 2/23/24 9:28 PM, Flavio Cruz wrote: > > This port extends the existing i686 port to support x86_64 by trying to > > reuse existing code whenever it makes sense. > > > > * gdb/amd64-gnu-tdep.c: Adds logic for handling signal frames and > > position of amd64 registers in the different Hurd structs. > > The signal code is very similar to i686, except the trampoline code > > is adapted. > > * gdb/config/i386/nm-i386gnu.h: renamed to gdb/config/i386/nm-x86-gnu.h > > and adapt it for x86_64. > > * gdb/config/i386/i386gnu.mn: renamed to gdb/config/i386/nm-x86-gnu.mn > > and reuse it for x86_64. > > * gdb/configure.host: recognize gnu64 as a host. > > * gdb/configure.nat: recognize gnu64 host and update existing i386gnu to > > reuse the new shared files. > > * gdb/configure.tgt: recognize x86_64-*-gnu* triplet and use > > amd64-gnu-tdep.c. > > * gdb/i386-gnu-tdep.c: added i386_gnu_thread_state_reg_offset that is > > copied from i386-gnu-nat.c. This makes it similar to amd64. > > * gdb/i386-gnu-nat.c: rename it to x86-gnu-nat.c since we reuse this for > > i386 and amd64. Updated REG_ADDR to use one of the structures. Added > > VALID_REGISTER to make sure it's a register we can provide at this > time > > (not all of them are available in amd64). FLAGS_REGISTER is either rfl > > or efl depending on the arch. Renamed functions and class from i386 > to x86 > > whenever they can be reused. > > > > Tested on Hurd x86_64 and i686. > > --- > > > > I addressed John's comments and moved amd64_gnu_thread_state_* and > > i386_gnu_thread_state_* to x86-gnu-nat.c. The new patch also contains a > few > > changes that makes backtracing through shared libraries work. > > Thanks, this generally looks ok to me. > > One question I have is if you need nat/x86-xstate.o for the native Hurd > x86_64 > target? The i686 target doesn't use it and I didn't see any references in > the patches to XSAVE support, so I suspect you don't need it. Were you > getting > a link error without it, or is it something you copied from Linux x86_64? > If > the latter, it is probably best to drop it for now until you add XSAVE > support > in the future (which would presumably apply to both i686 and x86_64). > You are right, nat/x86-xstate it's not needed yet. I mailed a second version of this patch without requiring nat/x86-xstate.o plus some updates to make sure the code still compiles with the newest changes in GDB. Thank you > > Reviewed-By: John Baldwin <j...@freebsd.org> > > -- > John Baldwin > >