kconfig: change "modules" from sub-option to first-level attribute
authorMasahiro Yamada <masahiroy@kernel.org>
Sat, 13 Mar 2021 19:48:36 +0000 (04:48 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 14 Apr 2021 06:22:49 +0000 (15:22 +0900)
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>
Documentation/kbuild/kconfig-language.rst
init/Kconfig
scripts/kconfig/lexer.l
scripts/kconfig/lkc.h
scripts/kconfig/menu.c
scripts/kconfig/parser.y
scripts/kconfig/tests/choice/Kconfig
scripts/kconfig/tests/choice_value_with_m_dep/Kconfig
scripts/kconfig/tests/inter_choice/Kconfig

index 4a796c6014463b64767f89f49bef4f7a328aa8e7..98c24183d8c3485e887c952497d297c43b285ccd 100644 (file)
@@ -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
 -----------------
index b5c65653d66536b617b04209374b180aa7a7cc69..ab9a284e6078d62faaba2aa59e33bf6c910b5421 100644 (file)
@@ -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
index 08c96a6ffe058254125dae9758b7c1def4669357..312cbad2d34d41c494b6441268950a1a968f7141 100644 (file)
@@ -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;
index 679ebad15197e6b44058f28d6d67ad841bf7a478..01666f558fe9cc505b7490ed1f403f3ae3adae00 100644 (file)
@@ -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);
 
index d50d0de55222fcec432cd463a3c508515ce037f3..8b2108b748216d66ffd75e66f774642410be529f 100644 (file)
@@ -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 ||
index 2ada169c8b5dfcb8d648bc5a305e88331dc3b0a6..e46ce21a2fc4959568d44c298d94a5775c313beb 100644 (file)
@@ -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 */
index a412205b1b0c429a38f3f400b89301d23983f73d..0930eb65e932835e0987b998ddb9026c74b23359 100644 (file)
@@ -2,7 +2,7 @@
 
 config MODULES
        bool "Enable loadable module support"
-       option modules
+       modules
        default y
 
 choice
index 7106c26bb3a83ddc2dc67e5a88065972a75f65eb..bd970cec07d695e72cc9b3ea846145168b9b528e 100644 (file)
@@ -2,7 +2,7 @@
 
 config MODULES
        def_bool y
-       option modules
+       modules
 
 config DEP
        tristate
index 5698a4018dd0ec2291915861135d88b84f5a57f5..26c25f68695b1ff6590f5580209176965992f674 100644 (file)
@@ -2,7 +2,7 @@
 
 config MODULES
        def_bool y
-       option modules
+       modules
 
 choice
        prompt "Choice"