• Masahiro Yamada's avatar
    kbuild: update config_data.gz only when the content of .config is changed · 46b41d5d
    Masahiro Yamada authored
    If the timestamp of the .config file is updated, config_data.gz is
    regenerated, then vmlinux is re-linked. This occurs even if the content
    of the .config has not changed at all.
    
    This issue was mitigated by commit 67424f61 ("kconfig: do not write
    .config if the content is the same"); Kconfig does not update the
    .config when it ends up with the identical configuration.
    
    The issue is remaining when the .config is created by *_defconfig with
    some config fragment(s) applied on top.
    
    This is typical for powerpc and mips, where several *_defconfig targets
    are constructed by using merge_config.sh.
    
    One workaround is to have the copy of the .config. The filechk rule
    updates the copy, kernel/config_data, by checking the content instead
    of the timestamp.
    
    With this commit, the second run with the same configuration avoids
    the needless rebuilds.
    
      $ make ARCH=mips defconfig all
       [ snip ]
      $ make ARCH=mips defconfig all
      *** Default configuration is based on target '32r2el_defconfig'
      Using ./arch/mips/configs/generic_defconfig as base
      Merging arch/mips/configs/generic/32r2.config
      Merging arch/mips/configs/generic/el.config
      Merging ./arch/mips/configs/generic/board-boston.config
      Merging ./arch/mips/configs/generic/board-ni169445.config
      Merging ./arch/mips/configs/generic/board-ocelot.config
      Merging ./arch/mips/configs/generic/board-ranchu.config
      Merging ./arch/mips/configs/generic/board-sead-3.config
      Merging ./arch/mips/configs/generic/board-xilfpga.config
      #
      # configuration written to .config
      #
        SYNC    include/config/auto.conf
        CALL    scripts/checksyscalls.sh
        CALL    scripts/atomic/check-atomics.sh
        CHK     include/generated/compile.h
        CHK     include/generated/autoksyms.h
    Reported-by: default avatarElliot Berman <eberman@codeaurora.org>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    46b41d5d
Makefile 5.16 KB