Compilation on Linux


I’m working through trying to get LLDB to compile on linux again - I’ve done the obvious fixes but there are a couple of questions I need to ask:

  • Has anyone successfully compiled LLDB with the latest clang SVN? The API appears to have changed significantly for some of the files in source/Expression, and I lack the expertise to fix the compile errors satisfactorily (for example, where a function now takes an extra argument).

  • The function “UpdateLoadedSections()”, only called from ProcessLinux calls a function (callback?) called SectionsLoaded() which is no longer in the codebase. The function header contains a FIXME that suggests delegation to the DynamicLoader plugin - Can I assume that as that plugin is now available the UpdateLoadedSections function is now deprecated and can be removed?

  • StackFrame::StackFrame now takes two extra arguments; unwind_idx and SymbolContext. I’ve duplicated unwind_idx from the original “idx” parameter for the moment (in Linuxthread.cpp), but how do I obtain a SymbolContext*?

  • Other than an absolute stackload of warnings (on GCC 4.1.2, yes, archaic I know) LLDB compiles alright.

If someone could either fix for lastest clang or point me in the right direction I can provide a patch, if you’re interested.



The LLDB sources currently compile with the following revision:

--revision {2010-08-02T16:00}

If you check those source out, it will take all of the llvm/clang changes out of the challenge for building on llvm. Currently if you always want to know which revision the sources are locked down to, you can check the "lldb/scripts/" file around line 28:

our $llvm_revision = "'{2010-08-02T16:00}'";

We tend not to keep up with all of the changes going into clang on a day to day basis right now, sorry for that.

Greg Clayton