[PATCH v2] Makefile: Fix config-devices.mak not regenerated when Kconfig updated

Philippe Mathieu-Daudé posted 1 patch 4 years, 5 months ago
Test checkpatch passed
Test FreeBSD passed
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test docker-quick@centos7 passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20191105151209.1814-1-philmd@redhat.com
Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH v2] Makefile: Fix config-devices.mak not regenerated when Kconfig updated
Posted by Philippe Mathieu-Daudé 4 years, 5 months ago
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>
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
v2:
Simplify using the wildcard() function instead of calling `sed` (danpb)

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 branch_modifying_kconfig
  $ make i386-softmmu/all
  $ make clean
  $ git checkout prev_branch
  $ make clean
  $ make i386-softmmu/all
    # error

If OK, I plan to include this fix in the "hw/i386/pc: Split PIIX3
southbridge from i440FX northbridge" pull request.
---
 Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 0e994a275d..f4fca08cd7 100644
--- a/Makefile
+++ b/Makefile
@@ -384,7 +384,8 @@ 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 \
+                   $(wildcard $(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


Re: [PATCH v2] Makefile: Fix config-devices.mak not regenerated when Kconfig updated
Posted by Daniel P. Berrangé 4 years, 5 months ago
On Tue, Nov 05, 2019 at 04:12:09PM +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>
> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> v2:
> Simplify using the wildcard() function instead of calling `sed` (danpb)
> 
> 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 branch_modifying_kconfig
>   $ make i386-softmmu/all
>   $ make clean
>   $ git checkout prev_branch
>   $ make clean
>   $ make i386-softmmu/all
>     # error
> 
> If OK, I plan to include this fix in the "hw/i386/pc: Split PIIX3
> southbridge from i440FX northbridge" pull request.
> ---
>  Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>

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 :|


Re: [PATCH v2] Makefile: Fix config-devices.mak not regenerated when Kconfig updated
Posted by Laurent Vivier 4 years, 5 months ago
On 05/11/2019 16:12, 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>
> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> v2:
> Simplify using the wildcard() function instead of calling `sed` (danpb)
> 
> 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 branch_modifying_kconfig
>   $ make i386-softmmu/all
>   $ make clean
>   $ git checkout prev_branch
>   $ make clean
>   $ make i386-softmmu/all
>     # error
> 
> If OK, I plan to include this fix in the "hw/i386/pc: Split PIIX3
> southbridge from i440FX northbridge" pull request.
> ---
>  Makefile | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/Makefile b/Makefile
> index 0e994a275d..f4fca08cd7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -384,7 +384,8 @@ 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 \
> +                   $(wildcard $(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
> 

Reviewed-by: Laurent Vivier <lvivier@redhat.com>