kconfig: change "modules" from sub-option to first-level attribute

Now "modules" is the only member of the "option" property.

Remove "option", and move "modules" to the top level property.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
Masahiro Yamada 2021-03-14 04:48:36 +09:00
Родитель ab838577aa
Коммит 6dd85ff178
9 изменённых файлов: 13 добавлений и 27 удалений

Просмотреть файл

@ -223,16 +223,10 @@ applicable everywhere (see syntax).
the indentation level, this means it ends at the first line which has
a smaller indentation than the first line of the help text.
- misc options: "option" <symbol>[=<value>]
Various less common options can be defined via this option syntax,
which can modify the behaviour of the menu entry and its config
symbol. These options are currently possible:
- "modules"
This declares the symbol to be used as the MODULES symbol, which
enables the third modular state for all config symbols.
At most one symbol may have the "modules" option set.
- module attribute: "modules"
This declares the symbol to be used as the MODULES symbol, which
enables the third modular state for all config symbols.
At most one symbol may have the "modules" option set.
Menu dependencies
-----------------

Просмотреть файл

@ -2042,7 +2042,7 @@ config MODULE_SIG_FORMAT
menuconfig MODULES
bool "Enable loadable module support"
option modules
modules
help
Kernel modules are small pieces of compiled code which can
be inserted in the running kernel, rather than being

Просмотреть файл

@ -112,7 +112,6 @@ n [A-Za-z0-9_-]
"menuconfig" return T_MENUCONFIG;
"modules" return T_MODULES;
"on" return T_ON;
"option" return T_OPTION;
"optional" return T_OPTIONAL;
"prompt" return T_PROMPT;
"range" return T_RANGE;

Просмотреть файл

@ -95,7 +95,6 @@ void menu_add_visibility(struct expr *dep);
struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
void menu_add_option_modules(void);
void menu_finalize(struct menu *parent);
void menu_set_type(int type);

Просмотреть файл

@ -211,14 +211,6 @@ void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
menu_add_prop(type, expr_alloc_symbol(sym), dep);
}
void menu_add_option_modules(void)
{
if (modules_sym)
zconf_error("symbol '%s' redefines option 'modules' already defined by symbol '%s'",
current_entry->sym->name, modules_sym->name);
modules_sym = current_entry->sym;
}
static int menu_validate_number(struct symbol *sym, struct symbol *sym2)
{
return sym2->type == S_INT || sym2->type == S_HEX ||

Просмотреть файл

@ -69,7 +69,6 @@ static struct menu *current_menu, *current_entry;
%token T_MODULES
%token T_ON
%token T_OPEN_PAREN
%token T_OPTION
%token T_OPTIONAL
%token T_PLUS_EQUAL
%token T_PROMPT
@ -216,9 +215,12 @@ config_option: T_RANGE symbol symbol if_expr T_EOL
printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
};
config_option: T_OPTION T_MODULES T_EOL
config_option: T_MODULES T_EOL
{
menu_add_option_modules();
if (modules_sym)
zconf_error("symbol '%s' redefines option 'modules' already defined by symbol '%s'",
current_entry->sym->name, modules_sym->name);
modules_sym = current_entry->sym;
};
/* choice entry */

Просмотреть файл

@ -2,7 +2,7 @@
config MODULES
bool "Enable loadable module support"
option modules
modules
default y
choice

Просмотреть файл

@ -2,7 +2,7 @@
config MODULES
def_bool y
option modules
modules
config DEP
tristate

Просмотреть файл

@ -2,7 +2,7 @@
config MODULES
def_bool y
option modules
modules
choice
prompt "Choice"