Re: [PATCH] Allow kconfig to accept overrides

From: Randy Dunlap
Date: Fri Oct 12 2007 - 19:18:01 EST


On Fri, 12 Oct 2007 23:44:08 +0200 (CEST) Jan Engelhardt wrote:

> Allow config variables in .config to override earlier ones in the same
> file. In other words,
>
> # CONFIG_SECURITY is not defined
> CONFIG_SECURITY=y
>
> will activate it. This makes it a bit easier to do
>
> (cat original-config myconfig myconfig2 ... >.config)
>
> and run menuconfig as expected.
>
> Previously sent:
> http://lkml.org/lkml/2006/10/25/81
> http://lkml.org/lkml/2007/4/1/175
>
> Signed-off-by: Jan Engelhardt <jengelh@xxxxxx>
> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Cc: Roman Zippel <zippel@xxxxxxxxxxxxxx>
> Cc: Randy Dunlap <randy.dunlap@xxxxxxxxxx>
>
> ---
> scripts/kconfig/confdata.c | 14 +++++---------
> 1 file changed, 5 insertions(+), 9 deletions(-)
>
> #
> # Applies cleanly to 2.6.22/23/git.
> #
> Index: linux-2.6.22.1/scripts/kconfig/confdata.c
> ===================================================================
> --- linux-2.6.22.1.orig/scripts/kconfig/confdata.c
> +++ linux-2.6.22.1/scripts/kconfig/confdata.c
> @@ -170,8 +170,7 @@ load:
> sym->type = S_BOOLEAN;
> }
> if (sym->flags & def_flags) {
> - conf_warning("trying to reassign symbol %s", sym->name);
> - break;
> + conf_warning("override: reassigning to symbol %s", sym->name);
> }
> switch (sym->type) {
> case S_BOOLEAN:
> @@ -210,8 +209,7 @@ load:
> sym->type = S_OTHER;
> }
> if (sym->flags & def_flags) {
> - conf_warning("trying to reassign symbol %s", sym->name);
> - break;
> + conf_warning("override: reassigning to symbol %s", sym->name);
> }
> switch (sym->type) {
> case S_TRISTATE:
> @@ -288,11 +286,9 @@ load:
> }
> break;
> case yes:
> - if (cs->def[def].tri != no) {
> - conf_warning("%s creates inconsistent choice state", sym->name);
> - cs->flags &= ~def_flags;
> - } else
> - cs->def[def].val = sym;
> + if(cs->def[def].tri != no)

if (
> + conf_warning("override: %s turns state choice", sym->name);

What does that warning message mean? I can't decipher it.

Other than that, it works for me. Thanks.

> + cs->def[def].val = sym;
> break;
> }
> cs->def[def].tri = E_OR(cs->def[def].tri, sym->def[def].tri);


---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/