diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f3f7cb01d69d..5edf6fa44762 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -1,8 +1,9 @@ # SPDX-License-Identifier: GPL-2.0 # Select 32 or 64 bit config 64BIT - bool "64-bit kernel" if "$(ARCH)" = "x86" - default "$(ARCH)" != "i386" + bool "64-bit kernel" + default ("$(ARCH)" != "i386") && \ + (("$(ARCH)" != "x86") || ("$(UARCH)" != "i386")) help Say yes to build a 64-bit kernel - formerly known as x86_64 Say no to build a 32-bit kernel - formerly known as i386 diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 46fec0b08487..166a1b6d3038 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -1,9 +1,15 @@ # SPDX-License-Identifier: GPL-2.0 # Unified Makefile for i386 and x86_64 +# For cases where build machine's architecture is relevant, +# "uname machine architecture" -> UARCH +# Note we flatten i386/i486/i686 into a generic "i386" value +UARCH := $(shell uname -m | sed -e 's/i.86/i386/') +export UARCH + # select defconfig based on actual architecture ifeq ($(ARCH),x86) - ifeq ($(shell uname -m | sed -e 's/i.86/i386/'),i386) + ifeq ($(UARCH),i386) KBUILD_DEFCONFIG := i386_defconfig else KBUILD_DEFCONFIG := x86_64_defconfig