Re: [PATCH v3 3/7] selftests/nolibc: add extra configs customize support

From: Zhangjin Wu
Date: Sat Jul 29 2023 - 13:02:59 EST


> On Sat, Jul 29, 2023 at 10:39:33PM +0800, Zhangjin Wu wrote:
> > > > diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile
> > > > index f42adef87e12..9576f1a0a98d 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
> > >
> > > As this series seems to need a respin anyways:
> > >
> > > extconfig means "extended config", correct?
> > > That is fairly nondescript.
> > >
> >
> > It is more about 'extra' as commented (or 'additional'), for both
> > defconfig (may) and tinyconfig (must) require more options to make boot
> > and print work for nolibc-test.
> >
> > defconfig ------\
> > \
> > \
> > EXTCONFIG ----> a working .config for nolibc-test
> > /
> > /
> > tinyconfig------/
> >
> > > I would prefer something like "NOLIBC_TEST_CONFIG"
> > >
> >
> > Using NOLIBC_TEST_CONFIG is ok, but with this name, do we still only put
> > the 'additional' options there? or we simply use EXTRA_CONFIG instead?
> >
> > # extra kernel config files under configs/, include common + architecture specific
> > EXTRA_CONFIG = common.config $(ARCH).config
>
> Either are fine to me. The most important is to mention that these
> configs are appended to the config during the defconfig and tinyconfig
> targets.
>

Ok, will update the comment to something like this:

# extra configs/ files appended to .config during the defconfig and tinyconfig targets
# include common parts + architecture specific parts
EXTRA_CONFIG = common.config $(ARCH).config


> Also I find it odd to use $(ARCH) here, I would have expected $(XARCH)
> since you probably want to distinguish ppc64 from ppc for example.
>

Yes, we do, but the XARCH and ARCH mmapping patch is the 4th, will
update this to XARCH, this one is the 3th one, do we need to add this
one after the 4th one?

> > > something like "make nolibctestconfig" to make an existing config ready for
> > > nolibc-test.
> >
> > Do you mean rename 'defconfig' to 'nolibctestconfig'? or something
> > nolibc-test-config:
> >
> > nolibc-test-config:
> > $(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,$(EXTRA_CONFIG),$(wildcard $(CURDIR)/configs/$c))
> > $(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) KCONFIG_ALLCONFIG="$(srctree)/.config" allnoconfig
> >
> > It looks too long ;-)
>
> I think that as long as we don't claim to call topdir's makefile targets
> from this directory, we can reuse some similarly named targets which are
> documented in "make help" and are non-ambiguous.

Seems 'nolibc-test-config' is really more meaningful than 'defconfig', especially
when we want to use tinyconfig through it?

$ make nolibc-test-config DEFCONFIG=tinyconfig

>
> > Currently, we use 'defconfig' by default and we use 'make defconfig
> > DEFCONFIG=tinyconfig' to switch to tinyconfig, in the next weeks, when
> > all of the nolibc supported architectures have tinyconfig support, it is
> > able to switch 'tinyconfig' as the default config target.
>
> As long as it doesn't require to locally maintain too many options, I
> think I'm fine with that. But we'll see.

Ok.

Thanks,
Zhangjin

>
> Willy