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