Re: [PATCH 5/5] RISC-V: Add configure support riscv*-linux*.

Jim Wilson
2018-08-09T17:25:33Z

On Thu, Aug 9, 2018 at 5:55 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> Thanks. So you are saying that building on a 64-bit hosts will enable
> this by default, while a 32-bit build with --enable-64-bit-bfd only
> makes sense if --enable-targets=all is also used, is that right?

I didn't actually test that, but trying it, yes, this is how it works.
If I'm on a 32-bit host, and use --enable-targets=all, I only get
32-bit targets enabled. If I'm on a 32-bit host and use
--enable-targets=all --enable-64-bit-bfd then I get both 32-bit and
64-bit targets enabled. This requires that the C/C++ compiler
supports long long.

FYI for my riscv build experiment, with an unpatched gdb i.e. only the
riscv bare metal support, a 32-bit hosted --enable-targets=all gdb
does build and run. There is no bfd elf riscv support, only the bfd
cpu-riscv.o file was built. The gdb riscv-tdep.o file was built and
linked in. But without the bfd support I can't trigger it, so it
appears to be harmless dead code. If I load a riscv32-elf binary,
info target just says elf32-little, and disassembling code gives me
ARM v7 instructions, which must be the default if it can't recognize
an object file. I think that there can only be a problem if a gdb
target port is making direct calls into the bfd target elf support, in
which case that target port would have to be in the 64-bit object file
list. The riscv linux port is not doing that currently, and I'm not
sure if it ever would need to. But I can try another build after I
get my riscv linux patches all checked in.

Jim