x86, um: get rid of arch/um/Kconfig.arch
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 25 Aug 2008 08:51:27 +0000 (04:51 -0400)
committerH. Peter Anvin <hpa@zytor.com>
Thu, 23 Oct 2008 05:55:23 +0000 (22:55 -0700)
Teach scripts/kconfig/Makefile and top-level Makefile that arch/*/Makefile
is allowed to say Kconfig := <whatever I want instead of arch/blah/Kconfig>.
Rewrite arch/um/Kconfig and arch/um/Kconfig.<subarch> so that the latter
would be top-level one (and include the pieces of the former).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Makefile
arch/um/Kconfig [deleted file]
arch/um/Kconfig.common [new file with mode: 0644]
arch/um/Kconfig.rest [new file with mode: 0644]
arch/um/Kconfig.um [new file with mode: 0644]
arch/um/Kconfig.x86
arch/um/Makefile
scripts/kconfig/Makefile

index 16e3fbb968a8966bc58570ca117349631e81f2d7..f6703f1cd9c717bfaccb09f34a745ee4fd306b98 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -437,7 +437,7 @@ ifeq ($(config-targets),1)
 # KBUILD_DEFCONFIG may point out an alternative default configuration
 # used for 'make defconfig'
 include $(srctree)/arch/$(SRCARCH)/Makefile
-export KBUILD_DEFCONFIG
+export KBUILD_DEFCONFIG KBUILD_KCONFIG
 
 config %config: scripts_basic outputmakefile FORCE
        $(Q)mkdir -p include/linux include/config
diff --git a/arch/um/Kconfig b/arch/um/Kconfig
deleted file mode 100644 (file)
index a0801fd..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-config DEFCONFIG_LIST
-       string
-       option defconfig_list
-       default "arch/$ARCH/defconfig"
-
-# UML uses the generic IRQ subsystem
-config GENERIC_HARDIRQS
-       bool
-       default y
-
-config UML
-       bool
-       default y
-
-config MMU
-       bool
-       default y
-
-config NO_IOMEM
-       def_bool y
-
-mainmenu "Linux/Usermode Kernel Configuration"
-
-config ISA
-       bool
-
-config SBUS
-       bool
-
-config PCI
-       bool
-
-config PCMCIA
-       bool
-
-# Yet to do!
-config TRACE_IRQFLAGS_SUPPORT
-       bool
-       default n
-
-config LOCKDEP_SUPPORT
-       bool
-       default y
-
-config STACKTRACE_SUPPORT
-       bool
-       default n
-
-config GENERIC_CALIBRATE_DELAY
-       bool
-       default y
-
-config GENERIC_BUG
-       bool
-       default y
-       depends on BUG
-
-config GENERIC_TIME
-       bool
-       default y
-
-config GENERIC_CLOCKEVENTS
-       bool
-       default y
-
-# Used in kernel/irq/manage.c and include/linux/irq.h
-config IRQ_RELEASE_METHOD
-       bool
-       default y
-
-config HZ
-       int
-       default 100
-
-menu "UML-specific options"
-
-config STATIC_LINK
-       bool "Force a static link"
-       default n
-       help
-         This option gives you the ability to force a static link of UML.
-         Normally, UML is linked as a shared binary.  This is inconvenient for
-         use in a chroot jail.  So, if you intend to run UML inside a chroot,
-         you probably want to say Y here.
-         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"
-
-config LD_SCRIPT_STATIC
-       bool
-       default y
-       depends on STATIC_LINK
-
-config LD_SCRIPT_DYN
-       bool
-       default y
-       depends on !LD_SCRIPT_STATIC
-
-source "fs/Kconfig.binfmt"
-
-config HOSTFS
-       tristate "Host filesystem"
-       help
-          While the User-Mode Linux port uses its own root file system for
-          booting and normal file access, this module lets the UML user
-          access files stored on the host.  It does not require any
-          network connection between the Host and UML.  An example use of
-          this might be:
-
-          mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
-
-          where /tmp/fromhost is an empty directory inside UML and
-          /tmp/umlshare is a directory on the host with files the UML user
-          wishes to access.
-
-          For more information, see
-          <http://user-mode-linux.sourceforge.net/hostfs.html>.
-
-          If you'd like to be able to work with files stored on the host,
-          say Y or M here; otherwise say N.
-
-config HPPFS
-       tristate "HoneyPot ProcFS (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
-       help
-         hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc
-         entries to be overridden, removed, or fabricated from the host.
-         Its purpose is to allow a UML to appear to be a physical machine
-         by removing or changing anything in /proc which gives away the
-         identity of a UML.
-
-         See <http://user-mode-linux.sf.net/old/hppfs.html> for more information.
-
-         You only need this if you are setting up a UML honeypot.  Otherwise,
-         it is safe to say 'N' here.
-
-config MCONSOLE
-       bool "Management console"
-       default y
-       help
-          The user mode linux management console is a low-level interface to
-          the kernel, somewhat like the i386 SysRq interface.  Since there is
-          a full-blown operating system running under every user mode linux
-          instance, there is much greater flexibility possible than with the
-          SysRq mechanism.
-
-          If you answer 'Y' to this option, to use this feature, you need the
-          mconsole client (called uml_mconsole) which is present in CVS in
-          2.4.5-9um and later (path /tools/mconsole), and is also in the
-          distribution RPM package in 2.4.6 and later.
-
-          It is safe to say 'Y' here.
-
-config MAGIC_SYSRQ
-       bool "Magic SysRq key"
-       depends on MCONSOLE
-       help
-         If you say Y here, you will have some control over the system even
-         if the system crashes for example during kernel debugging (e.g., you
-         will be able to flush the buffer cache to disk, reboot the system
-         immediately or dump some status information). A key for each of the
-         possible requests is provided.
-
-         This is the feature normally accomplished by pressing a key
-         while holding SysRq (Alt+PrintScreen).
-
-         On UML, this is accomplished by sending a "sysrq" command with
-         mconsole, followed by the letter for the requested command.
-
-         The keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
-         unless you really know what this hack does.
-
-config SMP
-       bool "Symmetric multi-processing support (EXPERIMENTAL)"
-       default n
-       depends on BROKEN
-       help
-         This option enables UML SMP support.
-         It is NOT related to having a real SMP box. Not directly, at least.
-
-         UML implements virtual SMP by allowing as many processes to run
-         simultaneously on the host as there are virtual processors configured.
-
-         Obviously, if the host is a uniprocessor, those processes will
-         timeshare, but, inside UML, will appear to be running simultaneously.
-         If the host is a multiprocessor, then UML processes may run
-         simultaneously, depending on the host scheduler.
-
-         This, however, is supported only in TT mode. So, if you use the SKAS
-         patch on your host, switching to TT mode and enabling SMP usually
-         gives you worse performances.
-         Also, since the support for SMP has been under-developed, there could
-         be some bugs being exposed by enabling SMP.
-
-         If you don't know what to do, say N.
-
-config NR_CPUS
-       int "Maximum number of CPUs (2-32)"
-       range 2 32
-       depends on SMP
-       default "32"
-
-config HIGHMEM
-       bool "Highmem support (EXPERIMENTAL)"
-       depends on !64BIT && EXPERIMENTAL
-       default n
-       help
-         This was used to allow UML to run with big amounts of memory.
-         Currently it is unstable, so if unsure say N.
-
-         To use big amounts of memory, it is recommended enable static
-         linking (i.e. CONFIG_STATIC_LINK) - this should allow the
-         guest to use up to 2.75G of memory.
-
-config KERNEL_STACK_ORDER
-       int "Kernel stack size order"
-       default 1 if 64BIT
-       range 1 10 if 64BIT
-       default 0 if !64BIT
-       help
-         This option determines the size of UML kernel stacks.  They will
-         be 1 << order pages.  The default is OK unless you're running Valgrind
-         on UML, in which case, set this to 3.
-
-endmenu
-
-source "init/Kconfig"
-
-source "kernel/Kconfig.freezer"
-
-source "drivers/block/Kconfig"
-
-source "arch/um/Kconfig.char"
-
-source "drivers/base/Kconfig"
-
-source "net/Kconfig"
-
-source "arch/um/Kconfig.net"
-
-source "drivers/net/Kconfig"
-
-source "drivers/connector/Kconfig"
-
-source "fs/Kconfig"
-
-source "security/Kconfig"
-
-source "crypto/Kconfig"
-
-source "lib/Kconfig"
-
-source "drivers/scsi/Kconfig"
-
-source "drivers/md/Kconfig"
-
-if BROKEN
-       source "drivers/mtd/Kconfig"
-endif
-
-source "drivers/leds/Kconfig"
-
-#This is just to shut up some Kconfig warnings, so no prompt.
-config INPUT
-       bool
-       default n
-
-source "arch/um/Kconfig.debug"
diff --git a/arch/um/Kconfig.common b/arch/um/Kconfig.common
new file mode 100644 (file)
index 0000000..0d207e7
--- /dev/null
@@ -0,0 +1,77 @@
+config DEFCONFIG_LIST
+       string
+       option defconfig_list
+       default "arch/$ARCH/defconfig"
+
+# UML uses the generic IRQ subsystem
+config GENERIC_HARDIRQS
+       bool
+       default y
+
+config UML
+       bool
+       default y
+
+config MMU
+       bool
+       default y
+
+config NO_IOMEM
+       def_bool y
+
+mainmenu "Linux/Usermode Kernel Configuration"
+
+config ISA
+       bool
+
+config SBUS
+       bool
+
+config PCI
+       bool
+
+config PCMCIA
+       bool
+
+# Yet to do!
+config TRACE_IRQFLAGS_SUPPORT
+       bool
+       default n
+
+config LOCKDEP_SUPPORT
+       bool
+       default y
+
+config STACKTRACE_SUPPORT
+       bool
+       default n
+
+config GENERIC_CALIBRATE_DELAY
+       bool
+       default y
+
+config GENERIC_BUG
+       bool
+       default y
+       depends on BUG
+
+config GENERIC_TIME
+       bool
+       default y
+
+config GENERIC_CLOCKEVENTS
+       bool
+       default y
+
+# Used in kernel/irq/manage.c and include/linux/irq.h
+config IRQ_RELEASE_METHOD
+       bool
+       default y
+
+config HZ
+       int
+       default 100
+
+config SUBARCH
+       string
+       option env="SUBARCH"
diff --git a/arch/um/Kconfig.rest b/arch/um/Kconfig.rest
new file mode 100644 (file)
index 0000000..7b5cea7
--- /dev/null
@@ -0,0 +1,42 @@
+source "init/Kconfig"
+
+source "kernel/Kconfig.freezer"
+
+source "drivers/block/Kconfig"
+
+source "arch/um/Kconfig.char"
+
+source "drivers/base/Kconfig"
+
+source "net/Kconfig"
+
+source "arch/um/Kconfig.net"
+
+source "drivers/net/Kconfig"
+
+source "drivers/connector/Kconfig"
+
+source "fs/Kconfig"
+
+source "security/Kconfig"
+
+source "crypto/Kconfig"
+
+source "lib/Kconfig"
+
+source "drivers/scsi/Kconfig"
+
+source "drivers/md/Kconfig"
+
+if BROKEN
+       source "drivers/mtd/Kconfig"
+endif
+
+source "drivers/leds/Kconfig"
+
+#This is just to shut up some Kconfig warnings, so no prompt.
+config INPUT
+       bool
+       default n
+
+source "arch/um/Kconfig.debug"
diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
new file mode 100644 (file)
index 0000000..ec2b8da
--- /dev/null
@@ -0,0 +1,149 @@
+config STATIC_LINK
+       bool "Force a static link"
+       default n
+       help
+         This option gives you the ability to force a static link of UML.
+         Normally, UML is linked as a shared binary.  This is inconvenient for
+         use in a chroot jail.  So, if you intend to run UML inside a chroot,
+         you probably want to say Y here.
+         Additionally, this option enables using higher memory spaces (up to
+         2.75G) for UML.
+
+source "mm/Kconfig"
+source "kernel/time/Kconfig"
+
+config LD_SCRIPT_STATIC
+       bool
+       default y
+       depends on STATIC_LINK
+
+config LD_SCRIPT_DYN
+       bool
+       default y
+       depends on !LD_SCRIPT_STATIC
+
+source "fs/Kconfig.binfmt"
+
+config HOSTFS
+       tristate "Host filesystem"
+       help
+          While the User-Mode Linux port uses its own root file system for
+          booting and normal file access, this module lets the UML user
+          access files stored on the host.  It does not require any
+          network connection between the Host and UML.  An example use of
+          this might be:
+
+          mount none /tmp/fromhost -t hostfs -o /tmp/umlshare
+
+          where /tmp/fromhost is an empty directory inside UML and
+          /tmp/umlshare is a directory on the host with files the UML user
+          wishes to access.
+
+          For more information, see
+          <http://user-mode-linux.sourceforge.net/hostfs.html>.
+
+          If you'd like to be able to work with files stored on the host,
+          say Y or M here; otherwise say N.
+
+config HPPFS
+       tristate "HoneyPot ProcFS (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       help
+         hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc
+         entries to be overridden, removed, or fabricated from the host.
+         Its purpose is to allow a UML to appear to be a physical machine
+         by removing or changing anything in /proc which gives away the
+         identity of a UML.
+
+         See <http://user-mode-linux.sf.net/old/hppfs.html> for more information.
+
+         You only need this if you are setting up a UML honeypot.  Otherwise,
+         it is safe to say 'N' here.
+
+config MCONSOLE
+       bool "Management console"
+       default y
+       help
+          The user mode linux management console is a low-level interface to
+          the kernel, somewhat like the i386 SysRq interface.  Since there is
+          a full-blown operating system running under every user mode linux
+          instance, there is much greater flexibility possible than with the
+          SysRq mechanism.
+
+          If you answer 'Y' to this option, to use this feature, you need the
+          mconsole client (called uml_mconsole) which is present in CVS in
+          2.4.5-9um and later (path /tools/mconsole), and is also in the
+          distribution RPM package in 2.4.6 and later.
+
+          It is safe to say 'Y' here.
+
+config MAGIC_SYSRQ
+       bool "Magic SysRq key"
+       depends on MCONSOLE
+       help
+         If you say Y here, you will have some control over the system even
+         if the system crashes for example during kernel debugging (e.g., you
+         will be able to flush the buffer cache to disk, reboot the system
+         immediately or dump some status information). A key for each of the
+         possible requests is provided.
+
+         This is the feature normally accomplished by pressing a key
+         while holding SysRq (Alt+PrintScreen).
+
+         On UML, this is accomplished by sending a "sysrq" command with
+         mconsole, followed by the letter for the requested command.
+
+         The keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
+         unless you really know what this hack does.
+
+config SMP
+       bool "Symmetric multi-processing support (EXPERIMENTAL)"
+       default n
+       depends on BROKEN
+       help
+         This option enables UML SMP support.
+         It is NOT related to having a real SMP box. Not directly, at least.
+
+         UML implements virtual SMP by allowing as many processes to run
+         simultaneously on the host as there are virtual processors configured.
+
+         Obviously, if the host is a uniprocessor, those processes will
+         timeshare, but, inside UML, will appear to be running simultaneously.
+         If the host is a multiprocessor, then UML processes may run
+         simultaneously, depending on the host scheduler.
+
+         This, however, is supported only in TT mode. So, if you use the SKAS
+         patch on your host, switching to TT mode and enabling SMP usually
+         gives you worse performances.
+         Also, since the support for SMP has been under-developed, there could
+         be some bugs being exposed by enabling SMP.
+
+         If you don't know what to do, say N.
+
+config NR_CPUS
+       int "Maximum number of CPUs (2-32)"
+       range 2 32
+       depends on SMP
+       default "32"
+
+config HIGHMEM
+       bool "Highmem support (EXPERIMENTAL)"
+       depends on !64BIT && EXPERIMENTAL
+       default n
+       help
+         This was used to allow UML to run with big amounts of memory.
+         Currently it is unstable, so if unsure say N.
+
+         To use big amounts of memory, it is recommended enable static
+         linking (i.e. CONFIG_STATIC_LINK) - this should allow the
+         guest to use up to 2.75G of memory.
+
+config KERNEL_STACK_ORDER
+       int "Kernel stack size order"
+       default 1 if 64BIT
+       range 1 10 if 64BIT
+       default 0 if !64BIT
+       help
+         This option determines the size of UML kernel stacks.  They will
+         be 1 << order pages.  The default is OK unless you're running Valgrind
+         on UML, in which case, set this to 3.
index 76200c9f454a29aaf84b736666db4466f01a6873..5ee328099c6359ae721f919ba554ba53e7052551 100644 (file)
@@ -1,3 +1,7 @@
+source "arch/um/Kconfig.common"
+
+menu "UML-specific options"
+
 menu "Host processor type and features"
 
 source "arch/x86/Kconfig.cpu"
@@ -44,3 +48,9 @@ config SMP_BROKEN
 
 config GENERIC_HWEIGHT
        def_bool y
+
+source "arch/um/Kconfig.um"
+
+endmenu
+
+source "arch/um/Kconfig.rest"
index 10894405ca7506adbc54ca9bd550a603d3df518d..425b8193961964ba8d5e2ce7fb8654a551fafd55 100644 (file)
@@ -87,11 +87,7 @@ define archhelp
   echo '                  find in the kernel root.'
 endef
 
-ifneq ($(KBUILD_SRC),)
-$(shell mkdir -p $(ARCH_DIR) && ln -fsn $(srctree)/$(ARCH_DIR)/Kconfig.$(HEADER_ARCH) $(ARCH_DIR)/Kconfig.arch)
-else
-$(shell ln -fsn Kconfig.$(HEADER_ARCH) $(ARCH_DIR)/Kconfig.arch)
-endif
+KBUILD_KCONFIG := arch/um/Kconfig.$(HEADER_ARCH)
 
 archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/shared/user_constants.h
 prepare: $(ARCH_DIR)/include/shared/kern_constants.h
@@ -128,7 +124,7 @@ endef
 # TT or skas makefiles and don't clean skas_ptregs.h.
 CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/shared/uml-config.h \
        $(ARCH_DIR)/include/shared/user_constants.h \
-       $(ARCH_DIR)/include/shared/kern_constants.h $(ARCH_DIR)/Kconfig.arch
+       $(ARCH_DIR)/include/shared/kern_constants.h
 
 MRPROPER_FILES += $(ARCH_SYMLINKS)
 
index fa1a7d565903075ef39d12ba69ecf580b3c37de9..fa8c2dd9c983ef3fa7617c0c87a28cb9ea4546b0 100644 (file)
@@ -4,7 +4,11 @@
 
 PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
 
+ifdef KBUILD_KCONFIG
+Kconfig := $(KBUILD_KCONFIG)
+else
 Kconfig := arch/$(SRCARCH)/Kconfig
+endif
 
 xconfig: $(obj)/qconf
        $< $(Kconfig)