<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 29, 2021 at 8:29 AM <<a href="mailto:Jan.Sommer@dlr.de">Jan.Sommer@dlr.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Just tried again with the rv32imac BSP.<br>
With this gdb works.<br></blockquote><div><br></div><div>I was poking at the gdb source and found the code in question in riscv-tdep.c:<br><br><br>  /* In theory a binary compiled for RV32 could run on an RV64 target,<br>     however, this has not been tested in GDB yet, so for now we require<br>     that the requested xlen match the targets xlen.  */<br>  if (abi_features.xlen != features.xlen)<br>    error (_("bfd requires xlen %d, but target has xlen %d"),<br>        abi_features.xlen, features.xlen);<br>  /* We do support running binaries compiled for 32-bit float on targets<br>     with 64-bit float, so we only complain if the binary requires more<br>     than the target has available.  */<br>  if (abi_features.flen > features.flen)<br>    error (_("bfd requires flen %d, but target has flen %d"),<br>     abi_features.flen, features.flen);<br></div><div><br></div><div>I'm reading that as the qemu configuration doesn't support the floating point</div><div>width required for 64-bit riscv.</div><div><br></div><div>In one of my test directories, I had different qemu's for 32-bit and 64-bit </div><div>riscv. Do you? Maybe that makes a difference.</div><div><br></div><div>--joel</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Best regards,<br>
<br>
    Jan<br>
<br>
> -----Original Message-----<br>
> From: users <<a href="mailto:users-bounces@rtems.org" target="_blank">users-bounces@rtems.org</a>> On Behalf Of <a href="mailto:Jan.Sommer@dlr.de" target="_blank">Jan.Sommer@dlr.de</a><br>
> Sent: Friday, January 29, 2021 3:10 PM<br>
> To: <a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>; <a href="mailto:jiri@gaisler.se" target="_blank">jiri@gaisler.se</a><br>
> Cc: <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
> Subject: RE: riscv: gdb cannot connect to rtems runnin in qemu<br>
> <br>
> <br>
> <br>
> > From: Joel Sherrill <<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>><br>
> ><br>
> >On Fri, Jan 29, 2021 at 7:20 AM <<a href="mailto:Jan.Sommer@dlr.de" target="_blank">Jan.Sommer@dlr.de</a>> wrote:<br>
> >> Hello<br>
> >><br>
> >> I just tried to debug a riscv test program running in qemu.<br>
> >> However, gdb could not establish a connection to qemu and produced the<br>
> following error:<br>
> >> /tmp/rtems/riscv❯ riscv-rtems6-gdb ticker.exe GNU gdb (GDB)<br>
> >> 10.1.90.20210125-git [..]<br>
> >><br>
> >> For help, type "help".<br>
> >> Type "apropos word" to search for commands related to "word"...<br>
> >> Reading symbols from<br>
> /tools/modulesystem/tools/rtems/rtems6/install/bsps/riscv-<br>
> rtems6/grv32imafdc-smp/testsuites/samples/ticker.exe...<br>
> >> (gdb) target remote :1234<br>
> >> Remote debugging using :1234<br>
> >> bfd requires flen 8, but target has flen 4<br>
> ><br>
> > griscv are Jiri's BSPs and should run on sis and be able to be debugged that<br>
> way.<br>
> ><br>
> > He should know if they worked on qemu and he was able to connect gdb.<br>
> ><br>
> <br>
> Sorry for the confusion. Jiri already told me previously that for running on<br>
> qemu I need to use the BSPs without a "g" like rv32imafdc.<br>
> That's what I did for my test application. For testing with ticker.exe I chose<br>
> the wrong directory.<br>
> To clarify, I use the rv32imafdc BSP to run on qemu.<br>
> The application runs fine, but debugging it through the qemu gdb-server<br>
> does not work.<br>
> This does also happen with the ticker.exe of the rv32imafdc BSP.<br>
> <br>
> Best regards,<br>
> <br>
>     Jan<br>
> <br>
> > Otherwise, this looks like a potential mismatch of 32 and 64 bit stuff<br>
> > like gdb wasn't built with both 32 and 64 bit riscv support. Which<br>
> > seems odd to me because it lives in the same repo as binutils and<br>
> > should have a comparable build of binutils.<br>
> ><br>
> ><br>
> >> The tools and rtems are built from master a couple of days ago.<br>
> >> I used the following command line for qemu (v. 4.2.0):<br>
> >> qemu-system-riscv32 -nographic -machine virt -m 2G -nographic -net<br>
> >> none -serial mon:stdio -bios /tmp/riscv/ticker.exe -s -S<br>
> >><br>
> >> Does anyone have a hint if the problem is with qemu, gdb or rtems?<br>
> >> Without gdb the program runs normally in qemu.<br>
> >><br>
> >> Best regards,<br>
> >><br>
> >>     Jan<br>
> >><br>
> >> Deutsches Zentrum für Luft- und Raumfahrt e. V. (DLR) German<br>
> >> Aerospace Center Institute for Software Technology | Software for<br>
> >> Space Systems and Interactive Visualization | Lilienthalplatz 7 |<br>
> >> 38108 Braunschweig | Germany<br>
> >><br>
> >> Jan Sommer<br>
> ><br>
> > _______________________________________________<br>
> users mailing list<br>
> <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/users</a><br>
> <br>
> _______________________________________________<br>
> users mailing list<br>
> <a href="mailto:users@rtems.org" target="_blank">users@rtems.org</a><br>
> <a href="http://lists.rtems.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/users</a><br>
</blockquote></div></div>