Daniel Jacobowitz schrieb:
From: Daniel Jacobowitz d...@codesourcery.com
With enough parallelism, make will run all the dependencies of
build-all at the same time:
build-all: config-host.h config-all-devices.h $(DOCS) $(TOOLS)
So some of the $(TOOLS) will build before config-host.h is finished.
The object files need to depend on it explicitly. Subdirectories are
OK since they are started from the body of build-all, not its
dependencies.
Signed-off-by: Daniel Jacobowitz d...@codesourcery.com
---
Makefile |2 ++
rules.mak |2 +-
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index c783aa4..ed9a420 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,7 @@
# Makefile for QEMU.
+GENERATED_HEADERS = config-host.h config-all-devices.h
+
ifneq ($(wildcard config-host.mak),)
# Put the all: rule here so that config-host.mak can contain dependencies.
all: build-all
diff --git a/rules.mak b/rules.mak
index 5d7e8bb..4eb1f90 100644
--- a/rules.mak
+++ b/rules.mak
@@ -13,7 +13,7 @@ MAKEFLAGS += -rR
QEMU_CFLAGS += -MMD -MP -MT $@
-%.o: %.c
+%.o: %.c $(GENERATED_HEADERS)
$(call quiet-command,$(CC) $(QEMU_CFLAGS) $(CFLAGS) -c -o $@ $, CC
$(TARGET_DIR)$@)
%.o: %.S
Maybe a mix of your patch and my patch
(http://patchwork.ozlabs.org/patch/37446/)
would be the best fix for this problem.
It should also be possible to apply both patches.
Regards
Stefan