Message ID | 20231228070941.3611649-1-tfiga@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kconfig: Add a build target for checking current config for issues | expand |
On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <tfiga@chromium.org> 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 <tfiga@chromium.org> I rejected a new target in the past. https://lore.kernel.org/all/20230817012007.131868-1-senozhatsky@chromium.org/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
On Fri, Dec 29, 2023 at 1:11 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <tfiga@chromium.org> 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 <tfiga@chromium.org> > > > I rejected a new target in the past. > > https://lore.kernel.org/all/20230817012007.131868-1-senozhatsky@chromium.org/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
On Wed, Jan 10, 2024 at 10:15 PM Tomasz Figa <tfiga@chromium.org> wrote: > > On Fri, Dec 29, 2023 at 1:11 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <tfiga@chromium.org> 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 <tfiga@chromium.org> > > > > > > I rejected a new target in the past. > > > > https://lore.kernel.org/all/20230817012007.131868-1-senozhatsky@chromium.org/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)
On Sat, Jan 13, 2024 at 7:51 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Wed, Jan 10, 2024 at 10:15 PM Tomasz Figa <tfiga@chromium.org> wrote: > > > > On Fri, Dec 29, 2023 at 1:11 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > > > > > On Thu, Dec 28, 2023 at 4:09 PM Tomasz Figa <tfiga@chromium.org> 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 <tfiga@chromium.org> > > > > > > > > > I rejected a new target in the past. > > > > > > https://lore.kernel.org/all/20230817012007.131868-1-senozhatsky@chromium.org/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
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), \
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 <tfiga@chromium.org> --- scripts/kconfig/Makefile | 4 ++++ 1 file changed, 4 insertions(+)