When hw/$DIR/Kconfig is changed, the corresponding generated
hw/$DIR/config-devices.mak is not being updated.
Fix this by including all the hw/*/Kconfig files to the prerequisite
names of the rule generating the config-devices.mak files.
Fixes: e0e312f3525a (build: switch to Kconfig)
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
If OK, I plan to include this fix in the "hw/i386/pc: Split PIIX3
southbridge from i440FX northbridge" pull request.
---
Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 0e994a275d..c1461b21e8 100644
--- a/Makefile
+++ b/Makefile
@@ -384,7 +384,10 @@ MINIKCONF_ARGS = \
CONFIG_LINUX=$(CONFIG_LINUX) \
CONFIG_PVRDMA=$(CONFIG_PVRDMA)
-MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig
+MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig \
+ $(patsubst %,$(SRC_PATH)/hw/%,$(shell sed -ne \
+ 's/source \(.*\)/\1/p' \
+ < $(SRC_PATH)/hw/Kconfig))
MINIKCONF = $(PYTHON) $(SRC_PATH)/scripts/minikconf.py \
$(SUBDIR_DEVICES_MAK): %/config-devices.mak: default-configs/%.mak $(MINIKCONF_INPUTS) $(BUILD_DIR)/config-host.mak
--
2.21.0
On Mon, Nov 04, 2019 at 10:55:30AM +0100, Philippe Mathieu-Daudé wrote: > When hw/$DIR/Kconfig is changed, the corresponding generated > hw/$DIR/config-devices.mak is not being updated. > Fix this by including all the hw/*/Kconfig files to the prerequisite > names of the rule generating the config-devices.mak files. > > Fixes: e0e312f3525a (build: switch to Kconfig) > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > If OK, I plan to include this fix in the "hw/i386/pc: Split PIIX3 > southbridge from i440FX northbridge" pull request. > --- > Makefile | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 0e994a275d..c1461b21e8 100644 > --- a/Makefile > +++ b/Makefile > @@ -384,7 +384,10 @@ MINIKCONF_ARGS = \ > CONFIG_LINUX=$(CONFIG_LINUX) \ > CONFIG_PVRDMA=$(CONFIG_PVRDMA) > > -MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig > +MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig \ > + $(patsubst %,$(SRC_PATH)/hw/%,$(shell sed -ne \ > + 's/source \(.*\)/\1/p' \ > + < $(SRC_PATH)/hw/Kconfig)) Why can't we use the simpler wildcard statement: $(wildcard $(SRC_PATH)/hw/*/Kconfig) instead of reading the file names from the hw/Kconfig file ? Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 11/5/19 3:55 PM, Daniel P. Berrangé wrote: > On Mon, Nov 04, 2019 at 10:55:30AM +0100, Philippe Mathieu-Daudé wrote: >> When hw/$DIR/Kconfig is changed, the corresponding generated >> hw/$DIR/config-devices.mak is not being updated. >> Fix this by including all the hw/*/Kconfig files to the prerequisite >> names of the rule generating the config-devices.mak files. >> >> Fixes: e0e312f3525a (build: switch to Kconfig) >> Reported-by: Peter Maydell <peter.maydell@linaro.org> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> --- >> If OK, I plan to include this fix in the "hw/i386/pc: Split PIIX3 >> southbridge from i440FX northbridge" pull request. >> --- >> Makefile | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/Makefile b/Makefile >> index 0e994a275d..c1461b21e8 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -384,7 +384,10 @@ MINIKCONF_ARGS = \ >> CONFIG_LINUX=$(CONFIG_LINUX) \ >> CONFIG_PVRDMA=$(CONFIG_PVRDMA) >> >> -MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig >> +MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig \ >> + $(patsubst %,$(SRC_PATH)/hw/%,$(shell sed -ne \ >> + 's/source \(.*\)/\1/p' \ >> + < $(SRC_PATH)/hw/Kconfig)) > > Why can't we use the simpler wildcard statement: > > $(wildcard $(SRC_PATH)/hw/*/Kconfig) > > instead of reading the file names from the hw/Kconfig file ? You might have uncommited Kconfig files, but this shouldn't be a problem, make is only interested in checking the modification time of these files. Thanks for reviewing, I'll respin.
On Mon, Nov 4, 2019 at 10:55 AM Philippe Mathieu-Daudé <philmd@redhat.com> wrote: > > When hw/$DIR/Kconfig is changed, the corresponding generated > hw/$DIR/config-devices.mak is not being updated. > Fix this by including all the hw/*/Kconfig files to the prerequisite > names of the rule generating the config-devices.mak files. You can see this tread where Peter reported the failure: https://lists.gnu.org/archive/html/qemu-devel/2019-11/msg00125.html How to reproduce: $ git checkout next_branch $ make i386-softmmu/all $ git checkout prev_branch $ make clean $ make i386-softmmu/all # error $ make print-MINIKCONF_INPUTS > Fixes: e0e312f3525a (build: switch to Kconfig) > Reported-by: Peter Maydell <peter.maydell@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > If OK, I plan to include this fix in the "hw/i386/pc: Split PIIX3 > southbridge from i440FX northbridge" pull request. > --- > Makefile | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index 0e994a275d..c1461b21e8 100644 > --- a/Makefile > +++ b/Makefile > @@ -384,7 +384,10 @@ MINIKCONF_ARGS = \ > CONFIG_LINUX=$(CONFIG_LINUX) \ > CONFIG_PVRDMA=$(CONFIG_PVRDMA) > > -MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig > +MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig \ > + $(patsubst %,$(SRC_PATH)/hw/%,$(shell sed -ne \ > + 's/source \(.*\)/\1/p' \ > + < $(SRC_PATH)/hw/Kconfig)) > MINIKCONF = $(PYTHON) $(SRC_PATH)/scripts/minikconf.py \ > > $(SUBDIR_DEVICES_MAK): %/config-devices.mak: default-configs/%.mak $(MINIKCONF_INPUTS) $(BUILD_DIR)/config-host.mak > -- > 2.21.0 >
© 2016 - 2024 Red Hat, Inc.