Message ID | 20200124141818.172490-1-cbiesinger@chromium.org |
---|---|
State | New, archived |
Headers |
Received: (qmail 79229 invoked by alias); 24 Jan 2020 14:18:25 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <gdb-patches.sourceware.org> List-Unsubscribe: <mailto:gdb-patches-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:gdb-patches-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 79221 invoked by uid 89); 24 Jan 2020 14:18:25 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1346 X-HELO: mail-wr1-f68.google.com Received: from mail-wr1-f68.google.com (HELO mail-wr1-f68.google.com) (209.85.221.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 24 Jan 2020 14:18:24 +0000 Received: by mail-wr1-f68.google.com with SMTP id q10so2156550wrm.11 for <gdb-patches@sourceware.org>; Fri, 24 Jan 2020 06:18:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pkjxJ/PDY+ldBXPWQxcdqFgH6HXip2e6WKsMl/VES9w=; b=UkfkM2j/zqHr91WXcvVNZ8Fd9yI8jJppiaUbZJsit90N/heFx4jB+AS83NFwNUFyNk eby30w5V1BE35rpTsfrBRkuhdtjZ9I8JsOyP9uoSKhyz3xcjO+QkPVLJjxrYrIqTZjPg z7PxUmdNknSKYnkspAn00MURoWtfnrVBAC9dw= Return-Path: <cbiesinger@chromium.org> Received: from cbiesinger.roam.corp.google.com (fanzine.igalia.com. [178.60.130.6]) by smtp.googlemail.com with ESMTPSA id v3sm7501801wru.32.2020.01.24.06.18.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jan 2020 06:18:20 -0800 (PST) From: cbiesinger@chromium.org To: gdb-patches@sourceware.org Cc: Christian Biesinger <cbiesinger@google.com> Subject: [PATCH 2/3 v2] Define _KMEMUSER in arm-nbsd-nat.c Date: Fri, 24 Jan 2020 15:18:18 +0100 Message-Id: <20200124141818.172490-1-cbiesinger@chromium.org> In-Reply-To: <20200124141458.171392-3-cbiesinger@chromium.org> References: <20200124141458.171392-3-cbiesinger@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit |
Commit Message
Christian Biesinger
Jan. 24, 2020, 2:18 p.m. UTC
From: Christian Biesinger <cbiesinger@google.com>
Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I
tested). types.h does not define register_t by default.
We already use this define elsewhere, notably in bsd-kvm.c.
In file included from ../../gdb/arm-nbsd-nat.c:28:
/usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'?
register_t tf_spsr;
^
/usr/include/machine/types.h:77:14: note: '__register_t' declared here
typedef int __register_t;
^
There are other compile errors that this does not fix.
gdb/ChangeLog:
2020-01-24 Christian Biesinger <cbiesinger@google.com>
* arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of
register_t.
Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e
---
gdb/arm-nbsd-nat.c | 2 ++
1 file changed, 2 insertions(+)
Comments
On 24.01.2020 15:18, cbiesinger@chromium.org wrote: > From: Christian Biesinger <cbiesinger@google.com> > > Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I > tested). types.h does not define register_t by default. > > We already use this define elsewhere, notably in bsd-kvm.c. > > In file included from ../../gdb/arm-nbsd-nat.c:28: > /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? > register_t tf_spsr; > ^ > /usr/include/machine/types.h:77:14: note: '__register_t' declared here > typedef int __register_t; > ^ > > There are other compile errors that this does not fix. > > gdb/ChangeLog: > > 2020-01-24 Christian Biesinger <cbiesinger@google.com> > > * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of > register_t. > > Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e > --- > gdb/arm-nbsd-nat.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c > index 00f919194b..4844b51a3c 100644 > --- a/gdb/arm-nbsd-nat.c > +++ b/gdb/arm-nbsd-nat.c > @@ -17,6 +17,8 @@ > You should have received a copy of the GNU General Public License > along with this program. If not, see <http://www.gnu.org/licenses/>. */ > > +/* We define this to get types like register_t. */ > +#define _KMEMUSER > #include "defs.h" > #include "gdbcore.h" > #include "inferior.h" > While gdb is the right user for _KMEMUSER, here we should probably go for -D_KERNTYPES as it is the canonical symbol for register_t.
On Fri, Jan 24, 2020 at 3:29 PM Kamil Rytarowski <n54@gmx.com> wrote: > > On 24.01.2020 15:18, cbiesinger@chromium.org wrote: > > From: Christian Biesinger <cbiesinger@google.com> > > > > Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I > > tested). types.h does not define register_t by default. > > > > We already use this define elsewhere, notably in bsd-kvm.c. > > > > In file included from ../../gdb/arm-nbsd-nat.c:28: > > /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? > > register_t tf_spsr; > > ^ > > /usr/include/machine/types.h:77:14: note: '__register_t' declared here > > typedef int __register_t; > > ^ > > > > There are other compile errors that this does not fix. > > > > gdb/ChangeLog: > > > > 2020-01-24 Christian Biesinger <cbiesinger@google.com> > > > > * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of > > register_t. > > > > Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e > > --- > > gdb/arm-nbsd-nat.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c > > index 00f919194b..4844b51a3c 100644 > > --- a/gdb/arm-nbsd-nat.c > > +++ b/gdb/arm-nbsd-nat.c > > @@ -17,6 +17,8 @@ > > You should have received a copy of the GNU General Public License > > along with this program. If not, see <http://www.gnu.org/licenses/>. */ > > > > +/* We define this to get types like register_t. */ > > +#define _KMEMUSER > > #include "defs.h" > > #include "gdbcore.h" > > #include "inferior.h" > > > > While gdb is the right user for _KMEMUSER, here we should probably go > for -D_KERNTYPES as it is the canonical symbol for register_t. Ah thank you! I was hoping someone who knows this stuff would respond. I will send a new patch shortly. Christian
Hi Kamil, I have a related question. NetBSD applied this patch: https://www.mail-archive.com/tech@openbsd.org/msg44100.html Do you know which NetBSD version that shipped in? Can we apply that patch to GDB as-is or should we attempt to support the older struct layout as well? Thanks, Christian On Fri, Jan 24, 2020 at 3:29 PM Kamil Rytarowski <n54@gmx.com> wrote: > > On 24.01.2020 15:18, cbiesinger@chromium.org wrote: > > From: Christian Biesinger <cbiesinger@google.com> > > > > Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I > > tested). types.h does not define register_t by default. > > > > We already use this define elsewhere, notably in bsd-kvm.c. > > > > In file included from ../../gdb/arm-nbsd-nat.c:28: > > /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? > > register_t tf_spsr; > > ^ > > /usr/include/machine/types.h:77:14: note: '__register_t' declared here > > typedef int __register_t; > > ^ > > > > There are other compile errors that this does not fix. > > > > gdb/ChangeLog: > > > > 2020-01-24 Christian Biesinger <cbiesinger@google.com> > > > > * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of > > register_t. > > > > Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e > > --- > > gdb/arm-nbsd-nat.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c > > index 00f919194b..4844b51a3c 100644 > > --- a/gdb/arm-nbsd-nat.c > > +++ b/gdb/arm-nbsd-nat.c > > @@ -17,6 +17,8 @@ > > You should have received a copy of the GNU General Public License > > along with this program. If not, see <http://www.gnu.org/licenses/>. */ > > > > +/* We define this to get types like register_t. */ > > +#define _KMEMUSER > > #include "defs.h" > > #include "gdbcore.h" > > #include "inferior.h" > > > > While gdb is the right user for _KMEMUSER, here we should probably go > for -D_KERNTYPES as it is the canonical symbol for register_t. >
On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: > Hi Kamil, > > I have a related question. NetBSD applied this patch: > https://www.mail-archive.com/tech@openbsd.org/msg44100.html > Is this the right link? > Do you know which NetBSD version that shipped in? Can we apply that > patch to GDB as-is or should we attempt to support the older struct > layout as well? Please go for the current FPU layout on NetBSD. Massive ptrace(2) fixes were introduced in NetBSD-8 and later. Soon NetBSD 7.x will go EOL (after releasing 9.0, rc2 is planned soon). In LLDB we support NetBSD 9.0 or newer. In GDB we should keep the same minimal requirements and deal with older NetBSD versions (if at all) with downstream patches. We have got a pile of local GDB patches. There is also a functional gdbserver implementation on NetBSD/amd64 and I intend to upstream it. (Help wanted! Would you be interested in this and in upstreaming?) The patches are located here: https://github.com/NetBSD/pkgsrc-wip/tree/master/gdb-netbsd/patches * with core/basic features... but it is difficult as there is no OS with finished transition... https://sourceware.org/gdb/wiki/LocalRemoteFeatureParity > > Thanks, > Christian > > On Fri, Jan 24, 2020 at 3:29 PM Kamil Rytarowski <n54@gmx.com> wrote: >> >> On 24.01.2020 15:18, cbiesinger@chromium.org wrote: >>> From: Christian Biesinger <cbiesinger@google.com> >>> >>> Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I >>> tested). types.h does not define register_t by default. >>> >>> We already use this define elsewhere, notably in bsd-kvm.c. >>> >>> In file included from ../../gdb/arm-nbsd-nat.c:28: >>> /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? >>> register_t tf_spsr; >>> ^ >>> /usr/include/machine/types.h:77:14: note: '__register_t' declared here >>> typedef int __register_t; >>> ^ >>> >>> There are other compile errors that this does not fix. >>> >>> gdb/ChangeLog: >>> >>> 2020-01-24 Christian Biesinger <cbiesinger@google.com> >>> >>> * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of >>> register_t. >>> >>> Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e >>> --- >>> gdb/arm-nbsd-nat.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c >>> index 00f919194b..4844b51a3c 100644 >>> --- a/gdb/arm-nbsd-nat.c >>> +++ b/gdb/arm-nbsd-nat.c >>> @@ -17,6 +17,8 @@ >>> You should have received a copy of the GNU General Public License >>> along with this program. If not, see <http://www.gnu.org/licenses/>. */ >>> >>> +/* We define this to get types like register_t. */ >>> +#define _KMEMUSER >>> #include "defs.h" >>> #include "gdbcore.h" >>> #include "inferior.h" >>> >> >> While gdb is the right user for _KMEMUSER, here we should probably go >> for -D_KERNTYPES as it is the canonical symbol for register_t. >>
On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: > > On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: > > Hi Kamil, > > > > I have a related question. NetBSD applied this patch: > > https://www.mail-archive.com/tech@openbsd.org/msg44100.html > > > > Is this the right link? Yeah -- that patch changes a system header at the top and patches GDB at the bottom. > > Do you know which NetBSD version that shipped in? Can we apply that > > patch to GDB as-is or should we attempt to support the older struct > > layout as well? > > Please go for the current FPU layout on NetBSD. Massive ptrace(2) fixes > were introduced in NetBSD-8 and later. Soon NetBSD 7.x will go EOL > (after releasing 9.0, rc2 is planned soon). OK, great. Thanks. > In LLDB we support NetBSD 9.0 or newer. In GDB we should keep the same > minimal requirements and deal with older NetBSD versions (if at all) > with downstream patches. > > We have got a pile of local GDB patches. OK. Maybe I should look through those at some point... I was surprised that NetBSD apparently has an oldish GDB if http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/gdb/README.html is correct (8.1) > There is also a functional gdbserver implementation on NetBSD/amd64 and > I intend to upstream it. (Help wanted! Would you be interested in this > and in upstreaming?) > > The patches are located here: > > https://github.com/NetBSD/pkgsrc-wip/tree/master/gdb-netbsd/patches > > * with core/basic features... but it is difficult as there is no OS with > finished transition... > https://sourceware.org/gdb/wiki/LocalRemoteFeatureParity I can definitely not commit to upstreaming the gdbserver. I am only looking at NetBSD because I wanted to remove a deprecated function in GDB, and one of the two callers is in NetBSD ARM code. So, I wanted to build ARM NetBSD first so I can test if it still works after that change. But I can't commit to any further NetBSD work. BTW, is there a reason why your patches have one .patch per changed file? I usually find it easier to follow them if they are instead grouped by some kind of topic per patch. Thanks, Christian > > > > > Thanks, > > Christian > > > > On Fri, Jan 24, 2020 at 3:29 PM Kamil Rytarowski <n54@gmx.com> wrote: > >> > >> On 24.01.2020 15:18, cbiesinger@chromium.org wrote: > >>> From: Christian Biesinger <cbiesinger@google.com> > >>> > >>> Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I > >>> tested). types.h does not define register_t by default. > >>> > >>> We already use this define elsewhere, notably in bsd-kvm.c. > >>> > >>> In file included from ../../gdb/arm-nbsd-nat.c:28: > >>> /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? > >>> register_t tf_spsr; > >>> ^ > >>> /usr/include/machine/types.h:77:14: note: '__register_t' declared here > >>> typedef int __register_t; > >>> ^ > >>> > >>> There are other compile errors that this does not fix. > >>> > >>> gdb/ChangeLog: > >>> > >>> 2020-01-24 Christian Biesinger <cbiesinger@google.com> > >>> > >>> * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of > >>> register_t. > >>> > >>> Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e > >>> --- > >>> gdb/arm-nbsd-nat.c | 2 ++ > >>> 1 file changed, 2 insertions(+) > >>> > >>> diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c > >>> index 00f919194b..4844b51a3c 100644 > >>> --- a/gdb/arm-nbsd-nat.c > >>> +++ b/gdb/arm-nbsd-nat.c > >>> @@ -17,6 +17,8 @@ > >>> You should have received a copy of the GNU General Public License > >>> along with this program. If not, see <http://www.gnu.org/licenses/>. */ > >>> > >>> +/* We define this to get types like register_t. */ > >>> +#define _KMEMUSER > >>> #include "defs.h" > >>> #include "gdbcore.h" > >>> #include "inferior.h" > >>> > >> > >> While gdb is the right user for _KMEMUSER, here we should probably go > >> for -D_KERNTYPES as it is the canonical symbol for register_t. > >> > >
On 24.01.2020 16:35, Christian Biesinger via gdb-patches wrote: > On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: >> >> On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: >>> Hi Kamil, >>> >>> I have a related question. NetBSD applied this patch: >>> https://www.mail-archive.com/tech@openbsd.org/msg44100.html >>> >> >> Is this the right link? > > Yeah -- that patch changes a system header at the top and patches GDB > at the bottom. > This is not a change in NetBSD, so it is unrelated. >>> Do you know which NetBSD version that shipped in? Can we apply that >>> patch to GDB as-is or should we attempt to support the older struct >>> layout as well? >> >> Please go for the current FPU layout on NetBSD. Massive ptrace(2) fixes >> were introduced in NetBSD-8 and later. Soon NetBSD 7.x will go EOL >> (after releasing 9.0, rc2 is planned soon). > > OK, great. Thanks. > >> In LLDB we support NetBSD 9.0 or newer. In GDB we should keep the same >> minimal requirements and deal with older NetBSD versions (if at all) >> with downstream patches. >> >> We have got a pile of local GDB patches. > > OK. Maybe I should look through those at some point... I was > surprised that NetBSD apparently has an oldish GDB if > http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/gdb/README.html > is correct (8.1) > >> There is also a functional gdbserver implementation on NetBSD/amd64 and >> I intend to upstream it. (Help wanted! Would you be interested in this >> and in upstreaming?) >> >> The patches are located here: >> >> https://github.com/NetBSD/pkgsrc-wip/tree/master/gdb-netbsd/patches >> >> * with core/basic features... but it is difficult as there is no OS with >> finished transition... >> https://sourceware.org/gdb/wiki/LocalRemoteFeatureParity > > I can definitely not commit to upstreaming the gdbserver. I am only > looking at NetBSD because I wanted to remove a deprecated function in > GDB, and one of the two callers is in NetBSD ARM code. So, I wanted to > build ARM NetBSD first so I can test if it still works after that > change. But I can't commit to any further NetBSD work. > OK, thanks! > BTW, is there a reason why your patches have one .patch per changed > file? I usually find it easier to follow them if they are instead > grouped by some kind of topic per patch. > This is a convention in pkgsrc and it is practical for its use-case. > Thanks, > Christian > >> >>> >>> Thanks, >>> Christian >>> >>> On Fri, Jan 24, 2020 at 3:29 PM Kamil Rytarowski <n54@gmx.com> wrote: >>>> >>>> On 24.01.2020 15:18, cbiesinger@chromium.org wrote: >>>>> From: Christian Biesinger <cbiesinger@google.com> >>>>> >>>>> Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I >>>>> tested). types.h does not define register_t by default. >>>>> >>>>> We already use this define elsewhere, notably in bsd-kvm.c. >>>>> >>>>> In file included from ../../gdb/arm-nbsd-nat.c:28: >>>>> /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? >>>>> register_t tf_spsr; >>>>> ^ >>>>> /usr/include/machine/types.h:77:14: note: '__register_t' declared here >>>>> typedef int __register_t; >>>>> ^ >>>>> >>>>> There are other compile errors that this does not fix. >>>>> >>>>> gdb/ChangeLog: >>>>> >>>>> 2020-01-24 Christian Biesinger <cbiesinger@google.com> >>>>> >>>>> * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of >>>>> register_t. >>>>> >>>>> Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e >>>>> --- >>>>> gdb/arm-nbsd-nat.c | 2 ++ >>>>> 1 file changed, 2 insertions(+) >>>>> >>>>> diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c >>>>> index 00f919194b..4844b51a3c 100644 >>>>> --- a/gdb/arm-nbsd-nat.c >>>>> +++ b/gdb/arm-nbsd-nat.c >>>>> @@ -17,6 +17,8 @@ >>>>> You should have received a copy of the GNU General Public License >>>>> along with this program. If not, see <http://www.gnu.org/licenses/>. */ >>>>> >>>>> +/* We define this to get types like register_t. */ >>>>> +#define _KMEMUSER >>>>> #include "defs.h" >>>>> #include "gdbcore.h" >>>>> #include "inferior.h" >>>>> >>>> >>>> While gdb is the right user for _KMEMUSER, here we should probably go >>>> for -D_KERNTYPES as it is the canonical symbol for register_t. >>>> >> >>
On Fri, Jan 24, 2020 at 4:49 PM Kamil Rytarowski <n54@gmx.com> wrote: > > On 24.01.2020 16:35, Christian Biesinger via gdb-patches wrote: > > On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: > >> > >> On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: > >>> Hi Kamil, > >>> > >>> I have a related question. NetBSD applied this patch: > >>> https://www.mail-archive.com/tech@openbsd.org/msg44100.html > >>> > >> > >> Is this the right link? > > > > Yeah -- that patch changes a system header at the top and patches GDB > > at the bottom. > > > > This is not a change in NetBSD, so it is unrelated. My apologies, I completely misread that. I'll see if I can find where NetBSD changed their FP register data structure, or perhaps your downstream patch will still work (although that probably has to come from one of y'all for copyright reasons?) > >>> Do you know which NetBSD version that shipped in? Can we apply that > >>> patch to GDB as-is or should we attempt to support the older struct > >>> layout as well? > >> > >> Please go for the current FPU layout on NetBSD. Massive ptrace(2) fixes > >> were introduced in NetBSD-8 and later. Soon NetBSD 7.x will go EOL > >> (after releasing 9.0, rc2 is planned soon). > > > > OK, great. Thanks. > > > >> In LLDB we support NetBSD 9.0 or newer. In GDB we should keep the same > >> minimal requirements and deal with older NetBSD versions (if at all) > >> with downstream patches. > >> > >> We have got a pile of local GDB patches. > > > > OK. Maybe I should look through those at some point... I was > > surprised that NetBSD apparently has an oldish GDB if > > http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/gdb/README.html > > is correct (8.1) > > > >> There is also a functional gdbserver implementation on NetBSD/amd64 and > >> I intend to upstream it. (Help wanted! Would you be interested in this > >> and in upstreaming?) > >> > >> The patches are located here: > >> > >> https://github.com/NetBSD/pkgsrc-wip/tree/master/gdb-netbsd/patches > >> > >> * with core/basic features... but it is difficult as there is no OS with > >> finished transition... > >> https://sourceware.org/gdb/wiki/LocalRemoteFeatureParity > > > > I can definitely not commit to upstreaming the gdbserver. I am only > > looking at NetBSD because I wanted to remove a deprecated function in > > GDB, and one of the two callers is in NetBSD ARM code. So, I wanted to > > build ARM NetBSD first so I can test if it still works after that > > change. But I can't commit to any further NetBSD work. > > > > OK, thanks! > > > BTW, is there a reason why your patches have one .patch per changed > > file? I usually find it easier to follow them if they are instead > > grouped by some kind of topic per patch. > > > > This is a convention in pkgsrc and it is practical for its use-case. OK. Some of those patches should be upstreamable very easily. For some others it would be helpful to have a description & I guess a copyright assignment. I also noticed that some of those files are 0 bytes and could probably be deleted? And this does not seem necessary: https://github.com/NetBSD/pkgsrc-wip/blob/master/gdb-netbsd/patches/patch-bfd_netbsd-core.c > >>> > >>> Thanks, > >>> Christian > >>> > >>> On Fri, Jan 24, 2020 at 3:29 PM Kamil Rytarowski <n54@gmx.com> wrote: > >>>> > >>>> On 24.01.2020 15:18, cbiesinger@chromium.org wrote: > >>>>> From: Christian Biesinger <cbiesinger@google.com> > >>>>> > >>>>> Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I > >>>>> tested). types.h does not define register_t by default. > >>>>> > >>>>> We already use this define elsewhere, notably in bsd-kvm.c. > >>>>> > >>>>> In file included from ../../gdb/arm-nbsd-nat.c:28: > >>>>> /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? > >>>>> register_t tf_spsr; > >>>>> ^ > >>>>> /usr/include/machine/types.h:77:14: note: '__register_t' declared here > >>>>> typedef int __register_t; > >>>>> ^ > >>>>> > >>>>> There are other compile errors that this does not fix. > >>>>> > >>>>> gdb/ChangeLog: > >>>>> > >>>>> 2020-01-24 Christian Biesinger <cbiesinger@google.com> > >>>>> > >>>>> * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of > >>>>> register_t. > >>>>> > >>>>> Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e > >>>>> --- > >>>>> gdb/arm-nbsd-nat.c | 2 ++ > >>>>> 1 file changed, 2 insertions(+) > >>>>> > >>>>> diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c > >>>>> index 00f919194b..4844b51a3c 100644 > >>>>> --- a/gdb/arm-nbsd-nat.c > >>>>> +++ b/gdb/arm-nbsd-nat.c > >>>>> @@ -17,6 +17,8 @@ > >>>>> You should have received a copy of the GNU General Public License > >>>>> along with this program. If not, see <http://www.gnu.org/licenses/>. */ > >>>>> > >>>>> +/* We define this to get types like register_t. */ > >>>>> +#define _KMEMUSER > >>>>> #include "defs.h" > >>>>> #include "gdbcore.h" > >>>>> #include "inferior.h" > >>>>> > >>>> > >>>> While gdb is the right user for _KMEMUSER, here we should probably go > >>>> for -D_KERNTYPES as it is the canonical symbol for register_t. > >>>> > >> > >> > >
On 24.01.2020 17:01, Christian Biesinger wrote: > On Fri, Jan 24, 2020 at 4:49 PM Kamil Rytarowski <n54@gmx.com> wrote: >> >> On 24.01.2020 16:35, Christian Biesinger via gdb-patches wrote: >>> On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: >>>> >>>> On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: >>>>> Hi Kamil, >>>>> >>>>> I have a related question. NetBSD applied this patch: >>>>> https://www.mail-archive.com/tech@openbsd.org/msg44100.html >>>>> >>>> >>>> Is this the right link? >>> >>> Yeah -- that patch changes a system header at the top and patches GDB >>> at the bottom. >>> >> >> This is not a change in NetBSD, so it is unrelated. > > My apologies, I completely misread that. I'll see if I can find where > NetBSD changed their FP register data structure, or perhaps your > downstream patch will still work (although that probably has to come > from one of y'all for copyright reasons?) > Please cherry-pick what you need and I will find the original author. Many people in NetBSD have FSF papers done. >>>>> Do you know which NetBSD version that shipped in? Can we apply that >>>>> patch to GDB as-is or should we attempt to support the older struct >>>>> layout as well? >>>> >>>> Please go for the current FPU layout on NetBSD. Massive ptrace(2) fixes >>>> were introduced in NetBSD-8 and later. Soon NetBSD 7.x will go EOL >>>> (after releasing 9.0, rc2 is planned soon). >>> >>> OK, great. Thanks. >>> >>>> In LLDB we support NetBSD 9.0 or newer. In GDB we should keep the same >>>> minimal requirements and deal with older NetBSD versions (if at all) >>>> with downstream patches. >>>> >>>> We have got a pile of local GDB patches. >>> >>> OK. Maybe I should look through those at some point... I was >>> surprised that NetBSD apparently has an oldish GDB if >>> http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/gdb/README.html >>> is correct (8.1) >>> >>>> There is also a functional gdbserver implementation on NetBSD/amd64 and >>>> I intend to upstream it. (Help wanted! Would you be interested in this >>>> and in upstreaming?) >>>> >>>> The patches are located here: >>>> >>>> https://github.com/NetBSD/pkgsrc-wip/tree/master/gdb-netbsd/patches >>>> >>>> * with core/basic features... but it is difficult as there is no OS with >>>> finished transition... >>>> https://sourceware.org/gdb/wiki/LocalRemoteFeatureParity >>> >>> I can definitely not commit to upstreaming the gdbserver. I am only >>> looking at NetBSD because I wanted to remove a deprecated function in >>> GDB, and one of the two callers is in NetBSD ARM code. So, I wanted to >>> build ARM NetBSD first so I can test if it still works after that >>> change. But I can't commit to any further NetBSD work. >>> >> >> OK, thanks! >> >>> BTW, is there a reason why your patches have one .patch per changed >>> file? I usually find it easier to follow them if they are instead >>> grouped by some kind of topic per patch. >>> >> >> This is a convention in pkgsrc and it is practical for its use-case. > > OK. Some of those patches should be upstreamable very easily. For some > others it would be helpful to have a description & I guess a copyright > assignment. > My intention was to revamp the general NetBSD support from native-only to gdbserver... (same like lldb-server).. and it would result in deep rewrite of the current code, but there is work in progress status in Linux so it does not help. > I also noticed that some of those files are 0 bytes and could probably > be deleted? And this does not seem necessary: > https://github.com/NetBSD/pkgsrc-wip/blob/master/gdb-netbsd/patches/patch-bfd_netbsd-core.c > Good catch. >>>>> >>>>> Thanks, >>>>> Christian >>>>> >>>>> On Fri, Jan 24, 2020 at 3:29 PM Kamil Rytarowski <n54@gmx.com> wrote: >>>>>> >>>>>> On 24.01.2020 15:18, cbiesinger@chromium.org wrote: >>>>>>> From: Christian Biesinger <cbiesinger@google.com> >>>>>>> >>>>>>> Fixes the below compile error on ARM NetBSD 9.0_RC1 (the only version I >>>>>>> tested). types.h does not define register_t by default. >>>>>>> >>>>>>> We already use this define elsewhere, notably in bsd-kvm.c. >>>>>>> >>>>>>> In file included from ../../gdb/arm-nbsd-nat.c:28: >>>>>>> /usr/include/machine/frame.h:54:2: error: unknown type name 'register_t'; did you mean '__register_t'? >>>>>>> register_t tf_spsr; >>>>>>> ^ >>>>>>> /usr/include/machine/types.h:77:14: note: '__register_t' declared here >>>>>>> typedef int __register_t; >>>>>>> ^ >>>>>>> >>>>>>> There are other compile errors that this does not fix. >>>>>>> >>>>>>> gdb/ChangeLog: >>>>>>> >>>>>>> 2020-01-24 Christian Biesinger <cbiesinger@google.com> >>>>>>> >>>>>>> * arm-nbsd-nat.c: Define _KMEMUSER to get the declaration of >>>>>>> register_t. >>>>>>> >>>>>>> Change-Id: I82c21d38189ee59ea0af2538ba84b771d268722e >>>>>>> --- >>>>>>> gdb/arm-nbsd-nat.c | 2 ++ >>>>>>> 1 file changed, 2 insertions(+) >>>>>>> >>>>>>> diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c >>>>>>> index 00f919194b..4844b51a3c 100644 >>>>>>> --- a/gdb/arm-nbsd-nat.c >>>>>>> +++ b/gdb/arm-nbsd-nat.c >>>>>>> @@ -17,6 +17,8 @@ >>>>>>> You should have received a copy of the GNU General Public License >>>>>>> along with this program. If not, see <http://www.gnu.org/licenses/>. */ >>>>>>> >>>>>>> +/* We define this to get types like register_t. */ >>>>>>> +#define _KMEMUSER >>>>>>> #include "defs.h" >>>>>>> #include "gdbcore.h" >>>>>>> #include "inferior.h" >>>>>>> >>>>>> >>>>>> While gdb is the right user for _KMEMUSER, here we should probably go >>>>>> for -D_KERNTYPES as it is the canonical symbol for register_t. >>>>>> >>>> >>>> >> >>
On Fri, Jan 24, 2020 at 5:37 PM Kamil Rytarowski <n54@gmx.com> wrote: > > On 24.01.2020 17:01, Christian Biesinger wrote: > > On Fri, Jan 24, 2020 at 4:49 PM Kamil Rytarowski <n54@gmx.com> wrote: > >> > >> On 24.01.2020 16:35, Christian Biesinger via gdb-patches wrote: > >>> On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: > >>>> > >>>> On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: > >>>>> Hi Kamil, > >>>>> > >>>>> I have a related question. NetBSD applied this patch: > >>>>> https://www.mail-archive.com/tech@openbsd.org/msg44100.html > >>>>> > >>>> > >>>> Is this the right link? > >>> > >>> Yeah -- that patch changes a system header at the top and patches GDB > >>> at the bottom. > >>> > >> > >> This is not a change in NetBSD, so it is unrelated. > > > > My apologies, I completely misread that. I'll see if I can find where > > NetBSD changed their FP register data structure, or perhaps your > > downstream patch will still work (although that probably has to come > > from one of y'all for copyright reasons?) > > > > Please cherry-pick what you need and I will find the original author. > Many people in NetBSD have FSF papers done. Thanks. I think this patch would probably be the most important since it fixes a compile error: https://github.com/NetBSD/pkgsrc-wip/blob/master/gdb-netbsd/patches/patch-gdb_arm-nbsd-nat.c However, I don't understand why arm_netbsd_core_fns / fetch_core_registers was added. As far as I can tell, because that struct uses bfd_target_unknown_flavour and default_core_sniffer, it will never be used. Christian
On Mon, Jan 27, 2020 at 7:38 AM Christian Biesinger <cbiesinger@google.com> wrote: > > On Fri, Jan 24, 2020 at 5:37 PM Kamil Rytarowski <n54@gmx.com> wrote: > > > > On 24.01.2020 17:01, Christian Biesinger wrote: > > > On Fri, Jan 24, 2020 at 4:49 PM Kamil Rytarowski <n54@gmx.com> wrote: > > >> > > >> On 24.01.2020 16:35, Christian Biesinger via gdb-patches wrote: > > >>> On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: > > >>>> > > >>>> On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: > > >>>>> Hi Kamil, > > >>>>> > > >>>>> I have a related question. NetBSD applied this patch: > > >>>>> https://www.mail-archive.com/tech@openbsd.org/msg44100.html > > >>>>> > > >>>> > > >>>> Is this the right link? > > >>> > > >>> Yeah -- that patch changes a system header at the top and patches GDB > > >>> at the bottom. > > >>> > > >> > > >> This is not a change in NetBSD, so it is unrelated. > > > > > > My apologies, I completely misread that. I'll see if I can find where > > > NetBSD changed their FP register data structure, or perhaps your > > > downstream patch will still work (although that probably has to come > > > from one of y'all for copyright reasons?) > > > > > > > Please cherry-pick what you need and I will find the original author. > > Many people in NetBSD have FSF papers done. > > Thanks. I think this patch would probably be the most important since > it fixes a compile error: > https://github.com/NetBSD/pkgsrc-wip/blob/master/gdb-netbsd/patches/patch-gdb_arm-nbsd-nat.c > > However, I don't understand why arm_netbsd_core_fns / > fetch_core_registers was added. As far as I can tell, because that > struct uses bfd_target_unknown_flavour and default_core_sniffer, it > will never be used. Hi Kamil, I also filed https://github.com/NetBSD/pkgsrc-wip/issues/17 on some patches that can be dropped, and I upstreamed a couple of trivial/obvious patches you had. Christian
On 27.01.2020 13:38, Christian Biesinger via gdb-patches wrote: > On Fri, Jan 24, 2020 at 5:37 PM Kamil Rytarowski <n54@gmx.com> wrote: >> >> On 24.01.2020 17:01, Christian Biesinger wrote: >>> On Fri, Jan 24, 2020 at 4:49 PM Kamil Rytarowski <n54@gmx.com> wrote: >>>> >>>> On 24.01.2020 16:35, Christian Biesinger via gdb-patches wrote: >>>>> On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: >>>>>> >>>>>> On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: >>>>>>> Hi Kamil, >>>>>>> >>>>>>> I have a related question. NetBSD applied this patch: >>>>>>> https://www.mail-archive.com/tech@openbsd.org/msg44100.html >>>>>>> >>>>>> >>>>>> Is this the right link? >>>>> >>>>> Yeah -- that patch changes a system header at the top and patches GDB >>>>> at the bottom. >>>>> >>>> >>>> This is not a change in NetBSD, so it is unrelated. >>> >>> My apologies, I completely misread that. I'll see if I can find where >>> NetBSD changed their FP register data structure, or perhaps your >>> downstream patch will still work (although that probably has to come >>> from one of y'all for copyright reasons?) >>> >> >> Please cherry-pick what you need and I will find the original author. >> Many people in NetBSD have FSF papers done. > > Thanks. I think this patch would probably be the most important since > it fixes a compile error: > https://github.com/NetBSD/pkgsrc-wip/blob/master/gdb-netbsd/patches/patch-gdb_arm-nbsd-nat.c > > However, I don't understand why arm_netbsd_core_fns / > fetch_core_registers was added. As far as I can tell, because that > struct uses bfd_target_unknown_flavour and default_core_sniffer, it > will never be used. > > Christian > This looks like a leftover after a.out. It was removed upstream and we by a mistake keep it locally as a local modification. commit 1736a7bd96e8927c3f889a35f9153df4fd19d833 Author: Pedro Alves <palves@redhat.com> Date: Fri Dec 9 16:08:49 2016 +0000 gdb: Remove support for obsolete OSABIs and a.out gdb/ChangeLog: 2016-12-09 Pedro Alves <palves@redhat.com> a.out should be removed. We switched to ELF back in NetBSD 1.6/2.0 and don't have toolchain for it. We still support running old a.out binaries and plan to do it in foreseeable future, but attaching a debugger to these processes is not our priority.
On 05.02.2020 19:02, Christian Biesinger via gdb-patches wrote: > On Mon, Jan 27, 2020 at 7:38 AM Christian Biesinger > <cbiesinger@google.com> wrote: >> >> On Fri, Jan 24, 2020 at 5:37 PM Kamil Rytarowski <n54@gmx.com> wrote: >>> >>> On 24.01.2020 17:01, Christian Biesinger wrote: >>>> On Fri, Jan 24, 2020 at 4:49 PM Kamil Rytarowski <n54@gmx.com> wrote: >>>>> >>>>> On 24.01.2020 16:35, Christian Biesinger via gdb-patches wrote: >>>>>> On Fri, Jan 24, 2020 at 4:23 PM Kamil Rytarowski <n54@gmx.com> wrote: >>>>>>> >>>>>>> On 24.01.2020 15:53, Christian Biesinger via gdb-patches wrote: >>>>>>>> Hi Kamil, >>>>>>>> >>>>>>>> I have a related question. NetBSD applied this patch: >>>>>>>> https://www.mail-archive.com/tech@openbsd.org/msg44100.html >>>>>>>> >>>>>>> >>>>>>> Is this the right link? >>>>>> >>>>>> Yeah -- that patch changes a system header at the top and patches GDB >>>>>> at the bottom. >>>>>> >>>>> >>>>> This is not a change in NetBSD, so it is unrelated. >>>> >>>> My apologies, I completely misread that. I'll see if I can find where >>>> NetBSD changed their FP register data structure, or perhaps your >>>> downstream patch will still work (although that probably has to come >>>> from one of y'all for copyright reasons?) >>>> >>> >>> Please cherry-pick what you need and I will find the original author. >>> Many people in NetBSD have FSF papers done. >> >> Thanks. I think this patch would probably be the most important since >> it fixes a compile error: >> https://github.com/NetBSD/pkgsrc-wip/blob/master/gdb-netbsd/patches/patch-gdb_arm-nbsd-nat.c >> >> However, I don't understand why arm_netbsd_core_fns / >> fetch_core_registers was added. As far as I can tell, because that >> struct uses bfd_target_unknown_flavour and default_core_sniffer, it >> will never be used. > > Hi Kamil, > > I also filed https://github.com/NetBSD/pkgsrc-wip/issues/17 on some > patches that can be dropped, and I upstreamed a couple of > trivial/obvious patches you had. > > Christian > Thank you for your contribution!
diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c index 00f919194b..4844b51a3c 100644 --- a/gdb/arm-nbsd-nat.c +++ b/gdb/arm-nbsd-nat.c @@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ +/* We define this to get types like register_t. */ +#define _KMEMUSER #include "defs.h" #include "gdbcore.h" #include "inferior.h"