Sure, but that's why I said it might be worth at least brainstorming a better way to organize it. Doesn't mean anyone has to tackle that right now, but just knowing what a better separation might look like is useful in and of itself.
On Tue, Aug 26, 2014 at 3:03 PM, Todd Fiala <tfi...@google.com> wrote: > I'm picking my battles in the interest of getting things done, Zach :-P > > > On Tue, Aug 26, 2014 at 3:02 PM, Zachary Turner <ztur...@google.com> > wrote: > >> I feel like relying on dead code elimination is a crutch to workaround an >> improperly layered set of libraries. It gets the job done with the least >> amount of programmer effort involved, but it might be worth at least >> brainstorming a better long-term solution and finding a way to split the >> libraries apart in such a way that llgs can bring in only the things it >> needs. Even if doing the actual split up front might be untenable due to >> time constraints or other factors, having a clear direction regarding an >> "end state" would perhaps allow new code to get fit into this model when >> it's written, and refactoring toward the end goal to happen gradually over >> time, as time permits. >> >> >> On Tue, Aug 26, 2014 at 12:21 PM, Todd Fiala <tfi...@google.com> wrote: >> >>> So here I *think* we want to do something that will let the linker dead >>> code elimination be able to figure out which modules it doesn't need. >>> Which means I think we really want the call graph for initializing the >>> lighter apps (lldb-platform, lldb-gdbserver) to have a method they call >>> which initializes the always-present items (i.e. the core). Then we can >>> have the heavier apps (lldb) call the core initialization, then layer on >>> the higher-level systems. >>> >>> >>> >>> ---------- Forwarded message ---------- >>> From: Todd Fiala <tfi...@google.com> >>> Date: Tue, Aug 26, 2014 at 12:18 PM >>> Subject: Re: [Lldb-commits] [lldb] r216238 - Add missing >>> HostInfo::Initialize() in llgs. >>> To: Greg Clayton <gclay...@apple.com> >>> Cc: Todd Fiala <todd.fi...@gmail.com>, lldb-commits < >>> lldb-comm...@cs.uiuc.edu> >>> >>> >>> Ok back looking at this for real. >>> >>> So I'm going to need to adjust Debugger::Initalize() or use an >>> alternative installation path. Right now it goes and calls >>> lldb_private::Initialize(), which pretty much brings in the whole world. >>> llgs needs to be *thin*, as we're counting on static linkage and dead code >>> elimination to cut out the bulk of the exe size. There is a ton more stuff >>> initialized in lldb_private::Initialize() than we need in llgs. >>> >>> (e.g. ProcessLinux, DynamicLoader*, language runtimes, etc. --- none of >>> those should be getting initialized in llgs). >>> >>> >>> >>> >>> On Tue, Aug 26, 2014 at 11:52 AM, Todd Fiala <tfi...@google.com> wrote: >>> >>>> Ok - but - are we okay with moving PluginManager::Initialize() within >>>> there? If so, we're good. Because HostInfo::Initialize() needs to come >>>> *before* PluginManager::Initialize(). >>>> >>>> Seems reasonable, I just need to peek where we're initializing >>>> PluginManager. >>>> >>>> >>>> On Tue, Aug 26, 2014 at 11:51 AM, Greg Clayton <gclay...@apple.com> >>>> wrote: >>>> >>>>> then HostInfo::Initialize() should go first within >>>>> Debugger::Initialize() and HostInfo::Terminate() should go last in >>>>> Debugger::Terminate(). >>>>> >>>>> > On Aug 26, 2014, at 11:46 AM, Todd Fiala <tfi...@google.com> wrote: >>>>> > >>>>> > > But I think Debugger depends on HostInfo being initialized first. >>>>> > >>>>> > Rather I meant: >>>>> > * PluginManager::Initialize() requires HostInfo to already be >>>>> initialized. >>>>> > * Debugger::Initialize() expects PluginManager is already >>>>> initialized. >>>>> > >>>>> > >>>>> > On Tue, Aug 26, 2014 at 11:44 AM, Todd Fiala <tfi...@google.com> >>>>> wrote: >>>>> > There might be an issue there. >>>>> > >>>>> > PluginManager uses the file system initialization. But I think >>>>> Debugger depends on HostInfo being initialized first. >>>>> > >>>>> > I'll look and see if I can detangle that. >>>>> > >>>>> > >>>>> > On Tue, Aug 26, 2014 at 11:43 AM, Todd Fiala <tfi...@google.com> >>>>> wrote: >>>>> > Ah ok. I'll move those in a minute. Another check-in coming >>>>> shortly before. >>>>> > >>>>> > >>>>> > On Tue, Aug 26, 2014 at 11:34 AM, Greg Clayton <gclay...@apple.com> >>>>> wrote: >>>>> > Todd: >>>>> > >>>>> > HostInfo::Intialize() should be done in Debugger::Initialize() >>>>> > HostInfo::Terminate() should be done in Debugger::Terminate() >>>>> > >>>>> > We want there to be single call to initialize everything and >>>>> terminate everything and this is done via the Debugger calls. >>>>> > >>>>> > > On Aug 21, 2014, at 3:41 PM, Todd Fiala <todd.fi...@gmail.com> >>>>> wrote: >>>>> > > >>>>> > > Author: tfiala >>>>> > > Date: Thu Aug 21 17:41:25 2014 >>>>> > > New Revision: 216238 >>>>> > > >>>>> > > URL: http://llvm.org/viewvc/llvm-project?rev=216238&view=rev >>>>> > > Log: >>>>> > > Add missing HostInfo::Initialize() in llgs. >>>>> > > >>>>> > > This fixes an llgs segfault on startup. >>>>> > > >>>>> > > Modified: >>>>> > > lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp >>>>> > > >>>>> > > Modified: lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp >>>>> > > URL: >>>>> http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp?rev=216238&r1=216237&r2=216238&view=diff >>>>> > > >>>>> ============================================================================== >>>>> > > --- lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp (original) >>>>> > > +++ lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp Thu Aug 21 >>>>> 17:41:25 2014 >>>>> > > @@ -32,6 +32,7 @@ >>>>> > > #include "lldb/Core/Debugger.h" >>>>> > > #include "lldb/Core/PluginManager.h" >>>>> > > #include "lldb/Core/StreamFile.h" >>>>> > > +#include "lldb/Host/HostInfo.h" >>>>> > > #include "lldb/Host/OptionParser.h" >>>>> > > #include "lldb/Host/Socket.h" >>>>> > > #include "lldb/Interpreter/CommandInterpreter.h" >>>>> > > @@ -152,6 +153,7 @@ dump_available_platforms (FILE *output_f >>>>> > > static void >>>>> > > initialize_lldb_gdbserver () >>>>> > > { >>>>> > > + HostInfo::Initialize (); >>>>> > > PluginManager::Initialize (); >>>>> > > Debugger::Initialize (NULL); >>>>> > > } >>>>> > > @@ -159,7 +161,7 @@ initialize_lldb_gdbserver () >>>>> > > static void >>>>> > > terminate_lldb_gdbserver () >>>>> > > { >>>>> > > - Debugger::Terminate(); >>>>> > > + Debugger::Terminate (); >>>>> > > PluginManager::Terminate (); >>>>> > > } >>>>> > > >>>>> > > >>>>> > > >>>>> > > _______________________________________________ >>>>> > > lldb-commits mailing list >>>>> > > lldb-comm...@cs.uiuc.edu >>>>> > > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits >>>>> > >>>>> > _______________________________________________ >>>>> > lldb-commits mailing list >>>>> > lldb-comm...@cs.uiuc.edu >>>>> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > Todd Fiala | Software Engineer | tfi...@google.com | >>>>> 650-943-3180 >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > Todd Fiala | Software Engineer | tfi...@google.com | >>>>> 650-943-3180 >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > -- >>>>> > Todd Fiala | Software Engineer | tfi...@google.com | >>>>> 650-943-3180 >>>>> > >>>>> >>>>> >>>> >>>> >>>> -- >>>> Todd Fiala | Software Engineer | tfi...@google.com | 650-943-3180 >>>> >>> >>> >>> >>> -- >>> Todd Fiala | Software Engineer | tfi...@google.com | 650-943-3180 >>> >>> >>> >>> -- >>> Todd Fiala | Software Engineer | tfi...@google.com | 650-943-3180 >>> >>> _______________________________________________ >>> lldb-dev mailing list >>> lldb-dev@cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev >>> >>> >> > > > -- > Todd Fiala | Software Engineer | tfi...@google.com | 650-943-3180 >
_______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev