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

From: Thomas Weißschuh
Date: Sat Jul 29 2023 - 08:37:02 EST


On 2023-07-27 23:02:02+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
> allows to add extra options in the defconfig target.
>
> Based on the .config generated from DEFCONFIG_<ARCH>, It allows to
> customize extra kernel config options via both 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ßschuh <linux@xxxxxxxxxxxxxx>
> Link: https://lore.kernel.org/lkml/67eb70d4-c9ff-4afc-bac7-7f36cc2c81bc@xxxxxxxx/
> Reviewed-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
> Signed-off-by: Zhangjin Wu <falcon@xxxxxxxxxxx>
> ---
> tools/testing/selftests/nolibc/Makefile | 5 +++++
> 1 file changed, 5 insertions(+)
>
> 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.

I would prefer something like "NOLIBC_TEST_CONFIG" and something like
"make nolibctestconfig" to make an existing config ready for
nolibc-test.

> +
> # optional tests to run (default = all)
> TEST =
>
> @@ -161,6 +164,8 @@ initramfs: nolibc-test
>
> 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
>
> kernel: initramfs
> $(Q)$(MAKE) -C $(srctree) ARCH=$(ARCH) CC=$(CC) CROSS_COMPILE=$(CROSS_COMPILE) $(IMAGE_NAME) CONFIG_INITRAMFS_SOURCE=$(CURDIR)/initramfs
> --
> 2.25.1
>