>From now on UML does no longer depend on SUBARCH and will never silently change CONFIG_64BIT. "make defconfig ARCH=um" produces now a .config with is suitable for your host arch. "make i386_defconfig ARCH=um" replaces "make defconfig ARCH=um SUBARCH=i386" "and make x86_64_defconfig ARCH=um" replaces "make defconfig ARCH=um SUBARCH=x86_64" Finally a "make ARCH=um" will produce an UML as described in your .config and you don't have to worry about setting the correct SUBARCH. This patch is based on: https://lkml.org/lkml/2013/7/4/396 Cc: Ramkumar Ramachandra <artagnon@xxxxxxxxx> Signed-off-by: Richard Weinberger <richard@xxxxxx> --- arch/um/Kconfig.common | 4 ---- arch/um/Makefile | 21 +++++++++++---------- arch/x86/Makefile.um | 2 +- arch/x86/um/Kconfig | 6 +++--- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common index bceee66..a7ef0b4 100644 --- a/arch/um/Kconfig.common +++ b/arch/um/Kconfig.common @@ -58,7 +58,3 @@ config GENERIC_BUG config HZ int default 100 - -config SUBARCH - string - option env="SUBARCH" diff --git a/arch/um/Makefile b/arch/um/Makefile index 133f7de..5bc7892 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile @@ -8,6 +8,8 @@ ARCH_DIR := arch/um OS := $(shell uname -s) +OS_ARCH := $(shell uname -m) + # We require bash because the vmlinux link and loader script cpp use bash # features. SHELL := /bin/bash @@ -20,15 +22,14 @@ core-y += $(ARCH_DIR)/kernel/ \ MODE_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include/shared/skas -HEADER_ARCH := $(SUBARCH) - -# Additional ARCH settings for x86 -ifeq ($(SUBARCH),i386) - HEADER_ARCH := x86 -endif -ifeq ($(SUBARCH),x86_64) - HEADER_ARCH := x86 - KBUILD_CFLAGS += -mcmodel=large +# Currently we support only i386 and x86_64, if you port UML to another arch +# add another if branch... +ifeq ($(OS_ARCH),x86_64) + HEADER_ARCH := x86 + KBUILD_DEFCONFIG := x86_64_defconfig +else + HEADER_ARCH := x86 + KBUILD_DEFCONFIG := i386_defconfig endif HOST_DIR := arch/$(HEADER_ARCH) @@ -155,4 +156,4 @@ endef include/generated/user_constants.h: $(HOST_DIR)/um/user-offsets.s $(call filechk,gen-asm-offsets) -export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS DEV_NULL_PATH +export USER_CFLAGS CFLAGS_NO_HARDENING OS DEV_NULL_PATH diff --git a/arch/x86/Makefile.um b/arch/x86/Makefile.um index 36b62bc..91d088c 100644 --- a/arch/x86/Makefile.um +++ b/arch/x86/Makefile.um @@ -40,7 +40,7 @@ else START := 0x60000000 -KBUILD_CFLAGS += -fno-builtin -m64 +KBUILD_CFLAGS += -fno-builtin -m64 -mcmodel=large CHECKFLAGS += -m64 -D__x86_64__ KBUILD_AFLAGS += -m64 diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig index 14ef8d1..bb6df67 100644 --- a/arch/x86/um/Kconfig +++ b/arch/x86/um/Kconfig @@ -1,4 +1,4 @@ -mainmenu "User Mode Linux/$SUBARCH $KERNELVERSION Kernel Configuration" +mainmenu "User Mode Linux $KERNELVERSION Kernel Configuration" source "arch/um/Kconfig.common" @@ -15,8 +15,8 @@ config UML_X86 select GENERIC_FIND_FIRST_BIT config 64BIT - bool "64-bit kernel" if SUBARCH = "x86" - default SUBARCH != "i386" + bool "64-bit kernel" + default n config X86_32 def_bool !64BIT -- 1.8.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html