public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: linux-kernel@vger.kernel.org
Cc: Roman Zippel <zippel@linux-m68k.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Sam Ravnborg <sam@ravnborg.org>
Subject: [PATCH 28/33] kconfig: reset generated values only if Kconfig and .config agree.
Date: Tue, 17 Jul 2007 16:08:57 +0200	[thread overview]
Message-ID: <1184681345321-git-send-email-sam@ravnborg.org> (raw)
In-Reply-To: <11846813443988-git-send-email-sam@ravnborg.org>

From: Roman Zippel <zippel@linux-m68k.org>

Normally generated values (Kconfig entries without a prompt) are cleared as
they are regenerated anyway and so they appear as new should they become
visible and defaults work as expected (once a value is set defaults aren't
used anymore).

The detection whether a value is generated or not is only based on its
visibility status, which can quickly change for a lot of symbols by just
removing a single line from .config or adding a dependency to Kconfig as you
noticed.

The patch now suppresses this logic when .config and Kconfig aren't in sync
and .config needs to be updated, so that you can remove now a random value
from .config and oldconfig won't reask for many other values.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
 scripts/kconfig/confdata.c |   37 ++++++++++++++++++++++++++-----------
 1 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 664fe29..b2913e9 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -341,27 +341,42 @@ int conf_read(const char *name)
 		conf_unsaved++;
 		/* maybe print value in verbose mode... */
 	sym_ok:
+		if (!sym_is_choice(sym))
+			continue;
+		/* The choice symbol only has a set value (and thus is not new)
+		 * if all its visible childs have values.
+		 */
+		prop = sym_get_choice_prop(sym);
+		flags = sym->flags;
+		for (e = prop->expr; e; e = e->left.expr)
+			if (e->right.sym->visible != no)
+				flags &= e->right.sym->flags;
+		sym->flags &= flags | ~SYMBOL_DEF_USER;
+	}
+
+	for_all_symbols(i, sym) {
 		if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
-			if (sym->visible == no)
+			/* Reset values of generates values, so they'll appear
+			 * as new, if they should become visible, but that
+			 * doesn't quite work if the Kconfig and the saved
+			 * configuration disagree.
+			 */
+			if (sym->visible == no && !conf_unsaved)
 				sym->flags &= ~SYMBOL_DEF_USER;
 			switch (sym->type) {
 			case S_STRING:
 			case S_INT:
 			case S_HEX:
-				if (!sym_string_within_range(sym, sym->def[S_DEF_USER].val))
-					sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
+				/* Reset a string value if it's out of range */
+				if (sym_string_within_range(sym, sym->def[S_DEF_USER].val))
+					break;
+				sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
+				conf_unsaved++;
+				break;
 			default:
 				break;
 			}
 		}
-		if (!sym_is_choice(sym))
-			continue;
-		prop = sym_get_choice_prop(sym);
-		flags = sym->flags;
-		for (e = prop->expr; e; e = e->left.expr)
-			if (e->right.sym->visible != no)
-				flags &= e->right.sym->flags;
-		sym->flags &= flags | ~SYMBOL_DEF_USER;
 	}
 
 	sym_add_change_count(conf_warnings || conf_unsaved);
-- 
1.5.0.6


  parent reply	other threads:[~2007-07-17 14:16 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-17 14:08 [PATCH 01/33] kbuild: asm-offsets.h is now cleaned with O=.. builds Sam Ravnborg
2007-07-17 14:08 ` [PATCH 02/33] kbuild: New 'cc-fullversion' macro Sam Ravnborg
2007-07-17 14:08   ` [PATCH 03/33] powerpc: Refuse to build 64-bit with GCC-4.2.0 and CONFIG_MODULES Sam Ravnborg
2007-07-17 14:08     ` [PATCH 04/33] kbuild: document cc-fullversion Sam Ravnborg
2007-07-17 14:08       ` [PATCH 05/33] kbuild: avoid environment to set variables used by kbuild Sam Ravnborg
     [not found]         ` <11846813432072-git-send-email-sam@ravnborg.org>
2007-07-17 14:08           ` [PATCH 07/33] kconfig: use POSIX equality test in check-lxdialog.sh Sam Ravnborg
2007-07-17 14:08             ` [PATCH 08/33] kbuild: add support for reading stdin with gen_init_cpio Sam Ravnborg
2007-07-17 14:08               ` [PATCH 09/33] kbuild: add support for squashing uid/gid in gen_initramfs_list.sh Sam Ravnborg
2007-07-17 14:08                 ` [PATCH 10/33] kconfig: fix update-po-config Sam Ravnborg
2007-07-17 14:08                   ` [PATCH 11/33] kbuild: make better section mismatch reports on i386 and mips Sam Ravnborg
2007-07-17 14:08                     ` [PATCH 12/33] kbuild: make better section mismatch reports on arm Sam Ravnborg
2007-07-17 14:08                       ` [PATCH 13/33] kbuild: suppress modpost warnings for references from the .toc section as used by powerpc Sam Ravnborg
2007-07-17 14:08                         ` [PATCH 14/33] kbuild: .paravirtprobe section is obsolete, so modpost doesn't need to handle it Sam Ravnborg
2007-07-17 14:08                           ` [PATCH 15/33] kbuild: ignore section mismatch warnings originating from .note section Sam Ravnborg
2007-07-17 14:08                             ` [PATCH 16/33] kbuild: refactor code in modpost to improve maintainability Sam Ravnborg
2007-07-17 14:08                               ` [PATCH 17/33] kbuild: consolidate section checks Sam Ravnborg
2007-07-17 14:08                                 ` [PATCH 18/33] kbuild: warn about references from .init.text to .exit.text Sam Ravnborg
2007-07-17 14:08                                   ` [PATCH 19/33] kbuild: remove hardcoded apic_es7000 from modpost Sam Ravnborg
2007-07-17 14:08                                     ` [PATCH 20/33] kbuild: remove hardcoded _logo names " Sam Ravnborg
2007-07-17 14:08                                       ` [PATCH 21/33] kbuild: whitelist references from variables named _timer to .init.text Sam Ravnborg
2007-07-17 14:08                                         ` [PATCH 22/33] kbuild: do section mismatch check on full vmlinux Sam Ravnborg
2007-07-17 14:08                                           ` [PATCH 23/33] modpost white list pattern adjustment Sam Ravnborg
2007-07-17 14:08                                             ` [PATCH 24/33] Whitelist references from __dbe_table to .init Sam Ravnborg
2007-07-17 14:08                                               ` [PATCH 25/33] kbuild: use POSIX BRE in headers install target Sam Ravnborg
2007-07-17 14:08                                                 ` [PATCH 26/33] kconfig: strip 'CONFIG_' automatically in kernel configuration search Sam Ravnborg
     [not found]                                                   ` <11846813443988-git-send-email-sam@ravnborg.org>
2007-07-17 14:08                                                     ` Sam Ravnborg [this message]
2007-07-17 14:08                                                       ` [PATCH 29/33] kbuild: use -fno-optimize-sibling-calls unconditionally Sam Ravnborg
2007-07-17 14:08                                                         ` [PATCH 30/33] kallsyms: remove usage of memmem and _GNU_SOURCE from scripts/kallsyms.c Sam Ravnborg
2007-07-17 14:09                                                           ` [PATCH 31/33] cris: use DATA_DATA in cris Sam Ravnborg
2007-07-17 14:09                                                             ` [PATCH 32/33] powerpc: add missing DATA_DATA to powerpc Sam Ravnborg
2007-07-17 14:09                                                               ` [PATCH 33/33] xtensa: use DATA_DATA in xtensa Sam Ravnborg
2007-07-21  8:22                                                 ` [PATCH 25/33] kbuild: use POSIX BRE in headers install target Oleg Verych
2007-07-21  8:23                                                   ` Andreas Schwab
2007-07-21  8:39                                                     ` Jan Engelhardt
2007-07-21  9:03                                                       ` Andreas Schwab
2007-07-21  9:43                                                     ` Oleg Verych
2007-07-21  8:27                                                   ` [kbuild-devel] " Mike Frysinger
2007-07-21 10:04                                                     ` Oleg Verych
2007-07-21 19:21                                                       ` Mike Frysinger
2007-07-21 20:39                                                         ` Sam Ravnborg
2007-07-21 22:03                                                           ` Mike Frysinger
2007-07-21 22:11                                                             ` Sam Ravnborg
2007-07-21 22:12                                                               ` Mike Frysinger
2007-07-21 22:15                                                                 ` Robert P. J. Day
2007-07-21 22:16                                                           ` More effective processing (Re: [PATCH 25/33] kbuild: use POSIX BRE in headers install target) Oleg Verych
2007-07-21 22:13                                                             ` Sam Ravnborg
2007-07-21 22:39                                                               ` Oleg Verych
2007-07-21 22:15                                                             ` Mike Frysinger
2007-07-18 10:03     ` [PATCH 03/33] powerpc: Refuse to build 64-bit with GCC-4.2.0 and CONFIG_MODULES Clemens Koller
2007-07-19 15:55       ` Segher Boessenkool

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1184681345321-git-send-email-sam@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=zippel@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox