aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/um/Kconfig4
-rw-r--r--arch/um/Kconfig.x86 (renamed from arch/um/Kconfig.i386)33
-rw-r--r--arch/um/Kconfig.x86_6439
-rw-r--r--arch/um/Makefile4
4 files changed, 23 insertions, 57 deletions
diff --git a/arch/um/Kconfig b/arch/um/Kconfig
index 393bccfe178..a0801fda0be 100644
--- a/arch/um/Kconfig
+++ b/arch/um/Kconfig
@@ -85,6 +85,10 @@ config STATIC_LINK
Additionally, this option enables using higher memory spaces (up to
2.75G) for UML.
+config SUBARCH
+ string
+ option env="SUBARCH"
+
source "arch/um/Kconfig.arch"
source "mm/Kconfig"
source "kernel/time/Kconfig"
diff --git a/arch/um/Kconfig.i386 b/arch/um/Kconfig.x86
index 1f57c113df6..76200c9f454 100644
--- a/arch/um/Kconfig.i386
+++ b/arch/um/Kconfig.x86
@@ -5,24 +5,25 @@ source "arch/x86/Kconfig.cpu"
endmenu
config UML_X86
+ def_bool y
+
+config 64BIT
bool
- default y
+ default SUBARCH = "x86_64"
config X86_32
- bool
- default y
- select HAVE_AOUT
+ def_bool !64BIT
+ select HAVE_AOUT
config RWSEM_XCHGADD_ALGORITHM
- def_bool y
+ def_bool X86_XADD
-config 64BIT
- bool
- default n
+config RWSEM_GENERIC_SPINLOCK
+ def_bool !X86_XADD
config 3_LEVEL_PGTABLES
- bool "Three-level pagetables (EXPERIMENTAL)"
- default n
+ bool "Three-level pagetables (EXPERIMENTAL)" if !64BIT
+ default 64BIT
depends on EXPERIMENTAL
help
Three-level pagetables will let UML have more than 4G of physical
@@ -33,13 +34,13 @@ config 3_LEVEL_PGTABLES
N (on x86-64 it's automatically enabled, instead, as it's safe there).
config ARCH_HAS_SC_SIGNALS
- bool
- default y
+ def_bool !64BIT
config ARCH_REUSE_HOST_VSYSCALL_AREA
- bool
- default y
+ def_bool !64BIT
+
+config SMP_BROKEN
+ def_bool 64BIT
config GENERIC_HWEIGHT
- bool
- default y
+ def_bool y
diff --git a/arch/um/Kconfig.x86_64 b/arch/um/Kconfig.x86_64
deleted file mode 100644
index 40b3407cfe1..00000000000
--- a/arch/um/Kconfig.x86_64
+++ /dev/null
@@ -1,39 +0,0 @@
-
-menu "Host processor type and features"
-
-source "arch/x86/Kconfig.cpu"
-
-endmenu
-
-config UML_X86
- bool
- default y
-
-config 64BIT
- bool
- default y
-
-#XXX: this is so in the underlying arch, but it's wrong!!!
-config RWSEM_GENERIC_SPINLOCK
- bool
- default y
-
-config 3_LEVEL_PGTABLES
- bool
- default y
-
-config ARCH_HAS_SC_SIGNALS
- bool
- default n
-
-config ARCH_REUSE_HOST_VSYSCALL_AREA
- bool
- default n
-
-config SMP_BROKEN
- bool
- default y
-
-config GENERIC_HWEIGHT
- bool
- default y
diff --git a/arch/um/Makefile b/arch/um/Makefile
index 2e042b0e3b8..bc070cef3ce 100644
--- a/arch/um/Makefile
+++ b/arch/um/Makefile
@@ -96,9 +96,9 @@ define archhelp
endef
ifneq ($(KBUILD_SRC),)
-$(shell mkdir -p $(ARCH_DIR) && ln -fsn $(srctree)/$(ARCH_DIR)/Kconfig.$(SUBARCH) $(ARCH_DIR)/Kconfig.arch)
+$(shell mkdir -p $(ARCH_DIR) && ln -fsn $(srctree)/$(ARCH_DIR)/Kconfig.$(HEADER_ARCH) $(ARCH_DIR)/Kconfig.arch)
else
-$(shell ln -fsn Kconfig.$(SUBARCH) $(ARCH_DIR)/Kconfig.arch)
+$(shell ln -fsn Kconfig.$(HEADER_ARCH) $(ARCH_DIR)/Kconfig.arch)
endif
archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/shared/user_constants.h