qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] make: explicit dependencies for ACPI gen source


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] make: explicit dependencies for ACPI gen sources
Date: Wed, 5 Aug 2015 11:50:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0


On 04/08/2015 18:21, 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.

Does this happen the same way if you are removing a .c file?  If not,
can the same solution be used for .c and .dsl files?

Paolo

> Signed-off-by: Victor Kaplansky <address@hidden>
> ---
>  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$(<D) -I$(@D)
> -- 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]