diff options
author | Jan Engelhardt <jengelh@computergmbh.de> | 2008-01-03 17:33:44 -0500 |
---|---|---|
committer | Sam Ravnborg <sam@ravnborg.org> | 2008-01-28 17:14:37 -0500 |
commit | d84876f9f8042d5536050b83674c4f348ca3c4df (patch) | |
tree | 86445ec7cc38d3348405492abf147e38f3630e1c /scripts/kconfig/confdata.c | |
parent | 09af091f50409a60a72086c737b9a6224dde5ab8 (diff) |
kconfig: allow overriding symbols
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 *config as expected.
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Diffstat (limited to 'scripts/kconfig/confdata.c')
-rw-r--r-- | scripts/kconfig/confdata.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index e0f402f3b75d..2eccefb03a93 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c | |||
@@ -232,8 +232,7 @@ load: | |||
232 | sym->type = S_BOOLEAN; | 232 | sym->type = S_BOOLEAN; |
233 | } | 233 | } |
234 | if (sym->flags & def_flags) { | 234 | if (sym->flags & def_flags) { |
235 | conf_warning("trying to reassign symbol %s", sym->name); | 235 | conf_warning("override: reassigning to symbol %s", sym->name); |
236 | break; | ||
237 | } | 236 | } |
238 | switch (sym->type) { | 237 | switch (sym->type) { |
239 | case S_BOOLEAN: | 238 | case S_BOOLEAN: |
@@ -272,8 +271,7 @@ load: | |||
272 | sym->type = S_OTHER; | 271 | sym->type = S_OTHER; |
273 | } | 272 | } |
274 | if (sym->flags & def_flags) { | 273 | if (sym->flags & def_flags) { |
275 | conf_warning("trying to reassign symbol %s", sym->name); | 274 | conf_warning("override: reassigning to symbol %s", sym->name); |
276 | break; | ||
277 | } | 275 | } |
278 | if (conf_set_sym_val(sym, def, def_flags, p)) | 276 | if (conf_set_sym_val(sym, def, def_flags, p)) |
279 | continue; | 277 | continue; |
@@ -297,11 +295,9 @@ load: | |||
297 | } | 295 | } |
298 | break; | 296 | break; |
299 | case yes: | 297 | case yes: |
300 | if (cs->def[def].tri != no) { | 298 | if (cs->def[def].tri != no) |
301 | conf_warning("%s creates inconsistent choice state", sym->name); | 299 | conf_warning("override: %s changes choice state", sym->name); |
302 | cs->flags &= ~def_flags; | 300 | cs->def[def].val = sym; |
303 | } else | ||
304 | cs->def[def].val = sym; | ||
305 | break; | 301 | break; |
306 | } | 302 | } |
307 | cs->def[def].tri = E_OR(cs->def[def].tri, sym->def[def].tri); | 303 | cs->def[def].tri = E_OR(cs->def[def].tri, sym->def[def].tri); |