2023-12-28 07:10:03

by Tomasz Figa

[permalink] [raw]
Subject: [PATCH] kconfig: Add a build target for checking current config for issues

The new target is called 'checkconfig' and currently is basically an
alias for `listnewconfig` with KCONFIG_WARN_UNKNOWN_SYMBOLS set to true.
It can be used to validate if the current config is directly compatible
with the current kernel version or needs some manual adjustment.

Signed-off-by: Tomasz Figa <[email protected]>
---
scripts/kconfig/Makefile | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 4eee155121a8..501cb9b76414 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -81,6 +81,9 @@ PHONY += savedefconfig defconfig
savedefconfig: $(obj)/conf
$(Q)$< $(silent) --$@=defconfig $(Kconfig)

+checkconfig: $(obj)/conf
+ $(Q)KCONFIG_WARN_UNKNOWN_SYMBOLS=true $< --listnewconfig $(Kconfig)
+
defconfig: $(obj)/conf
ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
@$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
@@ -144,6 +147,7 @@ help:
@echo ' default value without prompting'
@echo ' tinyconfig - Configure the tiniest possible kernel'
@echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)'
+ @echo ' checkconfig - Check current config for unrecognized and new symbols'
@echo ''
@echo 'Configuration topic targets:'
@$(foreach f, $(all-config-fragments), \
--
2.43.0.472.g3155946c3a-goog



2023-12-28 16:11:42

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Add a build target for checking current config for issues

On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <[email protected]> wrote:
>
> The new target is called 'checkconfig' and currently is basically an
> alias for `listnewconfig` with KCONFIG_WARN_UNKNOWN_SYMBOLS set to true.
> It can be used to validate if the current config is directly compatible
> with the current kernel version or needs some manual adjustment.
>
> Signed-off-by: Tomasz Figa <[email protected]>


I rejected a new target in the past.

https://lore.kernel.org/all/[email protected]/T/#m55c37e3091158f8cb008d9e0b5c6bf3f5ead225a



Instead, you can run

KCONFIG_WARN_UNKNOWN_SYMBOLS=1 make listnewconfig

or

make W=c listnewconfig









> ---
> scripts/kconfig/Makefile | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index 4eee155121a8..501cb9b76414 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -81,6 +81,9 @@ PHONY += savedefconfig defconfig
> savedefconfig: $(obj)/conf
> $(Q)$< $(silent) --$@=defconfig $(Kconfig)
>
> +checkconfig: $(obj)/conf
> + $(Q)KCONFIG_WARN_UNKNOWN_SYMBOLS=true $< --listnewconfig $(Kconfig)
> +
> defconfig: $(obj)/conf
> ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)),)
> @$(kecho) "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
> @@ -144,6 +147,7 @@ help:
> @echo ' default value without prompting'
> @echo ' tinyconfig - Configure the tiniest possible kernel'
> @echo ' testconfig - Run Kconfig unit tests (requires python3 and pytest)'
> + @echo ' checkconfig - Check current config for unrecognized and new symbols'
> @echo ''
> @echo 'Configuration topic targets:'
> @$(foreach f, $(all-config-fragments), \
> --
> 2.43.0.472.g3155946c3a-goog
>


--
Best Regards

Masahiro Yamada

2024-01-10 13:15:33

by Tomasz Figa

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Add a build target for checking current config for issues

On Fri, Dec 29, 2023 at 1:11 AM Masahiro Yamada <[email protected]> wrote:
>
> On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <[email protected]> wrote:
> >
> > The new target is called 'checkconfig' and currently is basically an
> > alias for `listnewconfig` with KCONFIG_WARN_UNKNOWN_SYMBOLS set to true.
> > It can be used to validate if the current config is directly compatible
> > with the current kernel version or needs some manual adjustment.
> >
> > Signed-off-by: Tomasz Figa <[email protected]>
>
>
> I rejected a new target in the past.
>
> https://lore.kernel.org/all/[email protected]/T/#m55c37e3091158f8cb008d9e0b5c6bf3f5ead225a
>

That was specifically for the unrecognized symbols warning. What I'm
proposing is a universal target that would include any possible
diagnostics.

>
>
> Instead, you can run
>
> KCONFIG_WARN_UNKNOWN_SYMBOLS=1 make listnewconfig
>
> or
>
> make W=c listnewconfig
>
>

I can do so, because my team member implemented it and told me and
other team members about it. But how would someone who hasn't heard
about it be aware of the existence of this useful feature?

Best regards,
Tomasz

2024-01-13 10:51:04

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Add a build target for checking current config for issues

On Wed, Jan 10, 2024 at 10:15 PM Tomasz Figa <[email protected]> wrote:
>
> On Fri, Dec 29, 2023 at 1:11 AM Masahiro Yamada <masahiroy@kernelorg> wrote:
> >
> > On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <[email protected]> wrote:
> > >
> > > The new target is called 'checkconfig' and currently is basically an
> > > alias for `listnewconfig` with KCONFIG_WARN_UNKNOWN_SYMBOLS set to true.
> > > It can be used to validate if the current config is directly compatible
> > > with the current kernel version or needs some manual adjustment.
> > >
> > > Signed-off-by: Tomasz Figa <[email protected]>
> >
> >
> > I rejected a new target in the past.
> >
> > https://lore.kernel.org/all/[email protected]/T/#m55c37e3091158f8cb008d9e0b5c6bf3f5ead225a
> >
>
> That was specifically for the unrecognized symbols warning. What I'm
> proposing is a universal target that would include any possible
> diagnostics.
>
> >
> >
> > Instead, you can run
> >
> > KCONFIG_WARN_UNKNOWN_SYMBOLS=1 make listnewconfig
> >
> > or
> >
> > make W=c listnewconfig
> >
> >
>
> I can do so, because my team member implemented it and told me and
> other team members about it. But how would someone who hasn't heard
> about it be aware of the existence of this useful feature?


People are not aware of your 'checkconfig' until
they run 'make help'.

The same for W=c.

'make help' explains it.


c: extra checks in the configuration stage (Kconfig)


--
Best Regards
Masahiro Yamada

2024-01-15 05:16:14

by Tomasz Figa

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Add a build target for checking current config for issues

On Sat, Jan 13, 2024 at 7:51 PM Masahiro Yamada <[email protected]> wrote:
>
> On Wed, Jan 10, 2024 at 10:15 PM Tomasz Figa <[email protected]> wrote:
> >
> > On Fri, Dec 29, 2023 at 1:11 AM Masahiro Yamada <[email protected]> wrote:
> > >
> > > On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <[email protected]> wrote:
> > > >
> > > > The new target is called 'checkconfig' and currently is basically an
> > > > alias for `listnewconfig` with KCONFIG_WARN_UNKNOWN_SYMBOLS set to true.
> > > > It can be used to validate if the current config is directly compatible
> > > > with the current kernel version or needs some manual adjustment.
> > > >
> > > > Signed-off-by: Tomasz Figa <[email protected]>
> > >
> > >
> > > I rejected a new target in the past.
> > >
> > > https://lore.kernel.org/all/[email protected]/T/#m55c37e3091158f8cb008d9e0b5c6bf3f5ead225a
> > >
> >
> > That was specifically for the unrecognized symbols warning. What I'm
> > proposing is a universal target that would include any possible
> > diagnostics.
> >
> > >
> > >
> > > Instead, you can run
> > >
> > > KCONFIG_WARN_UNKNOWN_SYMBOLS=1 make listnewconfig
> > >
> > > or
> > >
> > > make W=c listnewconfig
> > >
> > >
> >
> > I can do so, because my team member implemented it and told me and
> > other team members about it. But how would someone who hasn't heard
> > about it be aware of the existence of this useful feature?
>
>
> People are not aware of your 'checkconfig' until
> they run 'make help'.
>
> The same for W=c.
>
> 'make help' explains it.
>
>
> c: extra checks in the configuration stage (Kconfig)

Okay, that wasn't something present in Linux 6.7-rc7 that I used as my
base. I checked out the current linux-next and it's indeed there,
which I guess resolves the original problem somewhat. I still don't
think it would be very clear from the description for a new user,
especially given that it's far below the config-related targets, but
at least it's there. Thanks for adding it.

Best regards,
Tomasz