Message ID | 4542076.yVG8YKgu5r@tacticalops (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 2 Oct 2013, Martin Walch wrote: > diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h > index df198a5..ba663e1 100644 > --- a/scripts/kconfig/expr.h > +++ b/scripts/kconfig/expr.h > @@ -93,7 +93,7 @@ struct symbol { > #define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */ > #define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */ > #define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */ > -#define SYMBOL_WRITE 0x0200 /* ? */ > +#define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */ > #define SYMBOL_CHANGED 0x0400 /* ? */ > #define SYMBOL_AUTO 0x1000 /* value from environment variable */ > #define SYMBOL_CHECKED 0x2000 /* used during dependency checking */ Perhaps stating that the choice is writable by the user? -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> > diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h > > index df198a5..ba663e1 100644 > > --- a/scripts/kconfig/expr.h > > +++ b/scripts/kconfig/expr.h > > @@ -93,7 +93,7 @@ struct symbol { > > #define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */ > > #define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */ > > #define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */ > > -#define SYMBOL_WRITE 0x0200 /* ? */ > > +#define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */ > > #define SYMBOL_CHANGED 0x0400 /* ? */ > > #define SYMBOL_AUTO 0x1000 /* value from environment variable */ > > #define SYMBOL_CHECKED 0x2000 /* used during dependency checking */ > > Perhaps stating that the choice is writable by the user? As far as I understand SYMBOL_WRITE, its main purpose is in the function conf_write in confdata.c: >if (!(sym->flags & SYMBOL_WRITE)) > goto next; >sym->flags &= ~SYMBOL_WRITE; > >conf_write_symbol(out, sym, &kconfig_printer_cb, NULL); So, if I have not missed anything, SYMBOL_WRITE decides whether to write a symbol to .config or not. This does not necessarily mean that the user can change the value. SYMBOL_WRITE may be set and the symbol may be written to .config while the user does not even see the corresponding prompt. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 3 Oct 2013, Martin Walch wrote: > So, if I have not missed anything, SYMBOL_WRITE decides whether to write a symbol > to .config or not. This does not necessarily mean that the user can change the value. > SYMBOL_WRITE may be set and the symbol may be written to .config while the user > does not even see the corresponding prompt. > The purpose of SYMBOL_WRITE is in sym_calc_value() where it is set if the config symbol is visible and settable by the user, which is why I suggested it be specified as being writable by the user. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wednesday 02 October 2013 16:42:27 David Rientjes wrote: > The purpose of SYMBOL_WRITE is in sym_calc_value() where it is set if the > config symbol is visible and settable by the user, which is why I > suggested it be specified as being writable by the user. Then this looks strange to me: a config symbol of type boolean or tristate that is not visible, but has a default value != n will have SYMBOL_WRITE set in sym_calc_value: > case S_BOOLEAN: > case S_TRISTATE: > if (sym_is_choice_value(sym) && sym->visible == yes) { > ... > } else { > ... > if (!sym_is_choice(sym)) { > prop = sym_get_default_prop(sym); > if (prop) { > sym->flags |= SYMBOL_WRITE; > newval.tri = EXPR_AND(expr_calc_value(prop->expr), > prop->visible.tri); > } > } > ... > }
diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h index df198a5..ba663e1 100644 --- a/scripts/kconfig/expr.h +++ b/scripts/kconfig/expr.h @@ -93,7 +93,7 @@ struct symbol { #define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */ #define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */ #define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */ -#define SYMBOL_WRITE 0x0200 /* ? */ +#define SYMBOL_WRITE 0x0200 /* write symbol to file (KCONFIG_CONFIG) */ #define SYMBOL_CHANGED 0x0400 /* ? */ #define SYMBOL_AUTO 0x1000 /* value from environment variable */ #define SYMBOL_CHECKED 0x2000 /* used during dependency checking */