• M
    kbuild: use KBUILD_DEFCONFIG as the fallback for DEFCONFIG_LIST · 2a86f661
    Masahiro Yamada 提交于
    Most of the Kconfig commands (except defconfig and all*config) read
    the .config file as a base set of CONFIG options.
    
    When it does not exist, the files in DEFCONFIG_LIST are searched in
    this order and loaded if found.
    
    I do not see much sense in the last two lines in DEFCONFIG_LIST.
    
    [1] ARCH_DEFCONFIG
    
    The entry for DEFCONFIG_LIST is guarded by 'depends on !UML'. So, the
    ARCH_DEFCONFIG definition in arch/x86/um/Kconfig is meaningless.
    
    arch/{sh,sparc,x86}/Kconfig define ARCH_DEFCONFIG depending on 32 or
    64 bit variant symbols. This is a little bit strange; ARCH_DEFCONFIG
    should be a fixed string because the base config file is loaded before
    the symbol evaluation stage.
    
    Using KBUILD_DEFCONFIG makes more sense because it is fixed before
    Kconfig is invoked. Fortunately, arch/{sh,sparc,x86}/Makefile define it
    in the same way, and it works as expected. Hence, replace ARCH_DEFCONFIG
    with "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)".
    
    [2] arch/$(ARCH)/defconfig
    
    This file path is no longer valid. The defconfig files are always located
    in the arch configs/ directories.
    
      $ find arch -name defconfig | sort
      arch/alpha/configs/defconfig
      arch/arm64/configs/defconfig
      arch/csky/configs/defconfig
      arch/nds32/configs/defconfig
      arch/riscv/configs/defconfig
      arch/s390/configs/defconfig
      arch/unicore32/configs/defconfig
    
    The path arch/*/configs/defconfig is already covered by
    "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)". So, this file path is
    not necessary.
    
    I moved the default KBUILD_DEFCONFIG to the top Makefile. Otherwise,
    the 7 architectures listed above would end up with endless loop of
    syncconfig.
    Signed-off-by: NMasahiro Yamada <masahiroy@kernel.org>
    2a86f661
Kconfig 95.5 KB