modules: do not depend on kconfig to set 'modules' option to symbol MODULES
authorYann E. MORIN <yann.morin.1998@free.fr>
Sun, 11 Aug 2013 14:07:50 +0000 (16:07 +0200)
committerYann E. MORIN <yann.morin.1998@free.fr>
Thu, 15 Aug 2013 20:56:08 +0000 (22:56 +0200)
commit11097a0367e48954ecf616f9b0df48d86835dd0d
treea795726b62f68894fad0cc251e43d404f82d4aff
parent04b19b773a60d201bc1b187ba7a7c86dc237a27b
modules: do not depend on kconfig to set 'modules' option to symbol MODULES

Currently, the MODULES symbol is special-cased in different places in the
kconfig language. For example, if no symbol is defined to enable tristates,
then kconfig looks up for a symbol named 'MODULES', and forces the 'modules'
option onto that symbol.

This causes problems as such:
  - since MODULES is special-cased, reading the configuration with
    KCONFIG_ALLCONFIG set will forcibly set MODULES to be 'valid' (ie.
    it has a valid value), when no such value was previously set. So
    MODULES defaults to 'n' unless it is present in KCONFIG_ALLCONFIG
  - other third-party projects may decide that 'MODULES' plays a different
    role for them

This has been exposed by cset #cfa98f2e:
    kconfig: do not override symbols already set
and reported by Stephen in:
    http://marc.info/?l=linux-next&m=137592137915234&w=2

As suggested by Sam, we explicitly define the MODULES symbol to be the
tristate-enabler. This will allow us to drop special-casing of MODULES
in the kconfig language, later.

(Note: this patch is not a fix to Stephen's issue, just a first step).

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: yann.morin.1998@free.fr
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Kevin Hilman <khilman@linaro.org>
Cc: sedat.dilek@gmail.com
Cc: Theodore Ts'o <tytso@mit.edu>
init/Kconfig