From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 49154 invoked by alias); 8 Dec 2016 20:09:01 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 48889 invoked by uid 89); 8 Dec 2016 20:09:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_SOFTFAIL autolearn=no version=3.3.2 spammy=H*f:sk:472bfba, H*i:sk:472bfba, H*MI:sk:472bfba X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail.baldwin.cx Received: from bigwig.baldwin.cx (HELO mail.baldwin.cx) (96.47.65.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 08 Dec 2016 20:08:49 +0000 Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by mail.baldwin.cx (Postfix) with ESMTPSA id DD2D110A998; Thu, 8 Dec 2016 15:08:47 -0500 (EST) From: John Baldwin To: Luis Machado Cc: gdb-patches@sourceware.org, binutils@sourceware.org Subject: Re: [PATCH v2 3/3] Add native target for FreeBSD/mips. Date: Thu, 08 Dec 2016 20:09:00 -0000 Message-ID: <1801089.38MhW5CcGm@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.0-PRERELEASE; KDE/4.14.10; amd64; ; ) In-Reply-To: <472bfba9-72b3-4432-95d9-e4b523667d1f@codesourcery.com> References: <20161206210015.40422-1-jhb@FreeBSD.org> <20161206210015.40422-4-jhb@FreeBSD.org> <472bfba9-72b3-4432-95d9-e4b523667d1f@codesourcery.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-IsSubscribed: yes X-SW-Source: 2016-12/txt/msg00217.txt.bz2 On Thursday, December 08, 2016 12:53:06 PM Luis Machado wrote: > On 12/06/2016 03:00 PM, John Baldwin wrote: > > This supports the o32 and n64 ABIs. > > > > gdb/ChangeLog: > > > > * Makefile.in (ALLDEPFILES): Add mips-fbsd-nat.c. > > * config/mips/fbsd.mh: New file. > > * configure.host: Add mips*-*-freebsd*. > > * mips-fbsd-nat.c: New file. > > --- > > gdb/ChangeLog | 7 +++ > > gdb/Makefile.in | 1 + > > gdb/config/mips/fbsd.mh | 3 ++ > > gdb/configure.host | 1 + > > gdb/mips-fbsd-nat.c | 141 ++++++++++++++++++++++++++++++++++++++++++++++++ > > 5 files changed, 153 insertions(+) > > create mode 100644 gdb/config/mips/fbsd.mh > > create mode 100644 gdb/mips-fbsd-nat.c > > > > diff --git a/gdb/ChangeLog b/gdb/ChangeLog > > index 890702e..fc43f81 100644 > > --- a/gdb/ChangeLog > > +++ b/gdb/ChangeLog > > @@ -1,5 +1,12 @@ > > 2016-12-06 John Baldwin > > > > + * Makefile.in (ALLDEPFILES): Add mips-fbsd-nat.c. > > + * config/mips/fbsd.mh: New file. > > + * configure.host: Add mips*-*-freebsd*. > > + * mips-fbsd-nat.c: New file. > > + > > +2016-12-06 John Baldwin > > + > > * Makefile.in (ALL_TARGET_OBS): Add mips-fbsd-tdep.o. > > (ALLDEPFILES): Add mips-fbsd-tdep.c. > > * configure.tgt: Add mips*-*-freebsd*. > > diff --git a/gdb/Makefile.in b/gdb/Makefile.in > > index e34fa4a..dee9d73 100644 > > --- a/gdb/Makefile.in > > +++ b/gdb/Makefile.in > > @@ -2542,6 +2542,7 @@ ALLDEPFILES = \ > > microblaze-linux-tdep.c \ > > microblaze-tdep.c \ > > mingw-hdep.c \ > > + mips-fbsd-nat.c \ > > mips-fbsd-tdep.c \ > > mips-linux-nat.c \ > > mips-linux-tdep.c \ > > diff --git a/gdb/config/mips/fbsd.mh b/gdb/config/mips/fbsd.mh > > new file mode 100644 > > index 0000000..f433347 > > --- /dev/null > > +++ b/gdb/config/mips/fbsd.mh > > @@ -0,0 +1,3 @@ > > +# Host: FreeBSD/mips > > +NATDEPFILES= fork-child.o inf-ptrace.o fbsd-nat.o mips-fbsd-nat.o > > +HAVE_NATIVE_GCORE_HOST = 1 > > I suppose you tried the gcore command for native GDB on FreeBSD/MIPS and > it worked fine? It mostly does. I can read the core fine using native GDB on MIPS, but an x86 GDB doesn't parse the generated core correctly (though it does parse a native core from the kernel correctly). The issue here though isn't really a MIPS-specific one. Right now the FreeBSD target-dependent code uses code from binutils to write out the prpsinfo and prstatus notes and those write Linux-style "CORE" notes. I have a todo to fix gcore in gdb to write out "FreeBSD" process and thread status notes instead which will fix this (along with a separate, but somewhat similar issue with gdb's gcore on FreeBSD/powerpc). > > +/* Determine if PT_GETREGS fetches this register. */ > > + > > +static bool > > +getregs_supplies (struct gdbarch *gdbarch, int regnum) > > +{ > > + return ((regnum) >= MIPS_ZERO_REGNUM > > + && (regnum) <= gdbarch_pc_regnum (gdbarch)); > > +} > > + > > Not sure we need the extra ()'s around regnum. Oops, will fix. > Otherwise i have no further comments on this one. > > I'm guessing someone from binutils' side will want to validate 1/3. Yes. -- John Baldwin