* [Qemu-devel] [PATCH v2 0/2] make: Cleanup and fix of loading of dependency info @ 2015-08-05 17:27 Victor Kaplansky 2015-08-05 17:28 ` [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored Victor Kaplansky 2015-08-05 17:29 ` [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files Victor Kaplansky 0 siblings, 2 replies; 11+ messages in thread From: Victor Kaplansky @ 2015-08-05 17:27 UTC (permalink / raw) To: qemu-devel Cc: Peter Maydell, Eduardo Habkost, Michael S. Tsirkin, Stefan Weil, Paolo Bonzini, Richard Henderson Hi, sometimes the make fails when one switches between commits without running "make clean". This is caused by loading old *.d dependency info files and is harmful for autogenerated sources with their own includes. This situation may significantly slow down the process of git bisect. These two patches clean things up and fix the issue both for further versions, and between old and new commits. This also replaces my previous patch "[PATCH] make: explicit dependencies for ACPI gen sources". I've tested the fix by validating that lists included by previous "*.d" approach and new "patsubst" approach are identical. Victor Kaplansky (2): make: fix where dependency *.d are stored. make: load only required dependency files. hw/i386/Makefile.objs | 2 ++ hw/i386/acpi-dsdt.dsl | 1 - hw/i386/q35-acpi-dsdt.dsl | 1 + rules.mak | 4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) -- --Victor ^ permalink raw reply [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored. 2015-08-05 17:27 [Qemu-devel] [PATCH v2 0/2] make: Cleanup and fix of loading of dependency info Victor Kaplansky @ 2015-08-05 17:28 ` Victor Kaplansky 2015-08-06 8:57 ` Alex Bennée 2015-08-05 17:29 ` [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files Victor Kaplansky 1 sibling, 1 reply; 11+ messages in thread From: Victor Kaplansky @ 2015-08-05 17:28 UTC (permalink / raw) To: qemu-devel Cc: Peter Maydell, Eduardo Habkost, Michael S. Tsirkin, Stefan Weil, Igor Mammedov, Paolo Bonzini, Richard Henderson In rules like "bar/%.o: %.c" there is a difference between $(*D) and $(@D). It is cleaner to generate *.d next to appropriate *.o, because it allows precise including of dependency info from .d files. As a hack, we also touch two sources for generated *.hex files. This is to ensure *.hex rebuild, when old revision is switched to the new one. Signed-off-by: Victor Kaplansky <victork@redhat.com> --- hw/i386/acpi-dsdt.dsl | 1 - hw/i386/q35-acpi-dsdt.dsl | 1 + rules.mak | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl index a2d84ec..8dba096 100644 --- a/hw/i386/acpi-dsdt.dsl +++ b/hw/i386/acpi-dsdt.dsl @@ -43,7 +43,6 @@ DefinitionBlock ( #include "acpi-dsdt-hpet.dsl" - /**************************************************************** * PIIX4 PM ****************************************************************/ diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl index 16eaca3..7be7b37 100644 --- a/hw/i386/q35-acpi-dsdt.dsl +++ b/hw/i386/q35-acpi-dsdt.dsl @@ -22,6 +22,7 @@ * Based on acpi-dsdt.dsl, but heavily modified for q35 chipset. */ + ACPI_EXTRACT_ALL_CODE Q35AcpiDsdtAmlCode DefinitionBlock ( diff --git a/rules.mak b/rules.mak index aec27f8..6e35c36 100644 --- a/rules.mak +++ b/rules.mak @@ -17,7 +17,7 @@ MAKEFLAGS += -rR QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wredundant-decls, $(QEMU_CFLAGS)) # Flags for dependency generation -QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d +QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d # Same as -I$(SRC_PATH) -I., but for the nested source/object directories QEMU_INCLUDES += -I$(<D) -I$(@D) -- --Victor ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored. 2015-08-05 17:28 ` [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored Victor Kaplansky @ 2015-08-06 8:57 ` Alex Bennée 2015-08-06 9:02 ` Michael S. Tsirkin 0 siblings, 1 reply; 11+ messages in thread From: Alex Bennée @ 2015-08-06 8:57 UTC (permalink / raw) To: Victor Kaplansky Cc: Peter Maydell, Eduardo Habkost, Michael S. Tsirkin, Stefan Weil, qemu-devel, Paolo Bonzini, Igor Mammedov, Richard Henderson Victor Kaplansky <victork@redhat.com> writes: > In rules like "bar/%.o: %.c" there is a difference between $(*D) and > $(@D). It is cleaner to generate *.d next to appropriate *.o, because it > allows precise including of dependency info from .d files. It might be worth putting the example in the comment as most people are not familiar with the esoteric symbolic of GNU Make. AIUI in your example $(@D) resolves to "bar" instead of "bar/%" > > As a hack, we also touch two sources for generated *.hex files. This is > to ensure *.hex rebuild, when old revision is switched to the new one. While I'm sure this was useful for testing do we really want to include such a hack in the git history? > > Signed-off-by: Victor Kaplansky <victork@redhat.com> > --- > hw/i386/acpi-dsdt.dsl | 1 - > hw/i386/q35-acpi-dsdt.dsl | 1 + > rules.mak | 2 +- > 3 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl > index a2d84ec..8dba096 100644 > --- a/hw/i386/acpi-dsdt.dsl > +++ b/hw/i386/acpi-dsdt.dsl > @@ -43,7 +43,6 @@ DefinitionBlock ( > > #include "acpi-dsdt-hpet.dsl" > > - > /**************************************************************** > * PIIX4 PM > ****************************************************************/ > diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl > index 16eaca3..7be7b37 100644 > --- a/hw/i386/q35-acpi-dsdt.dsl > +++ b/hw/i386/q35-acpi-dsdt.dsl > @@ -22,6 +22,7 @@ > * Based on acpi-dsdt.dsl, but heavily modified for q35 chipset. > */ > > + > ACPI_EXTRACT_ALL_CODE Q35AcpiDsdtAmlCode > > DefinitionBlock ( > diff --git a/rules.mak b/rules.mak > index aec27f8..6e35c36 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -17,7 +17,7 @@ MAKEFLAGS += -rR > QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wredundant-decls, $(QEMU_CFLAGS)) > > # Flags for dependency generation > -QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d > +QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d > > # Same as -I$(SRC_PATH) -I., but for the nested source/object directories > QEMU_INCLUDES += -I$(<D) -I$(@D) -- Alex Bennée ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored. 2015-08-06 8:57 ` Alex Bennée @ 2015-08-06 9:02 ` Michael S. Tsirkin 2015-08-06 15:55 ` Alex Bennée 0 siblings, 1 reply; 11+ messages in thread From: Michael S. Tsirkin @ 2015-08-06 9:02 UTC (permalink / raw) To: Alex Bennée Cc: Peter Maydell, Victor Kaplansky, Eduardo Habkost, Stefan Weil, qemu-devel, Paolo Bonzini, Igor Mammedov, Richard Henderson On Thu, Aug 06, 2015 at 09:57:03AM +0100, Alex Bennée wrote: > > Victor Kaplansky <victork@redhat.com> writes: > > > In rules like "bar/%.o: %.c" there is a difference between $(*D) and > > $(@D). It is cleaner to generate *.d next to appropriate *.o, because it > > allows precise including of dependency info from .d files. > > It might be worth putting the example in the comment as most people are > not familiar with the esoteric symbolic of GNU Make. AIUI in your > example $(@D) resolves to "bar" instead of "bar/%" > > > > > As a hack, we also touch two sources for generated *.hex files. This is > > to ensure *.hex rebuild, when old revision is switched to the new one. > > While I'm sure this was useful for testing do we really want to include > such a hack in the git history? This is the hint for why it's needed there: "This is to ensure *.hex rebuild, when old revision is switched to the new one." Maybe add this, making this more explicit: Without this hack, anyone doing "git pull; make" will not get *.hex rebuilt correctly since the dependency file would be missing. > > > > Signed-off-by: Victor Kaplansky <victork@redhat.com> > > --- > > hw/i386/acpi-dsdt.dsl | 1 - > > hw/i386/q35-acpi-dsdt.dsl | 1 + > > rules.mak | 2 +- > > 3 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl > > index a2d84ec..8dba096 100644 > > --- a/hw/i386/acpi-dsdt.dsl > > +++ b/hw/i386/acpi-dsdt.dsl > > @@ -43,7 +43,6 @@ DefinitionBlock ( > > > > #include "acpi-dsdt-hpet.dsl" > > > > - > > /**************************************************************** > > * PIIX4 PM > > ****************************************************************/ > > diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl > > index 16eaca3..7be7b37 100644 > > --- a/hw/i386/q35-acpi-dsdt.dsl > > +++ b/hw/i386/q35-acpi-dsdt.dsl > > @@ -22,6 +22,7 @@ > > * Based on acpi-dsdt.dsl, but heavily modified for q35 chipset. > > */ > > > > + > > ACPI_EXTRACT_ALL_CODE Q35AcpiDsdtAmlCode > > > > DefinitionBlock ( > > diff --git a/rules.mak b/rules.mak > > index aec27f8..6e35c36 100644 > > --- a/rules.mak > > +++ b/rules.mak > > @@ -17,7 +17,7 @@ MAKEFLAGS += -rR > > QEMU_CXXFLAGS = -D__STDC_LIMIT_MACROS $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wredundant-decls, $(QEMU_CFLAGS)) > > > > # Flags for dependency generation > > -QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(*D)/$(*F).d > > +QEMU_DGFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d > > > > # Same as -I$(SRC_PATH) -I., but for the nested source/object directories > > QEMU_INCLUDES += -I$(<D) -I$(@D) > > -- > Alex Bennée ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored. 2015-08-06 9:02 ` Michael S. Tsirkin @ 2015-08-06 15:55 ` Alex Bennée 0 siblings, 0 replies; 11+ messages in thread From: Alex Bennée @ 2015-08-06 15:55 UTC (permalink / raw) To: Michael S. Tsirkin Cc: Peter Maydell, Victor Kaplansky, Eduardo Habkost, Stefan Weil, qemu-devel, Paolo Bonzini, Igor Mammedov, Richard Henderson Michael S. Tsirkin <mst@redhat.com> writes: > On Thu, Aug 06, 2015 at 09:57:03AM +0100, Alex Bennée wrote: >> >> Victor Kaplansky <victork@redhat.com> writes: >> <snip> >> > >> > As a hack, we also touch two sources for generated *.hex files. This is >> > to ensure *.hex rebuild, when old revision is switched to the new one. >> >> While I'm sure this was useful for testing do we really want to include >> such a hack in the git history? > > This is the hint for why it's needed there: > "This is to ensure *.hex rebuild, when old revision is switched to the > new one." > Maybe add this, making this more explicit: > Without this hack, anyone doing "git pull; make" will not get *.hex rebuilt > correctly since the dependency file would be missing. Ahh that makes more sense :-) -- Alex Bennée ^ permalink raw reply [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files. 2015-08-05 17:27 [Qemu-devel] [PATCH v2 0/2] make: Cleanup and fix of loading of dependency info Victor Kaplansky 2015-08-05 17:28 ` [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored Victor Kaplansky @ 2015-08-05 17:29 ` Victor Kaplansky 2015-08-05 17:40 ` Paolo Bonzini 2015-08-05 18:32 ` Michael S. Tsirkin 1 sibling, 2 replies; 11+ messages in thread From: Victor Kaplansky @ 2015-08-05 17:29 UTC (permalink / raw) To: qemu-devel Cc: Peter Maydell, Eduardo Habkost, Michael S. Tsirkin, Stefan Weil, Paolo Bonzini, Richard Henderson The old rules.mak loads dependency .d files using include directive with file glob pattern "*.d". This breaks the build when build tree has remanent *.d files from another build. This patch fixes this by - loading precise list of .d files made from *.o and *.mo. - specifying explicit list of required dependency info files for *.hex autogenerated sources. Note that Makefile still includes some .d in rood directory by including "*.d". Signed-off-by: Victor Kaplansky <victork@redhat.com> --- hw/i386/Makefile.objs | 2 ++ rules.mak | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index bd4f147..311d364 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -10,6 +10,8 @@ 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.d hw/i386/q35-acpi-dsdt.d + iasl-option=$(shell if test -z "`$(1) $(2) 2>&1 > /dev/null`" \ ; then echo "$(2)"; else echo "$(3)"; fi ;) diff --git a/rules.mak b/rules.mak index 6e35c36..4551b9e 100644 --- a/rules.mak +++ b/rules.mak @@ -368,6 +368,6 @@ define unnest-vars $(error $o added in $v but $o-objs is not set))) $(shell mkdir -p ./ $(sort $(dir $($v)))) # Include all the .d files - $(eval -include $(addsuffix *.d, $(sort $(dir $($v))))) + $(eval -include $(patsubst %.o,%.d,$(patsubst %.mo,%.d,$($v)))) $(eval $v := $(filter-out %/,$($v)))) endef -- --Victor ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files. 2015-08-05 17:29 ` [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files Victor Kaplansky @ 2015-08-05 17:40 ` Paolo Bonzini 2015-08-05 18:22 ` Victor kaplansky 2015-08-06 7:05 ` Markus Armbruster 2015-08-05 18:32 ` Michael S. Tsirkin 1 sibling, 2 replies; 11+ messages in thread From: Paolo Bonzini @ 2015-08-05 17:40 UTC (permalink / raw) To: Victor Kaplansky, qemu-devel Cc: Peter Maydell, Richard Henderson, Michael S. Tsirkin, Eduardo Habkost, Stefan Weil On 05/08/2015 19:29, Victor Kaplansky wrote: > The old rules.mak loads dependency .d files using include directive > with file glob pattern "*.d". This breaks the build when build tree has > remanent *.d files from another build. > > This patch fixes this by > - loading precise list of .d files made from *.o and *.mo. > - specifying explicit list of required dependency info files for > *.hex autogenerated sources. > > Note that Makefile still includes some .d in rood directory by including > "*.d". > > Signed-off-by: Victor Kaplansky <victork@redhat.com> > --- > hw/i386/Makefile.objs | 2 ++ > rules.mak | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > index bd4f147..311d364 100644 > --- a/hw/i386/Makefile.objs > +++ b/hw/i386/Makefile.objs > @@ -10,6 +10,8 @@ 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.d hw/i386/q35-acpi-dsdt.d > + Having to include the files manually is ugly though. The failed builds are ugly too, but I'm not sure which is worse... :( Failed builds happen rarely and there are other cases where you should just "make distclean" your way out of a failure. On the other hand, more complicated makefiles have to be maintained always. Paolo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files. 2015-08-05 17:40 ` Paolo Bonzini @ 2015-08-05 18:22 ` Victor kaplansky 2015-08-06 7:05 ` Markus Armbruster 1 sibling, 0 replies; 11+ messages in thread From: Victor kaplansky @ 2015-08-05 18:22 UTC (permalink / raw) To: Paolo Bonzini Cc: Peter Maydell, Eduardo Habkost, Michael S. Tsirkin, Stefan Weil, qemu-devel, Richard Henderson On Wed, Aug 05, 2015 at 07:40:00PM +0200, Paolo Bonzini wrote: > > > On 05/08/2015 19:29, Victor Kaplansky wrote: > > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > > index bd4f147..311d364 100644 > > --- a/hw/i386/Makefile.objs > > +++ b/hw/i386/Makefile.objs > > @@ -10,6 +10,8 @@ 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.d hw/i386/q35-acpi-dsdt.d > > + > > Having to include the files manually is ugly though. > > The failed builds are ugly too, but I'm not sure which is worse... :( > Failed builds happen rarely and there are other cases where you should > just "make distclean" your way out of a failure. On the other hand, > more complicated makefiles have to be maintained always. Actually there is no problem to keep the list of generated *.hex targets as we do for *.o objects. Just current list is very short, only two items, so I leaved them as is. --Victor ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files. 2015-08-05 17:40 ` Paolo Bonzini 2015-08-05 18:22 ` Victor kaplansky @ 2015-08-06 7:05 ` Markus Armbruster 1 sibling, 0 replies; 11+ messages in thread From: Markus Armbruster @ 2015-08-06 7:05 UTC (permalink / raw) To: Paolo Bonzini Cc: Peter Maydell, Victor Kaplansky, Eduardo Habkost, Michael S. Tsirkin, Stefan Weil, qemu-devel, Richard Henderson Paolo Bonzini <pbonzini@redhat.com> writes: > On 05/08/2015 19:29, Victor Kaplansky wrote: >> The old rules.mak loads dependency .d files using include directive >> with file glob pattern "*.d". This breaks the build when build tree has >> remanent *.d files from another build. >> >> This patch fixes this by >> - loading precise list of .d files made from *.o and *.mo. >> - specifying explicit list of required dependency info files for >> *.hex autogenerated sources. >> >> Note that Makefile still includes some .d in rood directory by including >> "*.d". >> >> Signed-off-by: Victor Kaplansky <victork@redhat.com> >> --- >> hw/i386/Makefile.objs | 2 ++ >> rules.mak | 2 +- >> 2 files changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs >> index bd4f147..311d364 100644 >> --- a/hw/i386/Makefile.objs >> +++ b/hw/i386/Makefile.objs >> @@ -10,6 +10,8 @@ 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.d hw/i386/q35-acpi-dsdt.d >> + > > Having to include the files manually is ugly though. > > The failed builds are ugly too, but I'm not sure which is worse... :( > Failed builds happen rarely Not for me. > and there are other cases where you should > just "make distclean" your way out of a failure. ccache saves. > On the other hand, > more complicated makefiles have to be maintained always. Globbing in makefiles is rarely a good idea. Including *.d is as questionable as linking *.o would be. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files. 2015-08-05 17:29 ` [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files Victor Kaplansky 2015-08-05 17:40 ` Paolo Bonzini @ 2015-08-05 18:32 ` Michael S. Tsirkin 2015-08-05 18:51 ` Michael S. Tsirkin 1 sibling, 1 reply; 11+ messages in thread From: Michael S. Tsirkin @ 2015-08-05 18:32 UTC (permalink / raw) To: Victor Kaplansky Cc: Peter Maydell, Eduardo Habkost, Stefan Weil, qemu-devel, Paolo Bonzini, Richard Henderson On Wed, Aug 05, 2015 at 08:29:33PM +0300, Victor Kaplansky wrote: > The old rules.mak loads dependency .d files using include directive > with file glob pattern "*.d". This breaks the build when build tree has > remanent *.d files from another build. > > This patch fixes this by > - loading precise list of .d files made from *.o and *.mo. > - specifying explicit list of required dependency info files for > *.hex autogenerated sources. > > Note that Makefile still includes some .d in rood directory by including > "*.d". > > Signed-off-by: Victor Kaplansky <victork@redhat.com> > --- > hw/i386/Makefile.objs | 2 ++ > rules.mak | 2 +- > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs > index bd4f147..311d364 100644 > --- a/hw/i386/Makefile.objs > +++ b/hw/i386/Makefile.objs > @@ -10,6 +10,8 @@ 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.d hw/i386/q35-acpi-dsdt.d > + > iasl-option=$(shell if test -z "`$(1) $(2) 2>&1 > /dev/null`" \ > ; then echo "$(2)"; else echo "$(3)"; fi ;) > > diff --git a/rules.mak b/rules.mak > index 6e35c36..4551b9e 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -368,6 +368,6 @@ define unnest-vars > $(error $o added in $v but $o-objs is not set))) > $(shell mkdir -p ./ $(sort $(dir $($v)))) > # Include all the .d files > - $(eval -include $(addsuffix *.d, $(sort $(dir $($v))))) > + $(eval -include $(patsubst %.o,%.d,$(patsubst %.mo,%.d,$($v)))) Pls add space after comma, like it was in the original. > $(eval $v := $(filter-out %/,$($v)))) > endef > -- > --Victor ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files. 2015-08-05 18:32 ` Michael S. Tsirkin @ 2015-08-05 18:51 ` Michael S. Tsirkin 0 siblings, 0 replies; 11+ messages in thread From: Michael S. Tsirkin @ 2015-08-05 18:51 UTC (permalink / raw) To: Michael S. Tsirkin Cc: Peter Maydell, Eduardo Habkost, Stefan Weil, qemu-devel, Paolo Bonzini, Richard Henderson On Wed, Aug 05, 2015 at 09:32:18PM +0300, Michael S. Tsirkin wrote: > On Wed, Aug 05, 2015 at 08:29:33PM +0300, Victor Kaplansky wrote: ... > > diff --git a/rules.mak b/rules.mak > > index 6e35c36..4551b9e 100644 > > --- a/rules.mak > > +++ b/rules.mak > > @@ -368,6 +368,6 @@ define unnest-vars > > $(error $o added in $v but $o-objs is not set))) > > $(shell mkdir -p ./ $(sort $(dir $($v)))) > > # Include all the .d files > > - $(eval -include $(addsuffix *.d, $(sort $(dir $($v))))) > > + $(eval -include $(patsubst %.o,%.d,$(patsubst %.mo,%.d,$($v)))) > > Pls add space after comma, like it was in the original. For patsubst comma is pattern delimiter, so if inserted it would be part of the pattern. Should I add a comment on this? --Victor ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-08-06 15:55 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-08-05 17:27 [Qemu-devel] [PATCH v2 0/2] make: Cleanup and fix of loading of dependency info Victor Kaplansky 2015-08-05 17:28 ` [Qemu-devel] [PATCH v2 1/2] make: fix where dependency *.d are stored Victor Kaplansky 2015-08-06 8:57 ` Alex Bennée 2015-08-06 9:02 ` Michael S. Tsirkin 2015-08-06 15:55 ` Alex Bennée 2015-08-05 17:29 ` [Qemu-devel] [PATCH v2 2/2] make: load only required dependency files Victor Kaplansky 2015-08-05 17:40 ` Paolo Bonzini 2015-08-05 18:22 ` Victor kaplansky 2015-08-06 7:05 ` Markus Armbruster 2015-08-05 18:32 ` Michael S. Tsirkin 2015-08-05 18:51 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).