From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47373) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UrVyz-00076H-Dk for qemu-devel@nongnu.org; Tue, 25 Jun 2013 12:20:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UrVyy-0000GV-1L for qemu-devel@nongnu.org; Tue, 25 Jun 2013 12:20:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50724) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UrVyx-0000GN-KC for qemu-devel@nongnu.org; Tue, 25 Jun 2013 12:20:39 -0400 Message-ID: <51C9C304.5020202@redhat.com> Date: Tue, 25 Jun 2013 18:19:16 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <20130606150618.10486.60669.stgit@hds.com> <20130606150645.10486.23215.stgit@hds.com> <51C9BF54.6000008@redhat.com> In-Reply-To: <51C9BF54.6000008@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 06/10] qemu-ga: Add Windows VSS provider to quiesce applications on fsfreeze List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Laszlo Ersek Cc: libaiqing@huawei.com, mdroth@linux.vnet.ibm.com, stefanha@gmail.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, vrozenfe@redhat.com, Tomoki Sekiyama , seiji.aguchi@hds.com, areis@redhat.com 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