From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39793) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZMiv3-00032o-PD for qemu-devel@nongnu.org; Tue, 04 Aug 2015 16:34:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZMiuz-0006OW-6Z for qemu-devel@nongnu.org; Tue, 04 Aug 2015 16:34:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51827) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZMiuz-0006OC-02 for qemu-devel@nongnu.org; Tue, 04 Aug 2015 16:34:37 -0400 Date: Tue, 4 Aug 2015 23:34:32 +0300 From: "Michael S. Tsirkin" Message-ID: <20150804232032-mutt-send-email-mst@redhat.com> References: <1438705028-10866-1-git-send-email-victork@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1438705028-10866-1-git-send-email-victork@redhat.com> Subject: Re: [Qemu-devel] [PATCH] make: explicit dependencies for ACPI gen sources List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Victor Kaplansky Cc: Paolo Bonzini , qemu-devel@nongnu.org, Eduardo Habkost , Richard Henderson On Tue, Aug 04, 2015 at 07:21:25PM +0300, Victor Kaplansky wrote: > Rebuilding QEMU after switching versions from git can cause make failure > if IASL is enabled. This is caused by including stale *.d info from > previous build. > > To prevent this in the future we generate dependency info for generated > ACPI sources in *.dep instead regular *.d and include them explicitly. > This will allow us not to break future builds when one of such generated > sources is removed - by removing explicit include of removed dependency. > > By itself this doesn't fix broken builds from the past and this will be > done by the following patch. > > Signed-off-by: Victor Kaplansky I was always wondering about these build failures. Thanks for looking into this! > --- > hw/i386/Makefile.objs | 4 +++- > rules.mak | 1 + > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > index bd4f147..bcc7083 100644 > --- a/hw/i386/Makefile.objs > +++ b/hw/i386/Makefile.objs > @@ -10,13 +10,15 @@ obj-y += acpi-build.o > hw/i386/acpi-build.o: hw/i386/acpi-build.c \ > hw/i386/acpi-dsdt.hex hw/i386/q35-acpi-dsdt.hex > > +-include hw/i386/acpi-dsdt.dep hw/i386/q35-acpi-dsdt.dep > + > iasl-option=$(shell if test -z "`$(1) $(2) 2>&1 > /dev/null`" \ > ; then echo "$(2)"; else echo "$(3)"; fi ;) > > ifdef IASL > #IASL Present. Generate hex files from .dsl > hw/i386/%.hex: $(SRC_PATH)/hw/i386/%.dsl $(SRC_PATH)/scripts/acpi_extract_preprocess.py $(SRC_PATH)/scripts/acpi_extract.py > - $(call quiet-command, $(CPP) -x c -P $(QEMU_DGFLAGS) $(QEMU_INCLUDES) $< -o $*.dsl.i.orig, " CPP $(TARGET_DIR)$*.dsl.i.orig") > + $(call quiet-command, $(CPP) -x c -P $(QEMU_DGFLAGS_GEN) $(QEMU_INCLUDES) $< -o $*.dsl.i.orig, " CPP $(TARGET_DIR)$*.dsl.i.orig") > $(call quiet-command, $(PYTHON) $(SRC_PATH)/scripts/acpi_extract_preprocess.py $*.dsl.i.orig > $*.dsl.i, " ACPI_PREPROCESS $(TARGET_DIR)$*.dsl.i") > $(call quiet-command, $(IASL) $(call iasl-option,$(IASL),-Pn,) -vs -l -tc -p $* $*.dsl.i $(if $(V), , > /dev/null) 2>&1 ," IASL $(TARGET_DIR)$*.dsl.i") > $(call quiet-command, $(PYTHON) $(SRC_PATH)/scripts/acpi_extract.py $*.lst > $*.off, " ACPI_EXTRACT $(TARGET_DIR)$*.off") > diff --git a/rules.mak b/rules.mak > index aec27f8..6019a46 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -18,6 +18,7 @@ QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out -Wstrict-prototypes -Wmissing > > # Flags for dependency generation > QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d > +QEMU_DGFLAGS_GEN += -MMD -MP -MT $@ -MF $(*D)/$(*F).dep > > # Same as -I$(SRC_PATH) -I., but for the nested source/object directories > QEMU_INCLUDES += -I$( -- > --Victor