In http://reviews.llvm.org/D7880 the initialization for LLGS was separated out so that LLGS could initialize only the components it needs to. This further reduces the set of components initialized for LLGS.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
It looks good to me, but I think you can remove the following modules also (haven't tested it):
ObjectContainerBSDArchive
ObjectContainerUniversalMachO
ObjectFileELF
ObjectFileMachO
ObjectFilePECOFF
DynamicLoaderPOSIXDYLD
DynamicLoaderMacOSXDYLD
DynamicLoaderDarwinKernel
What is it used for?
AFAIK it is only used by ProcessElfCore what is currently not initialized by LLGS. Is it mean we have to put back the initialization of ProcessElfCore into LLGS?
LLGS uses it to confirm that the target file has the correct architecture
(e.g. x86_64) before launch. If it doesn't have ObjectFileELF plugin
loaded, nothing can parse the ELF file.
Thanks for your explanation. It makes sense, but I think LLGS not necessarily have to parse any ELF file because it can be done on LLDB side (it already can send down the architecture of an executable). I suggest to leave it in LLGS for now, and if later we want to reduce the size of LLGS further, then we can remove it (possibly after some re-factoring).
Yes, just to confirm this is exactly what I was seeing when I tried to remove this. The long term removal plan sounds good to me too.
I don't see any removed component needed in LLGS and we can address the removal of the additional components later.