Re: [PATCH v1 4/8] selftests/nolibc: add extra config file customize support

From: Zhangjin Wu
Date: Tue Jul 25 2023 - 10:30:24 EST


Hi, Willy

> On Wed, Jul 19, 2023 at 05:14:07AM +0800, Zhangjin Wu wrote:
> > The default DEFCONFIG_<ARCH> may not always work for all architectures,
> > some architectures require to add extra kernel config options, this adds
> > a new 'extconfig' target for this requirement.
> >
> > It allows to customize extra kernel config options via the common
> > common.config and the architecture specific <ARCH>.config, at last
> > trigger 'allnoconfig' to let them take effect with missing config
> > options as disabled.
> >
> > The scripts/kconfig/merge_config.sh tool is used to merge the extra
> > config files.
> >
> > Suggested-by: Thomas Wei�chuh <linux@xxxxxxxxxxxxxx>
> > Link: https://lore.kernel.org/lkml/67eb70d4-c9ff-4afc-bac7-7f36cc2c81bc@xxxxxxxx/
> > Signed-off-by: Zhangjin Wu <falcon@xxxxxxxxxxx>
> > ---
> > tools/testing/selftests/nolibc/Makefile | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
> > index f42adef87e12..08a5ca5f418b 100644
> > --- a/tools/testing/selftests/nolibc/Makefile
> > +++ b/tools/testing/selftests/nolibc/Makefile
> > @@ -39,6 +39,9 @@ DEFCONFIG_s390 = defconfig
> > DEFCONFIG_loongarch = defconfig
> > DEFCONFIG = $(DEFCONFIG_$(ARCH))
> >
> > +# extra kernel config files under configs/, include common + architecture specific
> > +EXTCONFIG = common.config $(ARCH).config
> > +
> > # optional tests to run (default = all)
> > TEST =
> >
> > @@ -162,6 +165,10 @@ initramfs: nolibc-test
> > defconfig:
> > $(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) mrproper $(DEFCONFIG) prepare
> >
> > +extconfig:
> > + $(Q)$(srctree)/scripts/kconfig/merge_config.sh -O "$(srctree)" -m "$(srctree)/.config" $(foreach c,$(EXTCONFIG),$(wildcard $(CURDIR)/configs/$c))
> > + $(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) KCONFIG_ALLCONFIG="$(srctree)/.config" allnoconfig
> > +
>
> Please also mention this entry in the "help" message.
> Other than that, OK.
>

Willy, as we discussed in another tinyconfig series, in order to avoid
add more complexity to users, I plan to drop this standalone 'extconfig'
target and move the extra config operations to defconfig target like
this:

defconfig:
$(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) mrproper $(DEFCONFIG) prepare
$(Q)$(srctree)/scripts/kconfig/merge_config.sh -O "$(srctree)" -m "$(srctree)/.config" $(foreach c,$(EXTCONFIG),$(wildcard $(CURDIR)/configs/$c))
$(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) KCONFIG_ALLCONFIG="$(srctree)/.config" allnoconfig

This extra config options are really critical to default boot and test, so, it
should be a 'default' config action as the 'defconfig' target originally mean.

Will test carefully about this change, what's your idea?

Thanks,
Zhangjin

> Willy