Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@sifive.com>
To: tom@tromey.com
Cc: Jim Wilson <jimw@sifive.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH 5/5] RISC-V: Add configure support riscv*-linux*.
Date: Wed, 08 Aug 2018 20:49:00 -0000	[thread overview]
Message-ID: <mhng-434a3c5a-e632-4132-8fbf-bca82f51a81c@palmer-si-x1c4> (raw)
In-Reply-To: <871sb8ahs9.fsf@tromey.com>

On Wed, 08 Aug 2018 10:29:26 PDT (-0700), tom@tromey.com wrote:
>>>>>> "Jim" == Jim Wilson <jimw@sifive.com> writes:
>
> Jim> 	* Makefile.in (ALLDEPFILES): Add riscv-linux-nat.c, riscv-linux-tdep.c.
>
> This doesn't mention the ALL_TARGET_OBS change.
>
> Jim> 	* NEWS: Mention new GNU/Linux RISC-V target.
>
> Eli should review this bit.
>
> Jim> 	* configure.host: Add riscv*-*-linux*.
> Jim> 	* configure.nat: Add riscv*.
> Jim> 	* configure.tgt: Add riscv*-*-linux*.
>
> These parts are ok.
>
> Jim> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> Jim> index 8c744d70c0..280b3b1283 100644
> Jim> --- a/gdb/Makefile.in
> Jim> +++ b/gdb/Makefile.in
> Jim> @@ -752,6 +752,8 @@ ALL_TARGET_OBS = \
> Jim>  	ppc-sysv-tdep.o \
> Jim>  	ppc64-tdep.o \
> Jim>  	ravenscar-thread.o \
> Jim> +	riscv-linux-nat.o \
> Jim> +	riscv-linux-tdep.o \
> Jim>  	riscv-tdep.o \
> Jim>  	rl78-tdep.o \
> Jim>  	rs6000-aix-tdep.o \
>
> I think only the tdep file should be listed here.
>
> ALL_TARGET_OBS is used when --enable-targets=all is given.
> In this case, we would not want the riscv-linux-nat.o object to be
> linked in, since we're not necessarily building on linux.
>
> Is riscv a 64-bit architecture?  (I don't know.)  If so, gdb still
> splits 64-bit targets into a separate variable, I think in case one is
> building on a 32-bit machine without a 64-bit integer type (or maybe if
> you didn't want to use the extra memory to inflate a bunch of type
> sizes, not sure).  In this case you'd want to add the tdep file to
> ALL_64_TARGET_OBS instead.

RISC-V is actually a family of ISAs, not one specific ISA.  There are 4 base 
ISAs: rv32e (16 32-bit registers), rv32i (32 32-bit registers), rv64i (32 
64-bit registers), and rv128i (32 128-bit revisers).  They all look very 
similar and we developed the ports together, so they share the vast majority of 
the source.  Since they're so similar we try to make sure that the various 
toolchain components always support all of them (aside from rv128i, which 
nobody has started serious work on and is only a placeholder in the spec).

To enable this support in BFD we decided to put both the 32-bit and 64-bit 
RISC-V targets in the list of 32-bit targets.  This allows toolchains 
configured with the 32-bit tuples to generate code for the 64-bit targets, 
which when coupled with multilib gives you a functioning setup.

I'd like to keep this behavior in GDB if possible, so "riscv32-unknown-elf-gdb" 
can debug rv64i-based targets.  One of my goals is to rely as little as 
possible on the tuple so users don't have to go find and build a whole bunch of 
them -- whenever I'm a user I find that to be a pain.

> I wonder if this 32/64 bit thing is needed any more.

Part of our rationale for doing this was that if you can build GCC 7 (the first 
version we support), then your host probably has support for 64-bit integer 
types.  Nobody else has seemed to notice yet, but there also aren't that many 
RISC-V users so we're far from a representative sample.


  parent reply	other threads:[~2018-08-08 20:49 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-08  2:12 [PATCH 0/5] RISC-V Linux native port Jim Wilson
2018-08-08  2:15 ` [PATCH 1/5] RISC-V: Make riscv_isa_xlen a global function Jim Wilson
2018-08-08 12:42   ` Andrew Burgess
2018-08-08 17:55     ` Jim Wilson
2018-08-08 19:18   ` Simon Marchi
2018-08-08  2:16 ` [PATCH 3/5] RISC-V: Add linux target support Jim Wilson
2018-08-08 14:41   ` Andrew Burgess
2018-08-08 18:19     ` Jim Wilson
2018-08-08 18:35       ` Jim Wilson
2018-08-09 20:40         ` Jim Wilson
2018-08-08  2:16 ` [PATCH 2/5] RISC-V: Add software single step support Jim Wilson
2018-08-08 12:50   ` Andrew Burgess
2018-08-08 17:55     ` Jim Wilson
2018-08-08  2:17 ` [PATCH 4/5] RISC-V: Add native linux support Jim Wilson
2018-08-08 15:58   ` Andrew Burgess
2018-08-08 23:36     ` Jim Wilson
2018-08-08 23:39       ` Jim Wilson
2018-08-09  8:42         ` Andrew Burgess
2018-08-09 20:41           ` Jim Wilson
2018-10-25 10:49         ` Andreas Schwab
2018-10-25 11:09           ` Andrew Burgess
2018-10-25 12:06             ` Pedro Alves
2018-10-28 11:23               ` Andrew Burgess
2018-10-25 17:55             ` John Baldwin
2018-10-25 18:17               ` Jim Wilson
2018-10-25 19:19                 ` John Baldwin
2018-10-27  6:07                   ` Palmer Dabbelt
2018-10-29  8:50                 ` Andreas Schwab
2018-10-25 16:40           ` Jim Wilson
2018-08-08  2:17 ` [PATCH 5/5] RISC-V: Add configure support riscv*-linux* Jim Wilson
2018-08-08 16:00   ` Andrew Burgess
2018-08-08 17:30   ` Tom Tromey
2018-08-08 18:22     ` Eli Zaretskii
2018-08-08 20:49     ` Palmer Dabbelt [this message]
2018-08-08 23:26       ` Tom Tromey
2018-08-08 23:29         ` Tom Tromey
2018-08-09  2:36         ` Eli Zaretskii
2018-08-09  3:43           ` Jim Wilson
2018-08-09  4:55             ` Tom Tromey
2018-08-09  7:05             ` Andreas Schwab
2018-08-09 12:55             ` Eli Zaretskii
2018-08-09 17:25               ` Jim Wilson
2018-08-09  0:25     ` Jim Wilson
2018-08-09  0:29       ` [PATCH 5/5] RISC-V: Add configure support for riscv*-linux* Jim Wilson
2018-08-09  2:39         ` Eli Zaretskii
2018-08-09 15:57         ` Tom Tromey
2018-08-09 20:42           ` Jim Wilson
2018-08-08 12:41 ` [PATCH 0/5] RISC-V Linux native port Andrew Burgess
2018-08-08 17:41   ` Jim Wilson
2018-08-08 18:16     ` Andrew Burgess
2018-08-08 18:42       ` Jim Wilson
2018-08-09  3:18         ` Palmer Dabbelt
2018-08-10 18:04 ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=mhng-434a3c5a-e632-4132-8fbf-bca82f51a81c@palmer-si-x1c4 \
    --to=palmer@sifive.com \
    --cc=gdb-patches@sourceware.org \
    --cc=jimw@sifive.com \
    --cc=tom@tromey.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox