Re: config automatically switches from 32-bit to 64-bit for x86

From: Michal Marek
Date: Thu Jun 03 2010 - 09:31:04 EST


On Thu, May 27, 2010 at 08:46:53PM +0200, Sam Ravnborg wrote:
> On Thu, May 27, 2010 at 11:49:16AM -0400, Christoph Hellwig wrote:
> > On Thu, May 27, 2010 at 05:37:36AM +0530, Jaswinder Singh Rajput wrote:
> > > Hello,
> > >
> > > I am trying to build 32 bit kernel image on 64-bit machine but after
> > > 'make menuconfig' it automatically switches 32-bit to 64-bit.
> > >
> > > Is this a BUG or did intentionally.
> >
> > I think it's intentional, but I'm really annoyed by this behaviour.
>
> The request when we did the merge of 32 and 64 bit was that we
> should continue to build 64bit kernels on 64 bit machines.
> And likewise for 32bit.
> Because this was what the users where used to.
>
> We could simplify metters by defining new rules.
> As you suggest that uname on an intel box always resulted in ARCH=x86.
> But then people would complain why a 32 bit kernel is default when
> the box is 64 bit.

Which is not acceptable, IMO. An x86_64 distro typically has a complete
64bit userspace including /sbin/init, so the default kernel has to be
64bit.

What about always making the prompt visible, so that the previously set
value gets reused? The downside is that 'make ARCH=i386 menuconfig' in a
clean tree on x86_64 will default to 64bit, because it will find the
setting in the config of the running 64bit kernel :(. But after manually
turning CONFIG_64BIT off, the setting will be preserved.

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index dcb0593..05ec418 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -3,7 +3,7 @@ mainmenu "Linux Kernel Configuration for x86"

# Select 32 or 64 bit
config 64BIT
- bool "64-bit kernel" if ARCH = "x86"
+ bool "64-bit kernel"
default ARCH = "x86_64"
---help---
Say yes to build a 64-bit kernel - formerly known as x86_64
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/