Re: [PATCH] kconfig: forbid symbols that end with '_MODULE'

From: Boris Kolpackov
Date: Wed Aug 25 2021 - 11:42:20 EST


Masahiro Yamada <masahiroy@xxxxxxxxxx> writes:

> Kconfig (syncconfig) generates include/generated/autoconf.h to make
> CONFIG options available to the pre-processor.
>
> The macros are suffixed with '_MODULE' for symbols with the value 'm'.
>
> Here is a conflict; CONFIG_FOO=m results in '#define CONFIG_FOO_MODULE 1',
> but CONFIG_FOO_MODULE=y also results in the same define.
>
> fixdep always assumes CONFIG_FOO_MODULE comes from CONFIG_FOO=m, so the
> dependency is not properly tracked for symbols that end with '_MODULE'.

It seem to me the problem is in autoconf.h/fixdep, not in the Kconfig
language.


> This commit makes Kconfig error out if it finds a symbol suffixed with
> '_MODULE'.

I know you don't care, but I will voice my objection, for the record:
Kconfig is used by projects other than the Linux kernel and some of
them do not use the autoconf.h functionality. For such projects this
restriction seems arbitrary and potentially backwards-incompatible.