From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by sourceware.org (Postfix) with ESMTPS id 09E7E3894C32 for ; Mon, 1 Mar 2021 10:32:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 09E7E3894C32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=andrew.burgess@embecosm.com Received: by mail-wr1-x434.google.com with SMTP id v15so15556938wrx.4 for ; Mon, 01 Mar 2021 02:32:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=gFJ4YZc0XSy/zBNbuQyL6xUyOOjtWL61PWnHW3M9LqA=; b=NrvYPguvZRZYDZdlfWf1AsjvMm/vd3SpdUJe4PiACsbK15TI5iDyEFsrFN8vJvhR7H DF5nt5t2YOoPoQpzdwoYxu/Y/o5fdQMLCRI+CCnOyA55m5m6lf20BO+f68z8HxHhjsep mDK3YDdTHloiU1wtuae1pN4R1XalMhcOIWJC11hWZF1vmsFWG08mLtSgpYQyKx7g8r28 yqDpSwQAPVulpOlsZGxe0WPkEJuviaeGEBKTAmMbSRy5zpthcNuk1GXTcV3VRDeEChKn gNtzbPKBf2Ra1WMVyl7PormLX9MUJcp+uwGVwDj76b+a208S/o9on7PZoeb4RAOLUOVo +7WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=gFJ4YZc0XSy/zBNbuQyL6xUyOOjtWL61PWnHW3M9LqA=; b=oFMwwDu3S16zGxufdP2c1U3CBtB/ZPg7Xb3HQ0vqmVlV8KrQ654YyDJFRsb4QsNJ3W 5pWMNbEC4jG0tKWAC1C+lcn4AHi6e23Sfl4Quttpjl3OIiuHasVbUQlbqVZ+c0g7mP9d Kzr+gV49i1RPgyW0zOmFvHTrFB9AFhdvvVchbu7h5YsRG8F3+L6CTIuJtt9RKgwNNrrr fgq8a7vWrHIEkkVDY7Uwf2w28+2fSMC4x9pqs8Jgs4pfr4LWmLNR1j3mp2R3VavEruiq S4bAzX0/emPXbfJqaB2CALSiP4NacmqFaqVeRvNOIwY9iUwTkaM/r2Voakc9E5SRFbOb F0lw== X-Gm-Message-State: AOAM532TaAiG6fOgcGCQGqpAg70DYbsXQ2FbMgSc5pa6+Hsn+02sD+Ws zubKzElVsbjuL/c1VTJNB98zR/J60dU2fw== X-Google-Smtp-Source: ABdhPJzFxg9RgIbB3iPok86lATz5i+E++OzgiGKgfthN7My+g/lc1VDUUOpC89F7ENB65Dv6rLKpxA== X-Received: by 2002:adf:fc46:: with SMTP id e6mr16323368wrs.389.1614594762865; Mon, 01 Mar 2021 02:32:42 -0800 (PST) Received: from localhost (host86-186-80-154.range86-186.btcentralplus.com. [86.186.80.154]) by smtp.gmail.com with ESMTPSA id w131sm9926540wmb.8.2021.03.01.02.32.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Mar 2021 02:32:42 -0800 (PST) Date: Mon, 1 Mar 2021 10:32:41 +0000 From: Andrew Burgess To: gdb-patches@sourceware.org, binutils@sourceware.org Subject: Re: [PATCHv3 0/9] Bare-metal core dumps for RISC-V Message-ID: <20210301103241.GM265215@embecosm.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Operating-System: Linux/5.8.13-100.fc31.x86_64 (x86_64) X-Uptime: 10:30:09 up 82 days, 15:14, X-Editor: GNU Emacs [ http://www.gnu.org/software/emacs ] X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Mar 2021 10:32:50 -0000 Ping! I'm planning to start merging this series later this week. The code was all reviewed in the v2 series. The v3 mostly moves stuff around to avoid adding dependencies on ELF support. I still wonder if there's a better solution than the #ifdef block added in patches 5 and 9, but these are pretty self-contained. If someone suggests a better approach later on then I'm happy to refactor this code. Thanks, Andrew * Andrew Burgess [2021-02-15 17:29:03 +0000]: > After I pushed patch #1 from the v2 series it was pointed out that > this broke any build of GDB for non-ELF targets. I then reverted > patch #1. Now I'm back with an updated series. > > For testing the build I have been using 'x86_64-apple-darwin20.3.0' as > a non-ELF target. I haven't done any actual functional testing on > this target other than "it builds", but that's more than I did before > (for non-ELF targets). > > Between v2 and v3 then the changes are basically around the idea of > not calling ELF specific functions from any generic code. As far as > possible I wanted to avoid just blocking code out with #ifdef, though > I did use this trick in a limited way in patches #5 and #9, hopefully > this is acceptable, though I'm open to suggestions for better ways to > structure the code in these patches. > > Here's a summary of which patches have changed: > > (1) - Changed, common code from Linux and FreeBSD targets is now split > between gcore.c (for non-ELF code) and a new file gcore-elf.c > (for ELF specific code). Changes to configure.ac ensure the ELF > specific file is only pulled in when needed. This probably > needs a new review. > > (2) - Minor updates to address Jim's review feedback. Reviews are > welcome, but I'm considering this patch approved. > > (3) - Code to add the target description note is moved to gcore-elf.c, > and each target must call this code (if the target is creating > an ELF based core file). I don't like this as much as the > previous code where the target description note was added in one > place, but I can't see a good way to do this without adding a > #ifdef block to gcore.c. This probably needs a new review. > > (4) - Minor updates to address Jim's review feedback. Reviews are > welcome, but I'm considering this patch approved. > > (5) - The common bare metal core dump code is now in elf-none-tdep.c. > This is then called from the riscv-none-tdep.c code ONLY if we > have ELF support. This is the use of '#ifdef HAVE_ELF' which is > a little yuck, but I can't see a better solution. This probably > needs a new review. > > (6) - Minor updates to address Jim's review feedback. Reviews are > welcome, but I'm considering this patch approved. > > (7) - No changes. Reviews are welcome, but I'm considering this patch > approved. > > (8) - No changes. Reviews are welcome, but I'm considering this patch > approved. > > (9) - No significant changes. Like patch #5 it now includes a '#ifdef > HAVE_ELF' block in order to guard the call from arm-none-tdep.c > to elf-none-tdep.c. I'd prefer reviews of this approach be > addressed to patch #5, I'll apply any feedback I get there to > this patch too. > > --- > > Andrew Burgess (9): > gdb: unify parts of the Linux and FreeBSD core dumping code > bfd/binutils: support for gdb target descriptions in the core file > gdb: write target description into core file > bfd/riscv: prepare to handle bare metal core dump creation > gdb/riscv: introduce bare metal core dump support > bfd/binutils: add support for RISC-V CSRs in core files > gdb/riscv: make riscv target description names global > gdb/riscv: write CSRs into baremetal core dumps > gdb/arm: add support for bare-metal core dumps > > bfd/ChangeLog | 27 ++++++ > bfd/elf-bfd.h | 4 + > bfd/elf.c | 70 ++++++++++++++ > bfd/elfnn-riscv.c | 84 ++++++++++++++++- > binutils/ChangeLog | 10 ++ > binutils/readelf.c | 4 + > gdb/ChangeLog | 88 +++++++++++++++++ > gdb/Makefile.in | 8 ++ > gdb/arm-none-tdep.c | 213 ++++++++++++++++++++++++++++++++++++++++++ > gdb/configure | 3 +- > gdb/configure.ac | 3 +- > gdb/configure.tgt | 5 +- > gdb/corelow.c | 24 +++++ > gdb/elf-none-tdep.c | 126 +++++++++++++++++++++++++ > gdb/elf-none-tdep.h | 30 ++++++ > gdb/fbsd-tdep.c | 137 ++------------------------- > gdb/gcore-elf.c | 166 ++++++++++++++++++++++++++++++++ > gdb/gcore-elf.h | 47 ++++++++++ > gdb/gcore.c | 21 +++++ > gdb/gcore.h | 9 ++ > gdb/linux-tdep.c | 146 +++-------------------------- > gdb/riscv-none-tdep.c | 173 ++++++++++++++++++++++++++++++++++ > gdb/riscv-tdep.c | 14 ++- > gdb/riscv-tdep.h | 3 + > include/ChangeLog | 10 ++ > include/elf/common.h | 6 ++ > 26 files changed, 1159 insertions(+), 272 deletions(-) > create mode 100644 gdb/arm-none-tdep.c > create mode 100644 gdb/elf-none-tdep.c > create mode 100644 gdb/elf-none-tdep.h > create mode 100644 gdb/gcore-elf.c > create mode 100644 gdb/gcore-elf.h > create mode 100644 gdb/riscv-none-tdep.c > > -- > 2.25.4 >