Il 25/06/2013 18:03, Laszlo Ersek ha scritto: >> > @@ -113,6 +114,7 @@ nested-vars += \ >> > stub-obj-y \ >> > util-obj-y \ >> > qga-obj-y \ >> > + qga-prv-obj-y \ >> > block-obj-y \ >> > common-obj-y >> > dummy := $(call unnest-vars) > What does this do? Does "qga-prv-obj-y" stand for "all objects under > 'qga'"? > > Or does it mean "look into qga/Makefile.objs for further objects"?
The latter. I'd rather have it spelled fully, though (qga-win32-provider-obj-y). > > +qga-obj-y += vss-win32-provider/ > > +qga-prv-obj-y += vss-win32-provider/ > > +endif > > So we're probably just saying "look into > vss-win32-provider/Makefile.objs for further object files", for both > variables. Yes. > Looks like "qga-prv-obj-y" consists of nothing more than "provider.o" > and "install.o", and that "qga-provider.dll" depends on them. In theory, > would it be possible *not* to introduce "qga-prv-obj-y" in the > higher-level Makefile.obj files, only here? No, you need to specify it at all levels. > Why does "qga-provider.dll" depend on ""qga-provider.tlb"? It is not > used in the link command. > > Also, why is it necessary to collect the files "provider.o", "install.o" > and "qga-provider.def" into a DLL, and link qemu-ga.exe against that DLL > (via qga-obj-y)? Is this a VSS requirement? Can't we simply link these > objects into qemu-ga.exe statically, like the rest of "qga-obj-y"? I think dynamic linking is needed because VSS is loading the provider as a COM component here: + hr = pVssbc->AddToSnapshotSet(buf, g_gProviderId, &pid); But I don't know why you need to link the DLL to qemu-ga.exe. Paolo