[lldb-dev] Removing linux mips support

Pavel Labath via lldb-dev lldb-dev at lists.llvm.org
Tue Mar 9 00:24:01 PST 2021


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


More information about the lldb-dev mailing list