From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30139 invoked by alias); 8 Aug 2018 14:41:59 -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 30032 invoked by uid 89); 8 Aug 2018 14:41:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.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.2 spammy= X-HELO: mail-wm0-f68.google.com Received: from mail-wm0-f68.google.com (HELO mail-wm0-f68.google.com) (74.125.82.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 08 Aug 2018 14:41:57 +0000 Received: by mail-wm0-f68.google.com with SMTP id o18-v6so3063107wmc.0 for ; Wed, 08 Aug 2018 07:41:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Z7bz3IyJ/J/BzkDK8arLCIGphsj4HO5LQ/vh+GvO0uQ=; b=NNZkXQM1to458hGCAcDMlo0T7jmqbbfcjMcRfJPJqeU53NZ7f1J5LXtXAzIK32GBCL yegzyQK9j7kSFh9cTYqjV6GRabXx1q1//uEDOuJWFrjSys7C9qNUVq5xviEYDWq2CSrq RERbLMUWFzfa+RGgjqMUwcnpTJ08XNAGIYW+6GKbpBBg4rJuT5bEZnY+ncu9s+SKlLea 9xxAn4mgcSqov5JHRxl/FqLKxim+TfCN+JoU4HS/VM+gmOkHYm3U9uBIfZUBdabvh7Ig 0f2jh1An0FzIBDq5CZWpwzScP1pUcuhRLM58EPlbJTML4fZKA7ZdDVXRUk+00DYHNmVz FVYQ== Return-Path: Received: from localhost (host81-140-215-41.range81-140.btcentralplus.com. [81.140.215.41]) by smtp.gmail.com with ESMTPSA id r18-v6sm3652720wmh.28.2018.08.08.07.41.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 08 Aug 2018 07:41:54 -0700 (PDT) Date: Wed, 08 Aug 2018 14:41:00 -0000 From: Andrew Burgess To: Jim Wilson Cc: gdb-patches@sourceware.org Subject: Re: [PATCH 3/5] RISC-V: Add linux target support. Message-ID: <20180808144153.GN3155@embecosm.com> References: <20180808021638.7716-1-jimw@sifive.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180808021638.7716-1-jimw@sifive.com> X-Fortune: Nobody ever died from oven crude poisoning. X-Editor: GNU Emacs [ http://www.gnu.org/software/emacs ] User-Agent: Mutt/1.9.2 (2017-12-15) X-IsSubscribed: yes X-SW-Source: 2018-08/txt/msg00158.txt.bz2 * Jim Wilson [2018-08-07 19:16:38 -0700]: > Add initial target support for riscv*-linux*. > > gdb/ > * riscv-linux-tdep.c: New file. This seems fine to me, with a couple of minor issues... > --- > gdb/riscv-linux-tdep.c | 88 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 88 insertions(+) > create mode 100644 gdb/riscv-linux-tdep.c > > diff --git a/gdb/riscv-linux-tdep.c b/gdb/riscv-linux-tdep.c > new file mode 100644 > index 0000000000..c98dba70ca > --- /dev/null > +++ b/gdb/riscv-linux-tdep.c > @@ -0,0 +1,88 @@ > +/* Target-dependent code for GNU/Linux on RISC-V processors. > + Copyright (C) 2018 Free Software Foundation, Inc. > + > + This file is part of GDB. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +#include "defs.h" > +#include "riscv-tdep.h" > +#include "osabi.h" > +#include "glibc-tdep.h" > +#include "linux-tdep.h" > +#include "solib-svr4.h" > +#include "regset.h" > + > +static const struct regcache_map_entry riscv_linux_gregmap[] = > +{ > + { 1, RISCV_PC_REGNUM, 0 }, > + { 31, RISCV_RA_REGNUM, 0 }, /* x1 to x31 */ > + { 0 } > +}; > + > +const struct regset riscv_linux_gregset = > +{ > + riscv_linux_gregmap, regcache_supply_regset, regcache_collect_regset > +}; Could this not be static? Also, I think 'riscv_linux_gregmap' and 'riscv_linux_gregset' should both have comments against them, I'm pretty sure the expectation these days is that every definition has a comment.... Otherwise, this looks great, Thanks, Andrew > + > +/* Define hook for core file support. */ > + > +static void > +riscv_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, > + iterate_over_regset_sections_cb *cb, > + void *cb_data, > + const struct regcache *regcache) > +{ > + cb (".reg", (32 * riscv_isa_xlen (gdbarch)), > + &riscv_linux_gregset, NULL, cb_data); > + > + /* TODO: Add FP register support. */ > +} > + > +/* Initialize RISC-V Linux ABI info. */ > + > +static void > +riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) > +{ > + linux_init_abi (info, gdbarch); > + > + set_gdbarch_software_single_step (gdbarch, riscv_software_single_step); > + > + set_solib_svr4_fetch_link_map_offsets (gdbarch, > + (riscv_isa_xlen (gdbarch) == 4 > + ? svr4_ilp32_fetch_link_map_offsets > + : svr4_lp64_fetch_link_map_offsets)); > + > + /* GNU/Linux uses SVR4-style shared libraries. */ > + set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target); > + > + /* GNU/Linux uses the dynamic linker included in the GNU C Library. */ > + set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver); > + > + /* Enable TLS support. */ > + set_gdbarch_fetch_tls_load_module_address (gdbarch, > + svr4_fetch_objfile_link_map); > + > + set_gdbarch_iterate_over_regset_sections > + (gdbarch, riscv_linux_iterate_over_regset_sections); > +} > + > +/* Initialize RISC-V Linux target support. */ > + > +void > +_initialize_riscv_linux_tdep (void) > +{ > + gdbarch_register_osabi (bfd_arch_riscv, 0, GDB_OSABI_LINUX, > + riscv_linux_init_abi); > +} > -- > 2.17.1 >