[PATCH] RISC-V: Fix gdbserver problem with handling arch strings.

Maciej W. Rozycki macro@wdc.com
Fri Jan 24 13:32:00 GMT 2020


On Thu, 23 Jan 2020, Jim Wilson wrote:

> Maciej reported a problem found by his RISC-V gdbserver port.
> warning: while parsing target description (at line 4): Target description specified unknown architecture "riscv:rv64id"
> warning: Could not load XML target description; ignoring
> 
> We only have two arches defined, riscv:rv32 and riscv:rv64.  Both bfd and
> gdb are creating arch strings that have extension letters added to the base
> architecture.  The bfd_default_scan function requires an exact match, so
> these strings fail to map to a bfd_arch.  I think we should ignore the
> extension letters in a RISC-V specific scan function.

 I think it's an acceptable solution short-term; after all it's not going 
to regress functionality.  However ultimately I think we ought to actually
interpret these suffix letters and arm the disassembler accordingly.

> Tested with riscv{32,64}-{elf,linux} cross build and test with no regressions.

 I'll push it through GDB testing with `gdbserver' yet, once my current 
native testing has completed (which BTW will take till the end of today 
only as it seems to run ~4 times faster now; presumably some test cases do 
not time out anymore).

> Not committed yet in case anyone wanted to comment on it before I check it in.

 I'd suggest naming the new function `riscv_scan' or suchlike, even though 
it's static, so as not to pollute the generic namespace.  We even have a 
precedent already with `riscv_compatible' nearby.

 Thanks for the quick fix!

  Maciej



More information about the Binutils mailing list