Removing linux mips support

Hi all,

I propose to remove support for linux mips debugging. This basically amounts to deleting source/Plugins/Process/Linux/NativeRegisterContextLinux_mips64.{cpp,h}. My reasons for doing that are:

- This code is unmaintained (last non-mechanical change was in 2017) and untested (no public buildbots), so we don't know if even basic functionality works, or if it indeed builds.

- At the same, it is carrying a lot of technical debt, which is leaking out of the mips-specific files, and interfering with other development efforts. The last instance of this is D96766, which is adding FreeBSD mips support, but needs to work around linux specific knowledge leaking into supposedly generic code. This one should be fixable relatively easily (these days we already have precedents for similar things in x86 and arm code), but it needs someone who is willing to do that.

But that is not all. To support mips, we introduced two new fields into the RegisterInfo struct (dynamic_size_dwarf_{expr_bytes,len}). These are introducing a lot of clutter in all our RegisterInfo definitions (which we have **a lot** of) and are not really consistent with the long term vision of the gdb-remote protocol usage in lldb. These days, we have a different mechanism for this (added to support a similar feature in arm), it would be better to implement this feature in terms of that. I would tout this (removal of these fields) as the main benefit of dropping mips support.

So, unless someone willing to address these issues (I'm happy to provide support where I can), I propose we drop mips support. Generic mips support will remain (and hopefully be better tested) thanks to the FreeBSD mips port, so re-adding mips support should be a matter of reimplementing the linux bits.

regards,
Pavel

+1

This all sounds in line with the expectations we’ve laid out on the mailing list in the past for platform/language support.

Sounds very reasonable to me.

thanks for bringing this up!
-- adrian

A brief note on the FreeBSD mips support - the FreeBSD Foundation is
sponsoring Michał to do this work, but our primary non-x86 focus is
amd64. Other architectures that had old-style in-process FreeBSD
support (including mips) are in scope on a best-effort basis.

I hope that this does result in better testing of the generic mips
support and such. However, FreeBSD/mips users are going to need to use
and test this on an ongoing basis or we'll find ourselves in the same
situation, and will have to look at retiring it as well.

Oops, that doesn't make a lot of sense. I meant arm64 (AArch64) here.
Thanks to a couple of folks who pointed this out to me.

Thanks for the clarification, Ed. If FreeBSD mips code ends up bitrotting, it may indeed also suffer the same fate. However, this all depends on how much of it gets in the way of other things. Right now, the linux mips implementation stands in the way of adding the freebsd mips implementation cleanly (and a few other things), and this is the reason I'm proposing to remove it. Right now, I don't see any controversial bits in the new mips patch.

PSA: I'm going to proceed with the deletion later today.

thanks,
Pavel