From: Stephen Warren <>

cmd_cpp_cfg generates a dependency output, but because it's invoked using
if_changed rather than if_changed_dep, that dependency file is ignored.
This results in Kbuild not knowing about which files u-boot.cfg depends
on, so it may not be rebuilt when required.

A practical result of this is that u-boot.cfg may continue to reference
CONFIG_ options that no longer exist in the source tree, and this can
cause the adhoc config options check to fail.

This change modifies Makefile to use if_changed_dep, which in turn causes
all dependencies to be known to the next make invocation.

Signed-off-by: Stephen Warren <>
 Makefile             | 2 +-
 scripts/Makefile.spl | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index fffc188f9ac0..949b264b8fee 100644
--- a/Makefile
+++ b/Makefile
@@ -937,7 +937,7 @@ u-boot.dis: u-boot
                $(OBJDUMP) -d $< > $@
 u-boot.cfg:    include/config.h FORCE
-       $(call if_changed,cpp_cfg)
+       $(call if_changed_dep,cpp_cfg)
 # Check that this build does not use CONFIG options that we don't know about
 # unless they are in Kconfig. All the existing CONFIG options are whitelisted,
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 4994fa887ba3..d0d73d3b0a4c 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -217,7 +217,7 @@ cmd_cpp_cfg = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) 
$(LDPPFLAGS) -ansi \
        -DDO_DEPS_ONLY -D__ASSEMBLY__ -x assembler-with-cpp -P -dM -E -o $@ $<
 $(obj)/$(SPL_BIN).cfg: include/config.h FORCE
-       $(call if_changed,cpp_cfg)
+       $(call if_changed_dep,cpp_cfg)
 pythonpath = PYTHONPATH=tools

U-Boot mailing list

Reply via email to