Browse Source

x86, um: merge Kconfig.i386 and Kconfig.x86_64

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Al Viro 16 years ago
parent
commit
4198426af3
4 changed files with 23 additions and 57 deletions
  1. 4 0
      arch/um/Kconfig
  2. 17 16
      arch/um/Kconfig.x86
  3. 0 39
      arch/um/Kconfig.x86_64
  4. 2 2
      arch/um/Makefile

+ 4 - 0
arch/um/Kconfig

@@ -85,6 +85,10 @@ config STATIC_LINK
 	  Additionally, this option enables using higher memory spaces (up to
 	  Additionally, this option enables using higher memory spaces (up to
 	  2.75G) for UML.
 	  2.75G) for UML.
 
 
+config SUBARCH
+	string
+	option env="SUBARCH"
+
 source "arch/um/Kconfig.arch"
 source "arch/um/Kconfig.arch"
 source "mm/Kconfig"
 source "mm/Kconfig"
 source "kernel/time/Kconfig"
 source "kernel/time/Kconfig"

+ 17 - 16
arch/um/Kconfig.i386 → arch/um/Kconfig.x86

@@ -5,24 +5,25 @@ source "arch/x86/Kconfig.cpu"
 endmenu
 endmenu
 
 
 config UML_X86
 config UML_X86
+	def_bool y
+
+config 64BIT
 	bool
 	bool
-	default y
+	default SUBARCH = "x86_64"
 
 
 config X86_32
 config X86_32
-	bool
-	default y
-  	select HAVE_AOUT
+	def_bool !64BIT
+	select HAVE_AOUT
 
 
 config RWSEM_XCHGADD_ALGORITHM
 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
 config 3_LEVEL_PGTABLES
-	bool "Three-level pagetables (EXPERIMENTAL)"
-	default n
+	bool "Three-level pagetables (EXPERIMENTAL)" if !64BIT
+	default 64BIT
 	depends on EXPERIMENTAL
 	depends on EXPERIMENTAL
 	help
 	help
 	Three-level pagetables will let UML have more than 4G of physical
 	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).
 	N (on x86-64 it's automatically enabled, instead, as it's safe there).
 
 
 config ARCH_HAS_SC_SIGNALS
 config ARCH_HAS_SC_SIGNALS
-	bool
-	default y
+	def_bool !64BIT
 
 
 config ARCH_REUSE_HOST_VSYSCALL_AREA
 config ARCH_REUSE_HOST_VSYSCALL_AREA
-	bool
-	default y
+	def_bool !64BIT
+
+config SMP_BROKEN
+	def_bool 64BIT
 
 
 config GENERIC_HWEIGHT
 config GENERIC_HWEIGHT
-	bool
-	default y
+	def_bool y

+ 0 - 39
arch/um/Kconfig.x86_64

@@ -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

+ 2 - 2
arch/um/Makefile

@@ -96,9 +96,9 @@ define archhelp
 endef
 endef
 
 
 ifneq ($(KBUILD_SRC),)
 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
 else
-$(shell ln -fsn Kconfig.$(SUBARCH) $(ARCH_DIR)/Kconfig.arch)
+$(shell ln -fsn Kconfig.$(HEADER_ARCH) $(ARCH_DIR)/Kconfig.arch)
 endif
 endif
 
 
 archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/shared/user_constants.h
 archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/shared/user_constants.h