Message ID | 1393539728-27389-1-git-send-email-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
On Thu, Feb 27, 2014 at 11:22:08PM +0100, Paolo Bonzini wrote: > block-obj-y is not anymore part of common-obj-y, because "nesting" > variables is complicated and requires specifying the correct > ordering in the calls to unnest-vars. However, because of this > we need to specify block-obj-y in the dependencies of the > target subdirectories. > > Thanks to Stefan Weil and Jeff Cody for suggesting the cause of > the regression. > > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index a443cd4..3938b6c 100644 > --- a/Makefile > +++ b/Makefile > @@ -167,7 +167,7 @@ subdir-dtc:dtc/libfdt dtc/tests > dtc/%: > mkdir -p $@ > > -$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) > +$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) $(block-obj-y) > > ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) > romsubdir-%: > -- > 1.8.5.3 > > Reviewed-by: Jeff Cody <jcody@redhat.com>
Am 27.02.2014 23:50, schrieb Jeff Cody: > On Thu, Feb 27, 2014 at 11:22:08PM +0100, Paolo Bonzini wrote: >> block-obj-y is not anymore part of common-obj-y, because "nesting" >> variables is complicated and requires specifying the correct >> ordering in the calls to unnest-vars. However, because of this >> we need to specify block-obj-y in the dependencies of the >> target subdirectories. >> >> Thanks to Stefan Weil and Jeff Cody for suggesting the cause of >> the regression. >> >> Reported-by: Peter Maydell <peter.maydell@linaro.org> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >> --- >> Makefile | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/Makefile b/Makefile >> index a443cd4..3938b6c 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -167,7 +167,7 @@ subdir-dtc:dtc/libfdt dtc/tests >> dtc/%: >> mkdir -p $@ >> >> -$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) >> +$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) $(block-obj-y) Using SUBDIR_RULES here instead of SOFTMMU_SUBDIR_RULES (as in my patch) includes more dependencies: $(block-obj-y) will also be built for the user emulation code (i386-linux-user, ...) which does not need it. As far as I see, SOFTMMU_SUBDIR_RULES is sufficient. Stefan >> >> ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) >> romsubdir-%: >> -- >> 1.8.5.3 >> >> > > Reviewed-by: Jeff Cody <jcody@redhat.com> > >
Am 28.02.2014 06:27, schrieb Stefan Weil: > Am 27.02.2014 23:50, schrieb Jeff Cody: >> On Thu, Feb 27, 2014 at 11:22:08PM +0100, Paolo Bonzini wrote: >>> block-obj-y is not anymore part of common-obj-y, because "nesting" >>> variables is complicated and requires specifying the correct >>> ordering in the calls to unnest-vars. However, because of this >>> we need to specify block-obj-y in the dependencies of the >>> target subdirectories. >>> >>> Thanks to Stefan Weil and Jeff Cody for suggesting the cause of >>> the regression. >>> >>> Reported-by: Peter Maydell <peter.maydell@linaro.org> >>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >>> --- >>> Makefile | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/Makefile b/Makefile >>> index a443cd4..3938b6c 100644 >>> --- a/Makefile >>> +++ b/Makefile >>> @@ -167,7 +167,7 @@ subdir-dtc:dtc/libfdt dtc/tests >>> dtc/%: >>> mkdir -p $@ >>> >>> -$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) >>> +$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) $(block-obj-y) > > Using SUBDIR_RULES here instead of SOFTMMU_SUBDIR_RULES (as in my patch) > includes more dependencies: $(block-obj-y) will also be built for the > user emulation code (i386-linux-user, ...) which does not need it. As > far as I see, SOFTMMU_SUBDIR_RULES is sufficient. > > Stefan The additional dependencies break builds when system emulation and tools are disabled (configure' '--enable-debug' '--enable-trace-backend=stderr' '--disable-tools' --disable-docs --disable-system): make: Entering directory `/home/stefan/src/qemu' CC async.o CC qemu-timer.o In file included from /home/stefan/src/qemu/include/ui/console.h:4:0, from /home/stefan/src/qemu/qemu-timer.c:27: /home/stefan/src/qemu/include/ui/qemu-pixman.h:14:20: fatal error: pixman.h: No such file or directory compilation terminated. make: *** [qemu-timer.o] Error 1 make: Leaving directory `/home/stefan/src/qemu'
Il 28/02/2014 06:27, Stefan Weil ha scritto: >>> >> -$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) >>> >> +$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) $(block-obj-y) > Using SUBDIR_RULES here instead of SOFTMMU_SUBDIR_RULES (as in my patch) > includes more dependencies: $(block-obj-y) will also be built for the > user emulation code (i386-linux-user, ...) which does not need it. As > far as I see, SOFTMMU_SUBDIR_RULES is sufficient. True, it's just ugly to have all the dependencies in different parts of the Makefile. If you fix it, can you move this line close to the existing $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak We have too many knobs. :( Paolo
diff --git a/Makefile b/Makefile index a443cd4..3938b6c 100644 --- a/Makefile +++ b/Makefile @@ -167,7 +167,7 @@ subdir-dtc:dtc/libfdt dtc/tests dtc/%: mkdir -p $@ -$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) +$(SUBDIR_RULES): libqemuutil.a libqemustub.a $(common-obj-y) $(block-obj-y) ROMSUBDIR_RULES=$(patsubst %,romsubdir-%, $(ROMS)) romsubdir-%:
block-obj-y is not anymore part of common-obj-y, because "nesting" variables is complicated and requires specifying the correct ordering in the calls to unnest-vars. However, because of this we need to specify block-obj-y in the dependencies of the target subdirectories. Thanks to Stefan Weil and Jeff Cody for suggesting the cause of the regression. Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)