All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW
@ 2015-02-18 12:59 Vasily Efimov
  2015-02-27 14:22 ` Paolo Bonzini
  2015-03-02 12:32 ` Peter Maydell
  0 siblings, 2 replies; 3+ messages in thread
From: Vasily Efimov @ 2015-02-18 12:59 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Vasily Efimov, Kirill Batuzov

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 <real@ispras.ru>
---
 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)
-- 
1.9.5.msysgit.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW
  2015-02-18 12:59 [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW Vasily Efimov
@ 2015-02-27 14:22 ` Paolo Bonzini
  2015-03-02 12:32 ` Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2015-02-27 14:22 UTC (permalink / raw)
  To: Vasily Efimov, qemu-devel; +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 <real@ispras.ru>
> ---
>  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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW
  2015-02-18 12:59 [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW Vasily Efimov
  2015-02-27 14:22 ` Paolo Bonzini
@ 2015-03-02 12:32 ` Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2015-03-02 12:32 UTC (permalink / raw)
  To: Vasily Efimov; +Cc: Paolo Bonzini, QEMU Developers, Kirill Batuzov

On 18 February 2015 at 21:59, Vasily Efimov <real@ispras.ru> 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.

Thanks for looking into this -- I'd run into the problem a couple
of times but not been able to track down why it was happening...

-- PMM

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-03-02 12:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-18 12:59 [Qemu-devel] [PATCH] Makefile: fix up parallel building under MSYS+MinGW Vasily Efimov
2015-02-27 14:22 ` Paolo Bonzini
2015-03-02 12:32 ` Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.