From: Li Zefan <lizf@cn.fujitsu.com>
To: Michal Marek <mmarek@suse.cz>
Cc: Randy Dunlap <randy.dunlap@oracle.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kbuild@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH v2 3/8] kconfig: fix to tag NEW symbols correctly
Date: Fri, 07 May 2010 13:57:07 +0800 [thread overview]
Message-ID: <4BE3ABB3.7040406@cn.fujitsu.com> (raw)
In-Reply-To: <4BE3AB91.80606@cn.fujitsu.com>
Those configs are not new:
$ cat .config
...
CONFIG_NAMESPACES=y
...
CONFIG_BLOCK=y
...
But are tagged as NEW:
$ yes "" | make config > myconf
$ cat myconf | grep '(NEW)'
Namespaces support (NAMESPACES) [Y/?] (NEW) y
...
Enable the block layer (BLOCK) [Y/?] (NEW) y
...
You can also notice this bug when using gconfig/xconfig.
It's because the SYMBOL_DEF_USER bit of an invisible symbol is cleared
when the config file is read:
int conf_read(const char *name)
{
...
for_all_symbols(i, sym) {
if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
/* 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;
...
}
But a menu item which represents an invisible symbol is still
visible, if it's sub-menu is visible, so its SYMBOL_DEF_USER
bit should be set to indicate it's not NEW.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
| 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
--git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index c547692..85ccd02 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -419,9 +419,13 @@ bool menu_is_visible(struct menu *menu)
if (!sym || sym_get_tristate_value(menu->sym) == no)
return false;
- for (child = menu->list; child; child = child->next)
- if (menu_is_visible(child))
+ for (child = menu->list; child; child = child->next) {
+ if (menu_is_visible(child)) {
+ if (sym)
+ sym->flags |= SYMBOL_DEF_USER;
return true;
+ }
+ }
return false;
}
--
1.6.3
next prev parent reply other threads:[~2010-05-07 5:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-07 5:56 [PATCH v2 1/8] kconfig: print symbol type in help text Li Zefan
2010-05-07 5:56 ` [PATCH v2 2/8] kconfig: print the range of integer/hex symbol " Li Zefan
2010-05-07 5:57 ` Li Zefan [this message]
2010-05-07 5:57 ` [PATCH v2 4/8] menuconfig: improive help text a bit Li Zefan
2010-05-07 5:57 ` [PATCH v2 5/8] gconfig: fix to tag NEW symbols correctly Li Zefan
2010-05-07 5:57 ` [PATCH v2 6/8] gconfig: fix null pointer warning Li Zefan
2010-05-07 5:58 ` [PATCH v2 7/8] xconfig: clean up Li Zefan
2010-05-07 5:58 ` [PATCH v2 8/8] xconfig: remove unused function Li Zefan
2010-05-10 8:33 ` [PATCH v2 9/8] xconfig: add support to show hidden options which have prompts Li Zefan
2010-05-14 6:57 ` [PATCH v2 1/8] kconfig: print symbol type in help text Li Zefan
2010-05-14 20:43 ` Michal Marek
2010-05-17 2:18 ` Li Zefan
2010-06-02 13:41 ` Michal Marek
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=4BE3ABB3.7040406@cn.fujitsu.com \
--to=lizf@cn.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mmarek@suse.cz \
--cc=randy.dunlap@oracle.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.