[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] build/xen: fail to rebuild if Kconfig fails
When doing a rebuild with an xen/include/config/auto.conf already present in the tree, failures from Kconfig are ignored since the target is present: gmake -C xen install gmake[1]: Entering directory '/root/src/xen/xen' tools/kconfig/conf --syncconfig Kconfig common/Kconfig:2: syntax error common/Kconfig:1: invalid statement gmake[2]: *** [tools/kconfig/Makefile:73: syncconfig] Error 1 UPD include/xen/compile.h Xen 4.19-unstable gmake[3]: Nothing to be done for 'all'. gmake[2]: 'arch/x86/include/asm/asm-offsets.h' is up to date. Ultimately leading to a successful build despite the Kconfig error. Fix this by first removing xen/include/config/auto.conf before attempting to regenerate, and then also make xen/include/config/auto.conf a hard dependency of the build process (ie: drop the leading '-') and reordering so the .cmd target is executed before including the configuration file. This leads to the build properly failing if the config file cannot be re-generated: gmake -C xen install gmake[1]: Entering directory '/root/src/xen/xen' rm -rf include/config/auto.conf tools/kconfig/conf --syncconfig Kconfig common/Kconfig:2: syntax error common/Kconfig:1: invalid statement gmake[2]: *** [tools/kconfig/Makefile:73: syncconfig] Error 1 gmake[1]: *** [Makefile:379: include/config/auto.conf] Error 2 gmake[1]: Leaving directory '/root/src/xen/xen' gmake: *** [Makefile:143: install-xen] Error 2 Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> --- Maybe there's a better way for dealing with all this, my makefile foo is very limited. --- xen/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xen/Makefile b/xen/Makefile index 21832d640225..7e6860a58a1d 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -358,10 +358,10 @@ config: tools_fixdep outputmakefile FORCE else # !config-build ifeq ($(need-config),y) --include include/config/auto.conf # Read in dependencies to all Kconfig* files, make sure to run syncconfig if # changes are detected. -include include/config/auto.conf.cmd +include include/config/auto.conf # Allow people to just run `make` as before and not force them to configure # Only run defconfig if $(KCONFIG_CONFIG) is missing @@ -375,6 +375,7 @@ $(KCONFIG_CONFIG): tools_fixdep # This exploits the 'multi-target pattern rule' trick. # The syncconfig should be executed only once to make all the targets. include/config/%.conf include/config/%.conf.cmd: $(KCONFIG_CONFIG) + rm -rf include/config/$*.conf $(Q)$(MAKE) $(build)=tools/kconfig syncconfig ifeq ($(CONFIG_DEBUG),y) -- 2.43.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |