George Dunlap
2011-May-06 14:33 UTC
[Xen-devel] [PATCH] build: Don''t fetch tools/ioemu-dir unless needed
c/s 18482 made both stubdom and tools dependent on tools/ioemu-dir to fix a race condition where both build paths might try to fetch qemu in parallel. But this means that even if you build the tools with CONFIG_IOEMU=n, qemu is still fetched first. This patch causes tools/ioemu-dir to be a dependency for tools only if CONFIG_IOEMU is enabled. It''s still unconditional for stubdoms, as it doesn''t make much sense to build stubdoms without it. Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com> diff -r 4b0692880dfa -r c3b9bca4b119 Config.mk --- a/Config.mk Thu May 05 17:40:34 2011 +0100 +++ b/Config.mk Fri May 06 15:33:09 2011 +0100 @@ -179,6 +179,11 @@ # CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git CONFIG_QEMU ?= $(QEMU_REMOTE) +# If building with CONFIG_IOEMU, get ioemu-dir before building +# tools or stubdom (or they may race) +SHARED_SUBDIRS-y :+SHARED_SUBDIRS-$(CONFIG_IOEMU) += tools/ioemu-dir + QEMU_TAG := xen-4.1.0-rc6 #QEMU_TAG ?= e073e69457b4d99b6da0b6536296e3498f7f6599 # Fri Feb 11 17:54:51 2011 +0000 diff -r 4b0692880dfa -r c3b9bca4b119 Makefile --- a/Makefile Thu May 05 17:40:34 2011 +0100 +++ b/Makefile Fri May 06 15:33:09 2011 +0100 @@ -66,7 +66,7 @@ $(MAKE) -C xen install .PHONY: install-tools -install-tools: tools/ioemu-dir +install-tools: $(SHARED_SUBDIRS-y) $(MAKE) -C tools install .PHONY: install-kernels @@ -74,6 +74,7 @@ for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done .PHONY: install-stubdom +# NB: depend on tools/ioemu-dir unconditionally for stubdoms install-stubdom: tools/ioemu-dir install-tools $(MAKE) -C stubdom install ifeq (x86_64,$(XEN_TARGET_ARCH)) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Jan Beulich
2011-May-06 14:41 UTC
Re: [Xen-devel] [PATCH] build: Don''t fetch tools/ioemu-dir unless needed
>>> On 06.05.11 at 16:33, George Dunlap <george.dunlap@eu.citrix.com> wrote: > c/s 18482 made both stubdom and tools dependent on tools/ioemu-dir > to fix a race condition where both build paths might try to fetch > qemu in parallel. But this means that even if you build the tools > with CONFIG_IOEMU=n, qemu is still fetched first. > > This patch causes tools/ioemu-dir to be a dependency for tools > only if CONFIG_IOEMU is enabled. > > It''s still unconditional for stubdoms, as it doesn''t make much sense > to build stubdoms without it.The idea is certainly good, but ...> Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com> > > diff -r 4b0692880dfa -r c3b9bca4b119 Config.mk > --- a/Config.mk Thu May 05 17:40:34 2011 +0100 > +++ b/Config.mk Fri May 06 15:33:09 2011 +0100 > @@ -179,6 +179,11 @@ > # CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git > CONFIG_QEMU ?= $(QEMU_REMOTE) > > +# If building with CONFIG_IOEMU, get ioemu-dir before building > +# tools or stubdom (or they may race) > +SHARED_SUBDIRS-y :> +SHARED_SUBDIRS-$(CONFIG_IOEMU) += tools/ioemu-dir... the name chosen here isn''t really suitable for the place you put it: Either the name should be sufficiently distinct, or this should be placed in ./Makefile (though even then I''d probably still like to see it somehow specify what or by whom this is shared). Otherwise, if something becomes shared e.g. between Xen and tools, it would be logical to expect to simply put it here, but obviously this won''t work then. Jan> + > QEMU_TAG := xen-4.1.0-rc6 > #QEMU_TAG ?= e073e69457b4d99b6da0b6536296e3498f7f6599 > # Fri Feb 11 17:54:51 2011 +0000 > diff -r 4b0692880dfa -r c3b9bca4b119 Makefile > --- a/Makefile Thu May 05 17:40:34 2011 +0100 > +++ b/Makefile Fri May 06 15:33:09 2011 +0100 > @@ -66,7 +66,7 @@ > $(MAKE) -C xen install > > .PHONY: install-tools > -install-tools: tools/ioemu-dir > +install-tools: $(SHARED_SUBDIRS-y) > $(MAKE) -C tools install > > .PHONY: install-kernels > @@ -74,6 +74,7 @@ > for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done > > .PHONY: install-stubdom > +# NB: depend on tools/ioemu-dir unconditionally for stubdoms > install-stubdom: tools/ioemu-dir install-tools > $(MAKE) -C stubdom install > ifeq (x86_64,$(XEN_TARGET_ARCH)) > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
George Dunlap
2011-May-16 10:58 UTC
[Xen-devel] [PATCH] build: Don''t fetch tools/ioemu-dir unless needed
v3: more descriptive name for shared subdirs c/s 18482 made both stubdom and tools dependent on tools/ioemu-dir to fix a race condition where both build paths might try to fetch qemu in parallel. But this means that even if you build the tools with CONFIG_IOEMU=n, qemu is still fetched first. This patch causes tools/ioemu-dir to be a dependency for tools only if CONFIG_IOEMU is enabled. It''s still unconditional for stubdoms, as it doesn''t make much sense to build stubdoms without it. Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com> diff -r f9bb0bbea7c2 -r 8bb82569e8a4 Makefile --- a/Makefile Thu May 12 16:42:54 2011 +0100 +++ b/Makefile Mon May 16 11:58:39 2011 +0100 @@ -13,6 +13,11 @@ SUBARCH := $(subst x86_32,i386,$(XEN_TAR export XEN_TARGET_ARCH SUBARCH XEN_SYSTYPE include buildconfigs/Rules.mk +# If building with CONFIG_IOEMU, get ioemu-dir before building +# tools or stubdom (or they may race) +IOEMU_SHARED_SUBDIRS-y :+IOEMU_SHARED_SUBDIRS-$(CONFIG_IOEMU) += tools/ioemu-dir + # build and install everything into the standard system directories .PHONY: install install: install-xen install-kernels install-tools install-stubdom install-docs @@ -66,7 +71,7 @@ install-xen: $(MAKE) -C xen install .PHONY: install-tools -install-tools: tools/ioemu-dir +install-tools: $(IOEMU_SHARED_SUBDIRS-y) $(MAKE) -C tools install .PHONY: install-kernels @@ -74,6 +79,7 @@ install-kernels: for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done .PHONY: install-stubdom +# NB: depend on tools/ioemu-dir unconditionally for stubdoms install-stubdom: tools/ioemu-dir install-tools $(MAKE) -C stubdom install ifeq (x86_64,$(XEN_TARGET_ARCH)) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel