Skip to contentSkip to conversation

32bit allyesconfig on 64bit system broke

DISCUSSION Andi Kleen 3 participants 4 messages Aug 9, 2013 – Aug 29, 2013 Kbuild

lore
Share & tools
lore

Andi Kleen

author
#0 lore raw

% linux32 make allyesconfig
% head .config
% head .config
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.11.0-rc4 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y

This used to work to give me a 32bit allyesconfig. How am I supposed to do this now?

Thanks,

-Andi

#1 lore raw

Dne 10.8.2013 00:57, Andi Kleen napsal(a):

Quoted 12 lines

% linux32 make allyesconfig
% head .config
% head .config
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.11.0-rc4 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y

Quoted 2 lines

This used to work to give me a 32bit allyesconfig. How am I supposed to do this now?

This changed in ffee0de (x86: Default to ARCH=x86 to avoid overriding CONFIG_64BIT). The default $ARCH value on both ix86 and x86_64 buildhosts is "x86" and CONFIG_64BIT is therefore a user-selectable knob. You can do

make ARCH=i386 allyesconfig

to force 32bit. Or the generic way:

echo '# CONFIG_64BIT is not set' >base.config KCONFIG_ALLCONFIG=base.config linux32 make allyesconfig

Michal

#2 lore raw
Quoted 21 lines · Michal Marek

Dne 10.8.2013 00:57, Andi Kleen napsal(a):

Quoted 12 lines

% linux32 make allyesconfig
% head .config
% head .config
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.11.0-rc4 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y

Quoted 2 lines

This used to work to give me a 32bit allyesconfig. How am I supposed to do this now?

This changed in ffee0de (x86: Default to ARCH=x86 to avoid overriding CONFIG_64BIT). The default $ARCH value on both ix86 and x86_64 buildhosts is "x86" and CONFIG_64BIT is therefore a user-selectable knob. You can do

Quoted 7 lines

make ARCH=i386 allyesconfig

to force 32bit. Or the generic way:

echo '# CONFIG_64BIT is not set' >base.config KCONFIG_ALLCONFIG=base.config linux32 make allyesconfig

"make ARCH=i386 allyesconfig" has been the standard way to do this for quite a few years, so that is the forward and backwards compatible way.

-hpa

author
#3 lore raw
Quoted 24 lines · H. Peter Anvin
Quoted 23 lines · Michal Marek

Dne 10.8.2013 00:57, Andi Kleen napsal(a):

Quoted 12 lines

% linux32 make allyesconfig
% head .config
% head .config
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.11.0-rc4 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y

Quoted 2 lines

This used to work to give me a 32bit allyesconfig. How am I supposed to do this now?

This changed in ffee0de (x86: Default to ARCH=x86 to avoid overriding CONFIG_64BIT). The default $ARCH value on both ix86 and x86_64 buildhosts is "x86" and CONFIG_64BIT is therefore a user-selectable knob. You can do

make ARCH=i386 allyesconfig

Quoted 8 lines
Quoted 5 lines

to force 32bit. Or the generic way:

echo '# CONFIG_64BIT is not set' >base.config KCONFIG_ALLCONFIG=base.config linux32 make allyesconfig

"make ARCH=i386 allyesconfig" has been the standard way to do this for quite a few years, so that is the forward and backwards compatible way.

I've always used "linux32 ..."

Well it broke all my scripts and seems to be a totally pointless change as far as I can tell.

The worse thing is that I didn't notice initially because it's a silent problem -- the 64bit kernel still boots fine on any system with lm support, even with 32bit userland.

So silently breaking long established practice ... no excuse for things like that really in a project like Linux. If you break things please always do it in a obvious way.

-Andi