diff --git a/Makefile b/Makefile index 16e3fbb968a8..f6703f1cd9c7 100644 --- 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.common b/arch/um/Kconfig.common new file mode 100644 index 000000000000..0d207e73a758 --- /dev/null +++ b/arch/um/Kconfig.common @@ -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 index 000000000000..7b5cea75a6c4 --- /dev/null +++ b/arch/um/Kconfig.rest @@ -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 b/arch/um/Kconfig.um similarity index 76% rename from arch/um/Kconfig rename to arch/um/Kconfig.um index a0801fda0be4..ec2b8da1aba4 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig.um @@ -1,79 +1,3 @@ -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 @@ -85,11 +9,6 @@ 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" @@ -228,48 +147,3 @@ config KERNEL_STACK_ORDER 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.x86 b/arch/um/Kconfig.x86 index 76200c9f454a..5ee328099c63 100644 --- a/arch/um/Kconfig.x86 +++ b/arch/um/Kconfig.x86 @@ -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" diff --git a/arch/um/Makefile b/arch/um/Makefile index 10894405ca75..425b81939619 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile @@ -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) diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index fa1a7d565903..fa8c2dd9c983 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile @@ -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)