Re: [PATCH v4] kconfig: add kconfig-sym-check static checker

From: Sergey Senozhatsky

Date: Tue Jun 23 2026 - 23:28:07 EST


Hi,

On (26/06/23 10:18), Andrew Jones wrote:
> > .config:1606:warning: unknown symbol: SENSORS_APDS990X
> > .config:2498:warning: unknown symbol: APPLICOM
> > make[3]: *** [scripts/kconfig/Makefile:85: syncconfig] Error 1
> > make[2]: *** [Makefile:760: syncconfig] Error 2
>
> Thanks, Sergey. I wasn't aware of this. Is there a way to combine that
> with some "make all" type target in order to find all the dangling
> symbols that the static checker finds?

That's how we wanted it to work. We've got beaten by
symbols renames/removals in the past.

A demo:

- Add a dangling symbol

% echo "CONFIG_DISABLE_BUGS=y" >> .config

- Now run make (KCONFIG_WARN_UNKNOWN_SYMBOLS/KCONFIG_WERROR are env
variables)

% KCONFIG_WARN_UNKNOWN_SYMBOLS=1 KCONFIG_WERROR=1 make oldconfig

.config:4693:warning: unknown symbol: DISABLE_BUGS
make[2]: *** [scripts/kconfig/Makefile:85: oldconfig] Error 1
make[1]: *** [/media/dev/linux/Makefile:760: oldconfig] Error 2
make: *** [Makefile:248: __sub-make] Error 2

And make fails.

kconfig reads the symbols for (pretty much?) all the targets, it
needs to make sure that nothing is missing (SAT), that there are
no conflicts and so on. Detecting unrecognized .config symbols
on the kconfig level is a low hanging fruit, in this regard.