Mailing List Archive

[PATCH] kconfig: remove SYMBOL_NO_WRITE flag
This flag is set to symbols that are not intended to be written
to the .config file.

Since commit b75b0a819af9 ("kconfig: change defconfig_list option to
environment variable"), SYMBOL_NO_WRITE is only set to choices.

Therefore, (sym->flags & SYMBOL_NO_WRITE) is equivalent to
sym_is_choice(sym). This flags is no longer necessary.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

scripts/kconfig/confdata.c | 4 ++--
scripts/kconfig/expr.h | 1 -
scripts/kconfig/gconf.c | 2 --
scripts/kconfig/parser.y | 2 +-
scripts/kconfig/symbol.c | 3 +--
5 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index bcce87658998..5caec434e6f4 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -502,7 +502,7 @@ int conf_read(const char *name)

for_all_symbols(sym) {
sym_calc_value(sym);
- if (sym_is_choice(sym) || (sym->flags & SYMBOL_NO_WRITE))
+ if (sym_is_choice(sym))
continue;
if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
/* check that calculated value agrees with saved value */
@@ -1007,7 +1007,7 @@ static int conf_touch_deps(void)

for_all_symbols(sym) {
sym_calc_value(sym);
- if ((sym->flags & SYMBOL_NO_WRITE) || !sym->name)
+ if (sym_is_choice(sym))
continue;
if (sym->flags & SYMBOL_WRITE) {
if (sym->flags & SYMBOL_DEF_AUTO) {
diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
index f646a98de006..d965e427753e 100644
--- a/scripts/kconfig/expr.h
+++ b/scripts/kconfig/expr.h
@@ -135,7 +135,6 @@ struct symbol {
#define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */
#define SYMBOL_CHANGED 0x0400 /* ? */
#define SYMBOL_WRITTEN 0x0800 /* track info to avoid double-write to .config */
-#define SYMBOL_NO_WRITE 0x1000 /* Symbol for internal use only; it will not be written */
#define SYMBOL_CHECKED 0x2000 /* used during dependency checking */
#define SYMBOL_WARNED 0x8000 /* warning has been issued */

diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index 13e2449ac83f..67a27c497c40 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -91,8 +91,6 @@ static const char *dbg_sym_flags(int val)
strcat(buf, "write/");
if (val & SYMBOL_CHANGED)
strcat(buf, "changed/");
- if (val & SYMBOL_NO_WRITE)
- strcat(buf, "no_write/");

buf[strlen(buf) - 1] = '\0';

diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y
index 69dc0c098acb..613fa8c9c2d0 100644
--- a/scripts/kconfig/parser.y
+++ b/scripts/kconfig/parser.y
@@ -222,7 +222,7 @@ config_option: T_MODULES T_EOL
choice: T_CHOICE T_EOL
{
struct symbol *sym = sym_lookup(NULL, 0);
- sym->flags |= SYMBOL_NO_WRITE;
+
menu_add_entry(sym);
menu_add_expr(P_CHOICE, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:choice\n", cur_filename, cur_lineno);
diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
index 8b34992ba5ed..b909c64f3bac 100644
--- a/scripts/kconfig/symbol.c
+++ b/scripts/kconfig/symbol.c
@@ -466,10 +466,9 @@ void sym_calc_value(struct symbol *sym)
if (sym->flags & SYMBOL_CHANGED)
sym_set_changed(choice_sym);
}
- }

- if (sym->flags & SYMBOL_NO_WRITE)
sym->flags &= ~SYMBOL_WRITE;
+ }

if (sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES)
set_all_choice_values(sym);
--
2.40.1
Re: [PATCH] kconfig: remove SYMBOL_NO_WRITE flag [ In reply to ]
On Sat, Apr 27, 2024 at 6:16?PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> This flag is set to symbols that are not intended to be written
> to the .config file.
>
> Since commit b75b0a819af9 ("kconfig: change defconfig_list option to
> environment variable"), SYMBOL_NO_WRITE is only set to choices.
>
> Therefore, (sym->flags & SYMBOL_NO_WRITE) is equivalent to
> sym_is_choice(sym). This flags is no longer necessary.


"This flags" -> "This flag"


>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
> scripts/kconfig/confdata.c | 4 ++--
> scripts/kconfig/expr.h | 1 -
> scripts/kconfig/gconf.c | 2 --
> scripts/kconfig/parser.y | 2 +-
> scripts/kconfig/symbol.c | 3 +--
> 5 files changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
> index bcce87658998..5caec434e6f4 100644
> --- a/scripts/kconfig/confdata.c
> +++ b/scripts/kconfig/confdata.c
> @@ -502,7 +502,7 @@ int conf_read(const char *name)
>
> for_all_symbols(sym) {
> sym_calc_value(sym);
> - if (sym_is_choice(sym) || (sym->flags & SYMBOL_NO_WRITE))
> + if (sym_is_choice(sym))
> continue;
> if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
> /* check that calculated value agrees with saved value */
> @@ -1007,7 +1007,7 @@ static int conf_touch_deps(void)
>
> for_all_symbols(sym) {
> sym_calc_value(sym);
> - if ((sym->flags & SYMBOL_NO_WRITE) || !sym->name)
> + if (sym_is_choice(sym))
> continue;
> if (sym->flags & SYMBOL_WRITE) {
> if (sym->flags & SYMBOL_DEF_AUTO) {
> diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
> index f646a98de006..d965e427753e 100644
> --- a/scripts/kconfig/expr.h
> +++ b/scripts/kconfig/expr.h
> @@ -135,7 +135,6 @@ struct symbol {
> #define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */
> #define SYMBOL_CHANGED 0x0400 /* ? */
> #define SYMBOL_WRITTEN 0x0800 /* track info to avoid double-write to .config */
> -#define SYMBOL_NO_WRITE 0x1000 /* Symbol for internal use only; it will not be written */
> #define SYMBOL_CHECKED 0x2000 /* used during dependency checking */
> #define SYMBOL_WARNED 0x8000 /* warning has been issued */
>
> diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
> index 13e2449ac83f..67a27c497c40 100644
> --- a/scripts/kconfig/gconf.c
> +++ b/scripts/kconfig/gconf.c
> @@ -91,8 +91,6 @@ static const char *dbg_sym_flags(int val)
> strcat(buf, "write/");
> if (val & SYMBOL_CHANGED)
> strcat(buf, "changed/");
> - if (val & SYMBOL_NO_WRITE)
> - strcat(buf, "no_write/");
>
> buf[strlen(buf) - 1] = '\0';
>
> diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y
> index 69dc0c098acb..613fa8c9c2d0 100644
> --- a/scripts/kconfig/parser.y
> +++ b/scripts/kconfig/parser.y
> @@ -222,7 +222,7 @@ config_option: T_MODULES T_EOL
> choice: T_CHOICE T_EOL
> {
> struct symbol *sym = sym_lookup(NULL, 0);
> - sym->flags |= SYMBOL_NO_WRITE;
> +
> menu_add_entry(sym);
> menu_add_expr(P_CHOICE, NULL, NULL);
> printd(DEBUG_PARSE, "%s:%d:choice\n", cur_filename, cur_lineno);
> diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
> index 8b34992ba5ed..b909c64f3bac 100644
> --- a/scripts/kconfig/symbol.c
> +++ b/scripts/kconfig/symbol.c
> @@ -466,10 +466,9 @@ void sym_calc_value(struct symbol *sym)
> if (sym->flags & SYMBOL_CHANGED)
> sym_set_changed(choice_sym);
> }
> - }
>
> - if (sym->flags & SYMBOL_NO_WRITE)
> sym->flags &= ~SYMBOL_WRITE;
> + }
>
> if (sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES)
> set_all_choice_values(sym);
> --
> 2.40.1
>


--
Best Regards
Masahiro Yamada