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