[lldb-dev] Unifying source/Host (Mac/Linux/BSD)
Greg Clayton
gclayton at apple.com
Tue Sep 7 10:19:52 PDT 2010
Jay,
that patch sounds great, please feel free to commit it if you have commit access.
Anything that can help LLDB build on more platforms is a must have.
Greg
On Sep 4, 2010, at 4:09 PM, Jay L. T. Cornwall wrote:
> Hi,
>
> A couple of months ago LLDB had skeleton Linux support. The status of
> this port has degraded to unbuildable through flux in program interfaces
> and through changes to unnecessarily duplicated code.
>
> This affects two main areas: source/Host and source/Plugins/Process.
>
> To reverse this decline, and to begin extending support to the BSD
> family, I propose a restructuring of source/Host. It currently looks
> like this:
>
> Host/linux/{Host.cpp,Symbols.cpp,TimeValue.cpp}
> Host/macosx/{cfcpp,Host.mm,Symbols.cpp,TimeValue.cpp}
> Host/posix/{Condition.cpp,Mutex.cpp}
>
> Large pieces of code in Host.cpp/Host.mm were identical but have drifted
> with development on the Mac side. I propose:
>
> Host/common/{Condition.cpp,Host.cpp,Mutex.cpp,Symbols.cpp,TimeValue.cpp}
> Host/macosx/{cfcpp,Host.mm}
>
> As much common code as possible is factored into Host.cpp, with Host.mm
> containing Obj C++ and cfcpp code. Preprocessor guards are used to
> insert platform-specific code into largely platform-independent
> functions. Factoring into API-specific directories (like POSIX, 4.4BSD,
> portable, etc.) became unwieldy when I tried it, to no real advantage.
>
> I have a patch which implements this (~160KB, mostly moving functions
> around, so I didn't attach it but see [1]) for Mac OS X, Linux and
> FreeBSD. This patch is a prerequisite for other patches that I'm working
> on to restore and improve cross-platform functionality. Together these
> build LLDB with very limited functionality on all platforms.
>
> Is this patch of interest, or would you be able to suggest a better way
> to begin tackling this problem?
>
> Thanks,
>
> [1] http://www.jcornwall.me.uk/temp/lldb-host-unify.patch
> (requires manual SVN removal of dead files/directories if applied)
>
> --
> Jay L. T. Cornwall
> http://www.jcornwall.me.uk/
> _______________________________________________
> 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