[lldb-dev] Patch to fix REPL for ARMv7 & ARMv6 on linux

William Dillon via lldb-dev lldb-dev at lists.llvm.org
Thu Jan 14 11:32:20 PST 2016

Hi again, everyone

I’d like to ping on this patch now that the 3.8 branch is fairly new, and merging it over is fairly straight-forward.  

Thanks in advance for your comments!
- Will

> There is a small change that enables correct calculation of arm sub architectures while using the REPL on arm-linux.  As you may of may or may not know, linux appends ‘l’ to arm architecture versions to denote little endian.  This sometimes interferes with the determination of the architecture in the triple.  I experimented with adding sub architecture entries for these within lldb, but I discovered a simpler (and less invasive) method.  Because LLVM already knows how to handle some of these cases (I have a patch submitted for review that enables v6l; v7l already works), I am relying on llvm to clean it up.  The gist of it is that the llvm constructor (when given a triple string) retains the provided string unless an accessor mutates it.  Meanwhile, the accessors for the components go through the aliasing and parsing logic.  This code detects whether the sub-architecture that armv6l or armv7l aliases to is detected, and re-sets the architecture in the triple.  This overwrites the architecture that comes from linux, thus sanitizing it.
> Some kind of solution is required for the REPL to work on arm-linux.  Without it, the REPL crashes.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: lldb.diff
Type: application/octet-stream
Size: 956 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20160114/d185649b/attachment.obj>
-------------- next part --------------

More information about the lldb-dev mailing list