From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58001) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YRLoV-0005Yn-OA for qemu-devel@nongnu.org; Fri, 27 Feb 2015 09:22:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YRLoS-0001ab-Ii for qemu-devel@nongnu.org; Fri, 27 Feb 2015 09:22:47 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33164) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YRLoS-0001aR-9y for qemu-devel@nongnu.org; Fri, 27 Feb 2015 09:22:44 -0500 Message-ID: <54F07DAD.1030205@redhat.com> Date: Fri, 27 Feb 2015 15:22:37 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1424264377-5992-1-git-send-email-real@ispras.ru> In-Reply-To: <1424264377-5992-1-git-send-email-real@ispras.ru> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vasily Efimov , qemu-devel@nongnu.org Cc: Kirill Batuzov On 18/02/2015 13:59, Vasily Efimov wrote: > This patch enables parallel building of QEMU in MSYS+MinGW environment. > Currently an attempt to build QEMU in parallel fails on generation of > version.lo (and version.o too). > > The cause of the failure is that when listing prerequisites "Makefile" > references "config-host.h" by absolute path in some rules and by relative > path in others. Make cannot figure out that these references points to the > same file which leads to the race: the generation of "version.*" which > requires "$(BUILD_DIR)/config-host.h" is launched in parallel with the > generation of "config-host.h" needed by other "Makefile" targets. > > This patch removes "$(BUILD_DIR)/" prefix from corresponding prerequisite > of "version.*". There is no other prerequisites "$(BUILD_DIR)/config-host.h" > found. > > Also note that not every version of MSYS is able to build QEMU in parallel, > see: "http://sourceforge.net/p/mingw/bugs/1950/". The suggested version is > 1.0.17. > > Signed-off-by: Vasily Efimov > --- > Makefile | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Makefile b/Makefile > index 6817c6f..b0d8c07 100644 > --- a/Makefile > +++ b/Makefile > @@ -197,9 +197,9 @@ ALL_SUBDIRS=$(TARGET_DIRS) $(patsubst %,pc-bios/%, $(ROMS)) > > recurse-all: $(SUBDIR_RULES) $(ROMSUBDIR_RULES) > > -$(BUILD_DIR)/version.o: $(SRC_PATH)/version.rc $(BUILD_DIR)/config-host.h | $(BUILD_DIR)/version.lo > +$(BUILD_DIR)/version.o: $(SRC_PATH)/version.rc config-host.h | $(BUILD_DIR)/version.lo > $(call quiet-command,$(WINDRES) -I$(BUILD_DIR) -o $@ $<," RC version.o") > -$(BUILD_DIR)/version.lo: $(SRC_PATH)/version.rc $(BUILD_DIR)/config-host.h > +$(BUILD_DIR)/version.lo: $(SRC_PATH)/version.rc config-host.h > $(call quiet-command,$(WINDRES) -I$(BUILD_DIR) -o $@ $<," RC version.lo") > > Makefile: $(version-obj-y) $(version-lobj-y) > Applied, thanks. Paolo