From: David Woodhouse <dwmw2@infradead.org>
To: Arnaud Lacombe <lacombar@gmail.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org,
Roman Zippel <zippel@linux-m68k.org>
Subject: Re: [PATCH 2/2] Enable 'make CONFIG_FOO=y oldconfig'
Date: Sun, 31 Jul 2011 23:18:16 +0100 [thread overview]
Message-ID: <1312150698.18010.21.camel@i7.infradead.org> (raw)
In-Reply-To: <CACqU3MUJ=B-VszESWcFXbW=TLRxz5HrAaUn3nkyydX-xBBTXhg@mail.gmail.com>
On Sat, 2011-07-30 at 22:09 -0400, Arnaud Lacombe wrote:
> Btw, `make CONFIG_GENERIC_BUG=n oldconfig' or `make CONFIG_64BIT=n
> oldconfig'[0] does not even work, and I'm getting no error. So either
> you make it work for all possible uses, or you warn the user he tried
> something illegal, but you don't just fail silently.
You're absolutely right that we should report it. I'm dubious about
trying to report a *reason*... it would be nice if we could do it
*reliably*, but we don't actually pass the reasons back up so the code
has to guess. I'm torn between ripping it out because it's guessing, and
trying to improve it. What do you think?
I'd *love* to be able to say 'You need to enable CONFIG_SATA in order to
enable CONFIG_SATA_MV'. But if I were to do *that* then I'd probably end
up ripping out the whole of this 'select' atrocity (which would now have
no excuse for its existence) and I'd be even further from the simple
task I started off with :)
[dwmw2@i7 linux-2.6]$ make CONFIG_GENERIC_BUG=n oldconfig
scripts/kconfig/conf --oldconfig Kconfig
#
# Could not set CONFIG_GENERIC_BUG=n; perhaps it is selected by another option?
#
#
# configuration written to .config
#
[dwmw2@i7 linux-2.6]$ make CONFIG_SATA_MV=y oldconfig
scripts/kconfig/conf --oldconfig Kconfig
#
# Could not set CONFIG_SATA_MV=y; perhaps it has unmet dependencies?
#
#
# configuration written to .config
#
Incremental patch:
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 0341254..ff25669 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -364,8 +364,22 @@ void conf_set_symbol_from_env(char *str)
return;
sym_calc_value(sym);
- if (!sym_set_string_value(sym, p))
+ if (!sym_set_string_value(sym, p)) {
+ char *reason;
+
+ if ((sym->type == S_BOOLEAN || sym->type == S_TRISTATE) &&
+ !p[1] && toupper(p[0]) == 'N')
+ /* We were turning it *off* and failed... selected? */
+ reason = "perhaps it is selected by another option?";
+ else if (!sym->visible)
+ reason = "perhaps it has unmet dependencies?";
+ else
+ reason = "perhaps your setting was invalid?";
+
+ conf_message("Could not set " CONFIG_ "%s=%s; %s",
+ sym->name, p, reason);
return;
+ }
conf_message(CONFIG_ "%s set to %s from environment", sym->name, p);
if (sym_is_choice_value(sym))
--
dwmw2
next prev parent reply other threads:[~2011-07-31 22:18 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1312067499.22074.59.camel@i7.infradead.org>
2011-07-30 23:13 ` [PATCH 1/2] kconfig: Factor out conf_validate_choice_val() function from conf_read_simple() David Woodhouse
2011-07-31 2:17 ` Arnaud Lacombe
2011-07-31 22:21 ` David Woodhouse
2011-07-30 23:14 ` [PATCH 2/2] Enable 'make CONFIG_FOO=y oldconfig' David Woodhouse
2011-07-30 23:44 ` Arnaud Lacombe
2011-07-30 23:53 ` H. Peter Anvin
2011-07-31 0:05 ` Arnaud Lacombe
2011-07-31 0:29 ` H. Peter Anvin
2011-07-31 1:06 ` Arnaud Lacombe
2011-07-31 1:28 ` H. Peter Anvin
2011-07-31 2:09 ` Arnaud Lacombe
2011-07-31 5:21 ` Arnaud Lacombe
2011-07-31 22:18 ` David Woodhouse [this message]
2011-08-09 15:22 ` Arnaud Lacombe
2011-07-31 7:33 ` David Woodhouse
2011-07-31 16:37 ` Randy Dunlap
2011-07-31 16:57 ` David Woodhouse
2011-07-31 17:08 ` Randy Dunlap
2011-07-31 17:40 ` David Woodhouse
2011-08-09 14:14 ` Michal Marek
2011-08-09 15:26 ` Arnaud Lacombe
2011-08-10 12:59 ` Michal Marek
2011-08-10 13:07 ` David Woodhouse
2011-08-10 14:15 ` Arnaud Lacombe
2011-08-10 14:17 ` David Woodhouse
2011-08-10 14:34 ` Arnaud Lacombe
2011-08-10 16:33 ` David Woodhouse
2011-08-10 17:00 ` Emmanuel Deloget
2011-08-10 17:52 ` H. Peter Anvin
2011-08-10 17:44 ` Arnaud Lacombe
2011-08-10 17:54 ` H. Peter Anvin
2011-08-10 17:59 ` David Woodhouse
2011-08-10 18:40 ` Arnaud Lacombe
2011-08-10 18:52 ` David Woodhouse
2011-08-10 22:33 ` Arnaud Lacombe
2011-08-10 23:16 ` David Woodhouse
2011-08-11 3:29 ` Arnaud Lacombe
2011-08-11 8:42 ` David Woodhouse
2011-08-11 8:58 ` Michal Marek
2011-08-11 11:10 ` David Woodhouse
2011-08-11 11:15 ` Andreas Schwab
2011-08-11 11:40 ` David Woodhouse
2011-08-11 11:56 ` Michal Marek
2011-08-11 13:20 ` David Woodhouse
2011-08-11 14:57 ` Arnaud Lacombe
2011-08-11 15:07 ` David Woodhouse
2011-08-11 15:24 ` Michal Marek
2011-08-11 15:50 ` David Woodhouse
2011-08-10 17:01 ` Randy Dunlap
2011-08-10 17:25 ` David Woodhouse
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=1312150698.18010.21.camel@i7.infradead.org \
--to=dwmw2@infradead.org \
--cc=hpa@zytor.com \
--cc=lacombar@gmail.com \
--cc=linux-kbuild@vger.kernel.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