* Nathan Chancellor <nathan@xxxxxxxxxx> wrote: > On Sun, Mar 27, 2022 at 09:03:14PM +0200, Ingo Molnar wrote: > > Yeah, good catch! ... > > > > I use defconfigs by explicitly adding in the architecture: > > > > kepler:~/tip> make ARCH=i386 defconfig > > > > kepler:~/tip> kconfig-arch > > i386 > > > > ... so never I noticed this bug. > > Ah, good point! > > > I fixed this in the latest version (attached). > > > > Arguably 'make ARCH=i386 savedefconfig' should preserve this, so that > > refreshing defconfigs on bi-arch architectures is idempotent, but that's no > > excuse to regress the existing defconfig behavior. > > Hmmm, I thought that it would, but I think the behavior of savedefconfig > is actually correct with regards to how it handles CONFIG_64BIT in the > presence of an explicit ARCH value, based on how CONFIG_64BIT is > defined: > > config 64BIT > bool "64-bit kernel" if "$(ARCH)" = "x86" > default "$(ARCH)" != "i386" > help > Say yes to build a 64-bit kernel - formerly known as x86_64 > Say no to build a 32-bit kernel - formerly known as i386 > > As the default is no when ARCH == i386 and there is no prompt in that > situation, "# CONFIG_64BIT is not set" gets dropped, as that is the > default. Using savedefconfig without the ARCH variable would do the > right thing. > > I tried playing around with these Kconfig symbols to see if I could get > something that would work for savedefconfig with or without ARCH, but I > could not really come up with anything. I did not try super hard though, > it might still be possible. Unfortunately, even without the ARCH=i386 'make savedefconfig' doesn't seem to be doing the right thing & is dropping the '# CONFIG_64BIT is not set' line: kepler:~/tip> make ARCH=i386 defconfig *** Default configuration is based on 'i386_defconfig' # # configuration written to .config # kepler:~/tip> make savedefconfig kepler:~/tip> diff -up arch/x86/configs/i386_defconfig defconfig --- arch/x86/configs/i386_defconfig 2022-09-02 10:45:43.117430882 +0200 +++ defconfig 2022-09-02 10:46:56.663864901 +0200 @@ -282,4 +282,3 @@ CONFIG_PROVIDE_OHCI1394_DMA_INIT=y CONFIG_EARLY_PRINTK_DBGP=y CONFIG_DEBUG_BOOT_PARAMS=y CONFIG_UNWINDER_FRAME_POINTER=y -# CONFIG_64BIT is not set kepler:~/tip> This is annoying in that every time I modify the i386 defconfig and use 'make savedefconfig', I have to manually revert that change ... This reduces the usability of 'make savedefconfig' quite a bit. Maybe Masahiro-san can tell me how I'm doing this wrong? Thanks, Ingo