[lldb-dev] [PATCH] Host.cpp and RegisterContextLinux_x86_64.cpp fixes

Greg Clayton gclayton at apple.com
Mon Feb 7 09:56:55 PST 2011


On Feb 5, 2011, at 5:40 PM, Stephen Wilson wrote:

> Jai Menon <jmenon86 at gmail.com> writes:
> 
>> Hello,
>> 
>> Patch 1 squashes these fixes into a single diff
>> - r124942 removed a sys/wait.h inclusion. This is incorrect for Linux.
> 
> Looks good.
> 
>> - SetArch was removed which breaks the build on Linux.
> 
> Looks OK to unbreak the build.  Eventually we should probably return an
> ArchSpec based on the host compile time triple (say from
> llvm/Config/config.h).

I am in the process of adding a patch that adds more members to lldb_private::ArchSpec:

lldb::ByteOrder m_byte_order;
uint32_t m_addr_byte_size;
lldb::Triple m_triple;


So now the ArchSpec class will have:

class ArchSpec {
...

protected:

    lldb::ArchitectureType m_type;
    uint32_t m_cpu;
    uint32_t m_sub;
    lldb::ByteOrder m_byte_order;
    uint32_t m_addr_byte_size;
    lldb::Triple m_triple;

};


This will allows for architectures to be specified in an alternate byte order (big endian ARM) and also allow us to water down the current specific arch down to a target triple that has more generic enums for the arch, vendor and OS.

Many classes that have static FindPlugin() functions current take an ArchSpec which, in its current form, isn't enough to make an informed decision on which plug-in to chose. With the lldb::Triple added, it will be much easier and more correct. This patch touches a bunch of areas of the code, but I should commit it soon.

> 
>> - Linux doesn't support RTLD_FIRST so apply that mode conditionally.
> 
> Why conditionally?  Perhaps we should just not pass this flag at all so
> that we get similar behavior from this method on all posixy systems --
> just a thought.

I will check to make sure RTLD_FIRST isn't something we need on MacOSX with our dynamic linker guru, and if not, then I will leave the code as is. Else, I will move a copy of Host::DynamicLibraryOpen() over into Host.mm (the apple specific Host functions) and conditionally compile it out in Host.cpp for non-apple variants.
> 
>> Patch 2 fixes a missing include.
> 
> Looks good.
> 
>> On an unrelated note, is there a git mirror of lldb? Would patches
>> created with git be okay?
> 
> I create all my patches using git and send them to lldb-commits for
> review.  There is no official lldb git mirror.  I try to keep a git tree
> up to date (time permitting) here: https://github.com/eightcien/lldb/
> 
> Linux work is on the lldb-linux branch.
> 
> --
> steve
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev





More information about the lldb-dev mailing list