[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+M
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW |
Date: |
Fri, 27 Feb 2015 15:22:37 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
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 <address@hidden>
> ---
> 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