Bug 10470

Summary: x86: defconfig not being applied automatically since 2.6.24
Product: Other Reporter: Daniel Drake (dsd)
Component: OtherAssignee: Sam Ravnborg (sam)
Status: CLOSED CODE_FIX    
Severity: normal CC: kernel, kfm, mingo, randy.dunlap, tglx
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.24 Subsystem:
Regression: Yes Bisected commit-id:

Description Daniel Drake 2008-04-17 10:53:47 UTC
In 2.6.23, if you unpacked a kernel source tarball and then ran "make menuconfig" you'd be presented with this message:
    # using defaults found in arch/i386/defconfig

and the default options would be set.

The same thing in 2.6.24 does not give you any "using defaults" message, and the default config options within menuconfig are rather blank (e.g. no PCI support). You can work around this by explicitly running "make defconfig" before menuconfig, but it would be nice to have the behaviour the way it was for 2.6.23 (and the way it still is for other archs).


I've looked into the problem. It works on 2.6.23 because of init/Kconfig which is still unchanged:

config DEFCONFIG_LIST
    [...]
    default "arch/$ARCH/defconfig"

arch/i386/defconfig and arch/x86_64/defconfig existed in 2.6.23, but not in 2.6.24 due to the arch merge.

I'm not really sure of the right way to fix it for the newer kernels. I tried adding another default in DEFCONFIG_LIST:
    default "arch/$SRCARCH/configs/$KBUILD_DEFCONFIG"
but it seems that $SRCARCH and $KBUILD_DEFCONFIG are not being exported to kconfig and I couldn't immediately see how to change that. Plus I'm not sure that this is the right approach.
Comment 1 Daniel Drake 2008-04-17 10:54:22 UTC
downstream bug report: http://bugs.gentoo.org/show_bug.cgi?id=215442
Comment 2 Sam Ravnborg 2008-04-28 13:04:36 UTC
Hi Daniel.

Following patch seems fix it in my testing.
Can you try to give it a spin.

It just expand the defconfig list with an additional
choice that depends on the bit size.


	Sam

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index a12dbb2..91df357 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -25,6 +25,18 @@ config X86
 	select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
 	select HAVE_ARCH_KGDB if !X86_VOYAGER
 
+config DEFCONFIG_LIST
+	string
+	depends on X86_32
+	option defconfig_list
+	default "arch/x86/configs/i386_defconfig"
+
+config DEFCONFIG_LIST
+	string
+	depends on X86_64
+	option defconfig_list
+	default "arch/x86/configs/x86_64_defconfig"
+
 
 config GENERIC_LOCKBREAK
 	def_bool n
Comment 3 Daniel Drake 2008-04-29 03:12:40 UTC
that works, thanks!
Comment 4 Sam Ravnborg 2008-04-29 03:55:23 UTC
Fix is in x86.git and will hit mainline soon.