Re: [PATCH v1] x86/defconfigs: Unbreak 32-bit defconfig builds

From: Ingo Molnar
Date: Wed Sep 09 2020 - 04:00:34 EST



* Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:

> On Tue, Sep 08, 2020 at 02:13:54PM +0200, Ingo Molnar wrote:
> >
> > * Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> >
> > > After the commit 1d0e12fd3a84 ("x86/defconfigs: Refresh defconfig files")
> > > 32-bit builds using defconfig become broken because on x86_64 build host
> > > with no ARCH provided the default behaviour is to assume 64-bit independently
> > > on the configuration file name. The crucial part is CONFIG_64BIT option
> > > that used to be explicit. Let restore the latter option in order to unbreak
> > > 32-bit builds.
> >
> > So exactly which build method broke due to this? The typical way to do a defconfig build is:
> >
> > make ARCH=i386 defconfig
> >
> > which still works fine AFAICS.
>
> uname => x86_64
> make i386_defconfig
>
> It was very convenient to not supply ARCH when build on multi-arch host.

Nice, TIL about the extended 'make *config' targets. :-)

Curiously, they aren't even mentioned in the 'configuration targets'
section of 'make help' and are not discoverable unless you know their
locations.

Anyway, your fix makes sense now to me too.

Do we need a similar for x86_64 defconfig, when built on 32-bit hosts? (not
that anyone does that in practice, but just for completeness.)

Also, it would be nice if there was a way to annotate the defconfig for
'make savedefconfig' preserved these ARCH choices - it currently strips out
all non-enabled options that match their default configuration value.

Thanks,

Ingo