[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] Port GDB to Hurd x86_64.

From: John Baldwin
Subject: Re: [PATCH v2] Port GDB to Hurd x86_64.
Date: Tue, 27 Feb 2024 15:15:18 -0800
User-agent: Mozilla Thunderbird

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
* 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).

Reviewed-By: John Baldwin <jhb@FreeBSD.org>

John Baldwin

reply via email to

[Prev in Thread] Current Thread [Next in Thread]