kconfig: use /boot/config-* etc. as DEFCONFIG_LIST only for native build

When the .config file is missing, 'make config', 'make menuconfig', etc.
uses a file listed in DEFCONFIG_LIST, if found, as base configuration.

Ususally, /boot/config-$(uname -r) exists, and is used as default.

However, when you are cross-compiling the kernel, it does not make
sense to use /boot/config-* on the build host. It should default to
arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG).

UML previously did not use DEFCONFIG_LIST at all, but it should be
able to use arch/um/configs/$(KBUILD_DEFCONFIG) as a base config file.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
Masahiro Yamada 2021-04-10 23:31:58 +09:00
parent 5ee5465940
commit f02aa48dde
2 changed files with 9 additions and 4 deletions

View File

@ -393,6 +393,11 @@ ifeq ($(ARCH),sh64)
SRCARCH := sh
endif
export cross_compiling :=
ifneq ($(SRCARCH),$(SUBARCH))
cross_compiling := 1
endif
KCONFIG_CONFIG ?= .config
export KCONFIG_CONFIG

View File

@ -18,14 +18,14 @@ silent := -s
endif
export KCONFIG_DEFCONFIG_LIST :=
ifneq ($(SRCARCH),um)
ifndef cross_compiling
kernel-release := $(shell uname -r)
KCONFIG_DEFCONFIG_LIST := \
KCONFIG_DEFCONFIG_LIST += \
/lib/modules/$(kernel-release)/.config \
/etc/kernel-config \
/boot/config-$(kernel-release) \
arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)
/boot/config-$(kernel-release)
endif
KCONFIG_DEFCONFIG_LIST += arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)
# We need this, in case the user has it in its environment
unexport CONFIG_