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.