Re: contributing the RISC-V linux native port

Palmer Dabbelt
2018-08-07T06:27:22Z

On Mon, 06 Aug 2018 19:22:18 PDT (-0700), Jim Wilson wrote:
> I'm wondering about what level of functionality I need to reach before
> it would be reasonable to try to submit my gdb port. I have a lot of
> basic features working, setting breakpoints, run, cont, stepping,
> shared libraries, reading/writing int/fp registers, etc, but there are
> still a lot of details that need to be worked out for full
> functionality.
>
> My latest testsuite run results are
>
> === gdb Summary ===
>
> # of expected passes 45195
> # of unexpected failures 1159
> # of unexpected successes 3
> # of expected failures 56
> # of unknown successes 3
> # of known failures 63
> # of unresolved testcases 138
> # of untested testcases 117
> # of unsupported tests 121
>
> There are some obvious things broken. 32-bit float values in 64-bit
> FP registers aren't printed properly because they are NaN-boxed, and
> gdb doesn't know about that yet. I don't have support for signal
> handler frames yet. I only have integer register support for core
> files. I haven't tried to implement watchpoints yet. There are a lot
> of thread failures, 358 in gdb.thread, and apparently some in gdb.mi
> also, but there is a glibc patch from Andreas Schwab that I hope fixes
> some of them. Most of the rest of the failures I haven't categorized
> yet.
>
> Anyways, I'm wondering how much more work I need to do out of tree
> before I can try submitting my work.
>
> Also, I'm wondering about policy on branches in the gdb tree. Maybe
> it would make sense to move my work into a branch in the FSF gdb tree.
> I have my own github tree at the moment where I am doing work which is
> working fine for me, but it isn't easy for other people to find it.

While I'm a RISC-V GDB maintainer, I'm far from active so this doesn't carry
much weight.

In my opinion (having not looked at the code) I think this is sufficient to
bring the port upstream, as if I understand correctly GDB won't release again
for six months or so and we should be able to get the major issues cleaned up.
Since it looks like most of the actual bugs (as opposed to missing features)
cross projects it'd be great to be able to just point everyone to master on the
various repos to aid finding the relevant code. Plus, next time I try to debug
something I'll probably want to use it and I'm too lazy to find patches unless
they're upstream :)

Of course, I'll defer to the actual maintainers on this one.

Either way, thanks for getting the port in shape!