On Tue, 09/17 07:33, Alex Bligh wrote: > > On 17 Sep 2013, at 06:55, Fam Zheng wrote: > > >>> > >>> I think I'd just have one flat list > >>> of modules to load and ditch these MODULE_LOAD_XXXX enums. > >> > >> Question is how to deal with qemu vs. qemu-img then. qemu needs > >> everything and qemu-img needs the block drivers only (and loading > >> something else probably doesn't work due to unresolved symbols). > >> > > > > With lazy symbol binding (G_MODULE_BIND_LAZY), we can just load all the > > modules, and wait for subsystem to call module_call_init(MODULE_INIT_*), > > where > > the symbols are resolved. As qemu-img.c doesn't init ui, net, it's not a > > problem to load them ahead. > > Why not have one list per executable you build? You know at compile > time what modules each executable could load. This seems better > than putting the logic in and run time and having different types > of modules etc. > > One reason to avoid qemu-img (for instance) loading everything (if > it's present) is init time. I agree dlopen()'ing something that > never gets called should not eat too much RAM but it seems pointless. >
OK, good point. Fam