* kconfig - hex are considered decimal
@ 2008-06-29 11:51 Sam Ravnborg
2008-06-29 21:29 ` Sam Ravnborg
2008-06-30 13:19 ` Roman Zippel
0 siblings, 2 replies; 8+ messages in thread
From: Sam Ravnborg @ 2008-06-29 11:51 UTC (permalink / raw)
To: Roman Zippel; +Cc: linux-kbuild
Hi Roman.
I was applying an old patch from you that introduces
conf_set_all_new_symbols().
But when I tested it I noticed that all symbols
of type "hex" were saved as decimal vlaues in .config.
Sample (first line is with unmodifed kconfig):
-CONFIG_RADIO_ZOLTRIX_PORT=0x20c
+CONFIG_RADIO_ZOLTRIX_PORT=20c
I guess this has something to do with the way we
represent a hex value internally. But I have not yet
dived into it.
Can you see where it goes wrong?
I have attached two patches.
The first is the one from you and the second is the
one where I started to use the new function.
Sam
From 23a6db63846ef5658fd2e036064f03b98ea0ecec Mon Sep 17 00:00:00 2001
From: Roman Zippel <zippel@linux-m68k.org>
Date: Tue, 6 May 2008 04:55:55 +0200
Subject: [PATCH] kconfig: set all new symbols automatically
Add conf_set_all_new_symbols() which set all symbols (which don't have a
value yet) to a specifed value.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
---
scripts/kconfig/confdata.c | 70 ++++++++++++++++++++++++++++++++++++++++++++
scripts/kconfig/lkc.h | 9 +++++
2 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index ee5fe94..0759761 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -812,3 +812,73 @@ void conf_set_changed_callback(void (*fn)(void))
{
conf_changed_callback = fn;
}
+
+
+void conf_set_all_new_symbols(enum conf_def_mode mode)
+{
+ struct symbol *sym, *csym;
+ struct property *prop;
+ struct expr *e;
+ int i, cnt, def;
+
+ for_all_symbols(i, sym) {
+ if (sym_has_value(sym))
+ continue;
+ switch (sym_get_type(sym)) {
+ case S_BOOLEAN:
+ case S_TRISTATE:
+ switch (mode) {
+ case def_yes:
+ sym->def[S_DEF_USER].tri = yes;
+ break;
+ case def_mod:
+ sym->def[S_DEF_USER].tri = mod;
+ break;
+ case def_no:
+ sym->def[S_DEF_USER].tri = no;
+ break;
+ case def_random:
+ sym->def[S_DEF_USER].tri = (tristate)(rand() % 3);
+ break;
+ default:
+ continue;
+ }
+ if (!sym_is_choice(sym) || mode != def_random)
+ sym->flags |= SYMBOL_DEF_USER;
+ break;
+ default:
+ break;
+ }
+
+ }
+
+ if (modules_sym)
+ sym_calc_value(modules_sym);
+
+ if (mode != def_random)
+ return;
+
+ for_all_symbols(i, csym) {
+ if (sym_has_value(csym) || !sym_is_choice(csym))
+ continue;
+
+ sym_calc_value(csym);
+ prop = sym_get_choice_prop(csym);
+ def = -1;
+ while (1) {
+ cnt = 0;
+ expr_list_for_each_sym(prop->expr, e, sym) {
+ if (sym->visible == no)
+ continue;
+ if (def == cnt++) {
+ csym->def[S_DEF_USER].val = sym;
+ break;
+ }
+ }
+ if (def >= 0 || cnt < 2)
+ break;
+ def = (rand() % cnt) + 1;
+ }
+ csym->flags |= SYMBOL_DEF_USER;
+ }
+}
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
index 96521cb..4a9af6f 100644
--- a/scripts/kconfig/lkc.h
+++ b/scripts/kconfig/lkc.h
@@ -42,6 +42,14 @@ extern "C" {
#define TF_PARAM 0x0002
#define TF_OPTION 0x0004
+enum conf_def_mode {
+ def_default,
+ def_yes,
+ def_mod,
+ def_no,
+ def_random
+};
+
#define T_OPT_MODULES 1
#define T_OPT_DEFCONFIG_LIST 2
#define T_OPT_ENV 3
@@ -69,6 +77,7 @@ const char *conf_get_configname(void);
char *conf_get_default_confname(void);
void sym_set_change_count(int count);
void sym_add_change_count(int count);
+void conf_set_all_new_symbols(enum conf_def_mode mode);
/* kconfig_load.c */
void kconfig_load(void);
--
1.5.4.1.143.ge7e51
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index fda6313..bd2a27e 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -76,7 +76,6 @@ static void check_stdin(void)
static int conf_askvalue(struct symbol *sym, const char *def)
{
enum symbol_type type = sym_get_type(sym);
- tristate val;
if (!sym_has_value(sym))
printf(_("(NEW) "));
@@ -92,15 +91,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
}
switch (input_mode) {
- case set_no:
- case set_mod:
- case set_yes:
- case set_random:
- if (sym_has_value(sym)) {
- printf("%s\n", def);
- return 0;
- }
- break;
case ask_new:
case ask_silent:
if (sym_has_value(sym)) {
@@ -128,52 +118,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
default:
;
}
- switch (input_mode) {
- case set_yes:
- if (sym_tristate_within_range(sym, yes)) {
- line[0] = 'y';
- line[1] = '\n';
- line[2] = 0;
- break;
- }
- case set_mod:
- if (type == S_TRISTATE) {
- if (sym_tristate_within_range(sym, mod)) {
- line[0] = 'm';
- line[1] = '\n';
- line[2] = 0;
- break;
- }
- } else {
- if (sym_tristate_within_range(sym, yes)) {
- line[0] = 'y';
- line[1] = '\n';
- line[2] = 0;
- break;
- }
- }
- case set_no:
- if (sym_tristate_within_range(sym, no)) {
- line[0] = 'n';
- line[1] = '\n';
- line[2] = 0;
- break;
- }
- case set_random:
- do {
- val = (tristate)(rand() % 3);
- } while (!sym_tristate_within_range(sym, val));
- switch (val) {
- case no: line[0] = 'n'; break;
- case mod: line[0] = 'm'; break;
- case yes: line[0] = 'y'; break;
- }
- line[1] = '\n';
- line[2] = 0;
- break;
- default:
- break;
- }
printf("%s", line);
return 1;
}
@@ -374,16 +318,12 @@ static int conf_choice(struct menu *menu)
else
continue;
break;
- case set_random:
- if (is_new)
- def = (rand() % cnt) + 1;
case set_default:
- case set_yes:
- case set_mod:
- case set_no:
cnt = def;
printf("%d\n", cnt);
break;
+ default:
+ break;
}
conf_childs:
@@ -494,6 +434,43 @@ static void check_conf(struct menu *menu)
check_conf(child);
}
+static void conf_do_update(void)
+{
+ /* Update until a loop caused no more changes */
+ do {
+ conf_cnt = 0;
+ check_conf(&rootmenu);
+ } while (conf_cnt);
+}
+
+static int conf_silent_update(void)
+{
+ const char *name;
+
+ if (conf_get_changed()) {
+ name = getenv("KCONFIG_NOSILENTUPDATE");
+ if (name && *name) {
+ fprintf(stderr,
+ _("\n*** Kernel configuration requires explicit update.\n\n"));
+ return 1;
+ }
+ conf_do_update();
+ }
+ return 0;
+}
+
+static int conf_update(void)
+{
+ rootEntry = &rootmenu;
+ conf(&rootmenu);
+ if (input_mode == ask_all) {
+ input_mode = ask_silent;
+ valid_stdin = 1;
+ }
+ conf_do_update();
+ return 0;
+}
+
int main(int ac, char **av)
{
int opt;
@@ -599,36 +576,41 @@ int main(int ac, char **av)
default:
break;
}
+ switch (input_mode) {
+ case set_no:
+ conf_set_all_new_symbols(def_no);
+ break;
+ case set_yes:
+ conf_set_all_new_symbols(def_yes);
+ break;
+ case set_mod:
+ conf_set_all_new_symbols(def_mod);
+ break;
+ case set_random:
+ conf_set_all_new_symbols(def_random);
+ break;
+ case ask_silent:
+ if (conf_silent_update())
+ exit(1);
+ break;
+ case ask_new:
+ case ask_all:
+ case set_default:
+ if (conf_update())
+ exit(1);
+ break;
+ }
- if (input_mode != ask_silent) {
- rootEntry = &rootmenu;
- conf(&rootmenu);
- if (input_mode == ask_all) {
- input_mode = ask_silent;
- valid_stdin = 1;
- }
- } else if (conf_get_changed()) {
- name = getenv("KCONFIG_NOSILENTUPDATE");
- if (name && *name) {
- fprintf(stderr, _("\n*** Kernel configuration requires explicit update.\n\n"));
- return 1;
- }
- } else
- goto skip_check;
-
- do {
- conf_cnt = 0;
- check_conf(&rootmenu);
- } while (conf_cnt);
- if (conf_write(NULL)) {
+ if (conf_get_changed() && conf_write(NULL)) {
fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
- return 1;
+ exit(1);
}
-skip_check:
+ /* ask_silent is used during the build so we shall update autoconf.
+ * All other commands are only used to generate a config.
+ */
if (input_mode == ask_silent && conf_write_autoconf()) {
fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
return 1;
}
-
return 0;
}
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: kconfig - hex are considered decimal
2008-06-29 11:51 kconfig - hex are considered decimal Sam Ravnborg
@ 2008-06-29 21:29 ` Sam Ravnborg
2008-06-30 13:19 ` Roman Zippel
1 sibling, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2008-06-29 21:29 UTC (permalink / raw)
To: Roman Zippel; +Cc: linux-kbuild
On Sun, Jun 29, 2008 at 01:51:20PM +0200, Sam Ravnborg wrote:
> Hi Roman.
>
> I was applying an old patch from you that introduces
> conf_set_all_new_symbols().
>
> But when I tested it I noticed that all symbols
> of type "hex" were saved as decimal vlaues in .config.
>
> Sample (first line is with unmodifed kconfig):
>
> -CONFIG_RADIO_ZOLTRIX_PORT=0x20c
> +CONFIG_RADIO_ZOLTRIX_PORT=20c
>
> I guess this has something to do with the way we
> represent a hex value internally. But I have not yet
> dived into it.
>
> Can you see where it goes wrong?
This seems to be the right fix.
Sam
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 0759761..6f39c80 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -510,7 +510,7 @@ int conf_write(const char *name)
case S_HEX:
str = sym_get_string_value(sym);
if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
+ fprintf(out, "CONFIG_%s=0x%s\n", sym->name, str);
break;
}
case S_INT:
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: kconfig - hex are considered decimal
2008-06-29 11:51 kconfig - hex are considered decimal Sam Ravnborg
2008-06-29 21:29 ` Sam Ravnborg
@ 2008-06-30 13:19 ` Roman Zippel
2008-06-30 20:40 ` Sam Ravnborg
1 sibling, 1 reply; 8+ messages in thread
From: Roman Zippel @ 2008-06-30 13:19 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: linux-kbuild
Hi,
On Sun, 29 Jun 2008, Sam Ravnborg wrote:
> Sample (first line is with unmodifed kconfig):
>
> -CONFIG_RADIO_ZOLTRIX_PORT=0x20c
> +CONFIG_RADIO_ZOLTRIX_PORT=20c
>
> I guess this has something to do with the way we
> represent a hex value internally. But I have not yet
> dived into it.
>
> Can you see where it goes wrong?
It's not really wrong, it's a valid value there. Only if it's saved like
this in the header file, it would be wrong.
I noticed that during testing too, that value is coming liking that
directly from the Kconfig file. The real fix would be to deprecate hex
values without prefix and automatically adding the prefix where needed
(currently loading of Kconfig/.config).
I though about making it more consistent, but it's not really a pressing
issue, so I left it as is for now.
bye, Roman
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kconfig - hex are considered decimal
2008-06-30 13:19 ` Roman Zippel
@ 2008-06-30 20:40 ` Sam Ravnborg
2008-06-30 21:59 ` Roman Zippel
0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2008-06-30 20:40 UTC (permalink / raw)
To: Roman Zippel; +Cc: linux-kbuild
On Mon, Jun 30, 2008 at 03:19:09PM +0200, Roman Zippel wrote:
> Hi,
>
> On Sun, 29 Jun 2008, Sam Ravnborg wrote:
>
> > Sample (first line is with unmodifed kconfig):
> >
> > -CONFIG_RADIO_ZOLTRIX_PORT=0x20c
> > +CONFIG_RADIO_ZOLTRIX_PORT=20c
> >
> > I guess this has something to do with the way we
> > represent a hex value internally. But I have not yet
> > dived into it.
> >
> > Can you see where it goes wrong?
>
> It's not really wrong, it's a valid value there. Only if it's saved like
> this in the header file, it would be wrong.
> I noticed that during testing too, that value is coming liking that
> directly from the Kconfig file. The real fix would be to deprecate hex
> values without prefix and automatically adding the prefix where needed
> (currently loading of Kconfig/.config).
> I though about making it more consistent, but it's not really a pressing
> issue, so I left it as is for now.
For now I added this patch (for previous mail).
This makes the configs equal so they can be compared.
Sam
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 0759761..6f39c80 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -510,7 +510,7 @@ int conf_write(const char *name)
case S_HEX:
str = sym_get_string_value(sym);
if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
- fprintf(out, "CONFIG_%s=%s\n", sym->name, str);
+ fprintf(out, "CONFIG_%s=0x%s\n", sym->name, str);
break;
}
case S_INT:
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: kconfig - hex are considered decimal
2008-06-30 20:40 ` Sam Ravnborg
@ 2008-06-30 21:59 ` Roman Zippel
2008-07-01 6:12 ` Sam Ravnborg
0 siblings, 1 reply; 8+ messages in thread
From: Roman Zippel @ 2008-06-30 21:59 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: linux-kbuild
Hi,
On Mon, 30 Jun 2008, Sam Ravnborg wrote:
> For now I added this patch (for previous mail).
> This makes the configs equal so they can be compared.
Did you try changing and saving that hex value?
You need a similiar logic as used for saving the header file.
Why is it a problem, that needs immediate fixing anyway?
bye, Roman
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kconfig - hex are considered decimal
2008-06-30 21:59 ` Roman Zippel
@ 2008-07-01 6:12 ` Sam Ravnborg
2008-07-02 12:39 ` Roman Zippel
0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2008-07-01 6:12 UTC (permalink / raw)
To: Roman Zippel; +Cc: linux-kbuild
On Mon, Jun 30, 2008 at 11:59:42PM +0200, Roman Zippel wrote:
> Hi,
>
> On Mon, 30 Jun 2008, Sam Ravnborg wrote:
>
> > For now I added this patch (for previous mail).
> > This makes the configs equal so they can be compared.
>
> Did you try changing and saving that hex value?
Yes.
- When changing I see the 0x prefix - which I consider OK for hex values
- When saving I see the 0x prefix in autoconf.h + .config
> You need a similiar logic as used for saving the header file.
> Why is it a problem, that needs immediate fixing anyway?
To keep difference minimal for .config produced by
old style 'all*config' and new style 'all*config'.
See patches where kconfig start to use the new
method for 'all*config' targets - they are cc:ed to you
and available on linux-kbuild.
I simply started to use conf_set_all_new_symbols() and
as a result I could simplify conf.c.
And things got so simple that I dropped the patches
introducing aconf.c.
Yet TODO:
-> Give Redhat's nonint_oldconfig a closer look and see
how to integrate this functionality
-> Give Andres Salomon patches a second look and see how to
integrate the functionality he requires
It it does not turn out to be simple I will lilely postpone it
until I have moved.
Sam
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kconfig - hex are considered decimal
2008-07-01 6:12 ` Sam Ravnborg
@ 2008-07-02 12:39 ` Roman Zippel
2008-07-06 21:28 ` Sam Ravnborg
0 siblings, 1 reply; 8+ messages in thread
From: Roman Zippel @ 2008-07-02 12:39 UTC (permalink / raw)
To: Sam Ravnborg; +Cc: linux-kbuild
Hi,
On Tue, 1 Jul 2008, Sam Ravnborg wrote:
> - When changing I see the 0x prefix - which I consider OK for hex values
> - When saving I see the 0x prefix in autoconf.h + .config
I disagree with the proposed patch. It only makes cosmetical changes, but
it doesn't fix the current inconsistenties. Either we do it properly as in
the patch below or I'd rather keep it as is.
The patch checks the default values more strictly, I'm open to opinions
whether that warning is useful or maybe just check that hex values have
the 0x prefix.
> See patches where kconfig start to use the new
> method for 'all*config' targets - they are cc:ed to you
> and available on linux-kbuild.
> I simply started to use conf_set_all_new_symbols() and
> as a result I could simplify conf.c.
>
> And things got so simple that I dropped the patches
> introducing aconf.c.
I'd actually prefer to move everything noninteractive out of conf.c, as
this would be the right place for this:
> -> Give Redhat's nonint_oldconfig a closer look and see
> how to integrate this functionality
This should be pretty much do it:
for_all_symbols(i, sym) {
sym_calc_value(sym);
if (sym->flags & SYMBOL_WRITE && !sym_has_value(sym))
printf(...);
}
The point is that this has nothing to do with what's already in conf.c,
this should be a separate utility for all noninteractive kconfig jobs.
bye, Roman
[PATCH] normalize int/hex values
Introduce a new strdup_type() which normalizes the input value, so that
all symbol values are properly formatted.
Check the values of defaults a bit more careful, so that their are
either proper constants or other symbols of the same type.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
---
arch/x86/Kconfig | 4 ++--
drivers/media/radio/Kconfig | 16 ++++++++--------
drivers/mtd/devices/Kconfig | 3 +--
drivers/mtd/maps/Kconfig | 2 +-
scripts/kconfig/confdata.c | 2 +-
scripts/kconfig/lkc.h | 2 ++
scripts/kconfig/menu.c | 41 ++++++++++++++++++++++++++++++++++++-----
scripts/kconfig/util.c | 16 ++++++++++++++++
sound/oss/Kconfig | 10 +++++-----
9 files changed, 72 insertions(+), 24 deletions(-)
Index: linux-2.6/scripts/kconfig/confdata.c
===================================================================
--- linux-2.6.orig/scripts/kconfig/confdata.c
+++ linux-2.6/scripts/kconfig/confdata.c
@@ -132,7 +132,7 @@ static int conf_set_sym_val(struct symbo
case S_HEX:
done:
if (sym_string_valid(sym, p)) {
- sym->def[def].val = strdup(p);
+ sym->def[def].val = strdup_type(p, sym->type);
sym->flags |= def_flags;
} else {
conf_warning("symbol value '%s' invalid for %s", p, sym->name);
Index: linux-2.6/scripts/kconfig/lkc.h
===================================================================
--- linux-2.6.orig/scripts/kconfig/lkc.h
+++ linux-2.6/scripts/kconfig/lkc.h
@@ -113,6 +113,8 @@ void str_append(struct gstr *gs, const c
void str_printf(struct gstr *gs, const char *fmt, ...);
const char *str_get(struct gstr *gs);
+char *strdup_type(const char *str, int type);
+
/* symbol.c */
extern struct expr *sym_env_list;
Index: linux-2.6/scripts/kconfig/menu.c
===================================================================
--- linux-2.6.orig/scripts/kconfig/menu.c
+++ linux-2.6/scripts/kconfig/menu.c
@@ -187,15 +187,46 @@ static int menu_range_valid_sym(struct s
void sym_check_prop(struct symbol *sym)
{
struct property *prop;
- struct symbol *sym2;
+ struct symbol *sym2, *def_sym;
+ char *str;
+
for (prop = sym->prop; prop; prop = prop->next) {
switch (prop->type) {
case P_DEFAULT:
- if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) &&
- prop->expr->type != E_SYMBOL)
+ if (sym->type != S_STRING && sym->type != S_INT &&
+ sym->type != S_HEX)
+ break;
+ if (prop->expr->type != E_SYMBOL) {
prop_warn(prop,
- "default for config symbol '%'"
- " must be a single symbol", sym->name);
+ "default for config symbol '%s'"
+ " must be a single symbol", sym->name);
+ break;
+ }
+ def_sym = prop->expr->left.sym;
+ if (def_sym->type == sym->type)
+ /* default is a dynamic value */
+ break;
+ if (def_sym->type != S_UNKNOWN) {
+ prop_warn(prop,
+ "default for config symbol '%s'"
+ " has the wrong type (%s)", sym->name,
+ sym_type_name(def_sym->type));
+ break;
+ }
+ if (!sym_string_valid(sym, def_sym->name)) {
+ prop_warn(prop,
+ "default for config symbol '%s'"
+ " is not valid", sym->name);
+ break;
+ }
+ str = strdup_type(def_sym->name, sym->type);
+ if (strcmp(str, def_sym->name)) {
+ prop_warn(prop,
+ "default for config symbol '%s'"
+ " should be %s", sym->name, str);
+ prop->expr->left.sym = sym_lookup(str, SYMBOL_CONST);
+ }
+ free(str);
break;
case P_SELECT:
sym2 = prop_get_symbol(prop);
Index: linux-2.6/scripts/kconfig/util.c
===================================================================
--- linux-2.6.orig/scripts/kconfig/util.c
+++ linux-2.6/scripts/kconfig/util.c
@@ -131,3 +131,19 @@ const char *str_get(struct gstr *gs)
return gs->s;
}
+/* duplicate str, but normalize any number according to the symbol type */
+char *strdup_type(const char *str, int type)
+{
+ char buf[64];
+
+ if (type == S_STRING)
+ return strdup(str);
+ if (type == S_HEX) {
+ unsigned int val = strtoul(str, NULL, 16);
+ sprintf(buf, "%#x", val);
+ } else {
+ int val = strtol(str, NULL, 10);
+ sprintf(buf, "%d", val);
+ }
+ return strdup(buf);
+}
Index: linux-2.6/arch/x86/Kconfig
===================================================================
--- linux-2.6.orig/arch/x86/Kconfig
+++ linux-2.6/arch/x86/Kconfig
@@ -885,11 +885,11 @@ endchoice
config PAGE_OFFSET
hex
- default 0xB0000000 if VMSPLIT_3G_OPT
+ default 0xb0000000 if VMSPLIT_3G_OPT
default 0x80000000 if VMSPLIT_2G
default 0x78000000 if VMSPLIT_2G_OPT
default 0x40000000 if VMSPLIT_1G
- default 0xC0000000
+ default 0xc0000000
depends on X86_32
config HIGHMEM
Index: linux-2.6/drivers/media/radio/Kconfig
===================================================================
--- linux-2.6.orig/drivers/media/radio/Kconfig
+++ linux-2.6/drivers/media/radio/Kconfig
@@ -58,7 +58,7 @@ config RADIO_RTRACK
config RADIO_RTRACK_PORT
hex "RadioTrack i/o port (0x20f or 0x30f)"
depends on RADIO_RTRACK=y
- default "20f"
+ default "0x20f"
help
Enter either 0x30f or 0x20f here. The card default is 0x30f, if you
haven't changed the jumper setting on the card.
@@ -81,7 +81,7 @@ config RADIO_RTRACK2
config RADIO_RTRACK2_PORT
hex "RadioTrack II i/o port (0x20c or 0x30c)"
depends on RADIO_RTRACK2=y
- default "30c"
+ default "0x30c"
help
Enter either 0x30c or 0x20c here. The card default is 0x30c, if you
haven't changed the jumper setting on the card.
@@ -104,7 +104,7 @@ config RADIO_AZTECH
config RADIO_AZTECH_PORT
hex "Aztech/Packard Bell I/O port (0x350 or 0x358)"
depends on RADIO_AZTECH=y
- default "350"
+ default "0x350"
help
Enter either 0x350 or 0x358 here. The card default is 0x350, if you
haven't changed the setting of jumper JP3 on the card. Removing the
@@ -133,7 +133,7 @@ config RADIO_GEMTEK
config RADIO_GEMTEK_PORT
hex "Fixed I/O port (0x20c, 0x30c, 0x24c, 0x34c, 0c24c or 0x28c)"
depends on RADIO_GEMTEK=y
- default "34c"
+ default "0x34c"
help
Enter either 0x20c, 0x30c, 0x24c or 0x34c here. The card default is
0x34c, if you haven't changed the jumper setting on the card. On
@@ -250,7 +250,7 @@ config RADIO_TERRATEC
config RADIO_TERRATEC_PORT
hex "Terratec i/o port (normally 0x590)"
depends on RADIO_TERRATEC=y
- default "590"
+ default "0x590"
help
Fill in the I/O port of your TerraTec FM radio card. If unsure, go
with the default.
@@ -268,7 +268,7 @@ config RADIO_TRUST
config RADIO_TRUST_PORT
hex "Trust i/o port (usually 0x350 or 0x358)"
depends on RADIO_TRUST=y
- default "350"
+ default "0x350"
help
Enter the I/O port of your Trust FM radio card. If unsure, try the
values "0x350" or "0x358".
@@ -301,7 +301,7 @@ config RADIO_TYPHOON_PROC_FS
config RADIO_TYPHOON_PORT
hex "Typhoon I/O port (0x316 or 0x336)"
depends on RADIO_TYPHOON=y
- default "316"
+ default "0x316"
help
Enter the I/O port of your Typhoon or EcoRadio radio card.
@@ -335,7 +335,7 @@ config RADIO_ZOLTRIX
config RADIO_ZOLTRIX_PORT
hex "ZOLTRIX I/O port (0x20c or 0x30c)"
depends on RADIO_ZOLTRIX=y
- default "20c"
+ default "0x20c"
help
Enter the I/O port of your Zoltrix radio card.
Index: linux-2.6/drivers/mtd/devices/Kconfig
===================================================================
--- linux-2.6.orig/drivers/mtd/devices/Kconfig
+++ linux-2.6/drivers/mtd/devices/Kconfig
@@ -240,8 +240,7 @@ config MTD_DOCPROBE_ADVANCED
config MTD_DOCPROBE_ADDRESS
hex "Physical address of DiskOnChip" if MTD_DOCPROBE_ADVANCED
depends on MTD_DOCPROBE
- default "0x0000" if MTD_DOCPROBE_ADVANCED
- default "0" if !MTD_DOCPROBE_ADVANCED
+ default "0"
---help---
By default, the probe for DiskOnChip devices will look for a
DiskOnChip at every multiple of 0x2000 between 0xC8000 and 0xEE000.
Index: linux-2.6/drivers/mtd/maps/Kconfig
===================================================================
--- linux-2.6.orig/drivers/mtd/maps/Kconfig
+++ linux-2.6/drivers/mtd/maps/Kconfig
@@ -92,7 +92,7 @@ endchoice
config MSP_FLASH_MAP_LIMIT
hex
- default "0x02000000"
+ default "0x2000000"
depends on MSP_FLASH_MAP_LIMIT_32M
config MTD_PMC_MSP_RAMROOT
Index: linux-2.6/sound/oss/Kconfig
===================================================================
--- linux-2.6.orig/sound/oss/Kconfig
+++ linux-2.6/sound/oss/Kconfig
@@ -129,7 +129,7 @@ config MSNDCLAS_IRQ
config MSNDCLAS_MEM
hex "MSND Classic memory B0000, C8000, D0000, D8000, E0000, E8000"
depends on SOUND_MSNDCLAS=y
- default "D0000"
+ default "0xd0000"
help
Memory-mapped I/O base address for the MultiSound Classic and
related cards.
@@ -137,7 +137,7 @@ config MSNDCLAS_MEM
config MSNDCLAS_IO
hex "MSND Classic I/O 210, 220, 230, 240, 250, 260, 290, 3E0"
depends on SOUND_MSNDCLAS=y
- default "290"
+ default "0x290"
help
I/O port address for the MultiSound Classic and related cards.
@@ -192,7 +192,7 @@ config MSNDPIN_IRQ
config MSNDPIN_MEM
hex "MSND Pinnacle memory B0000, C8000, D0000, D8000, E0000, E8000"
depends on SOUND_MSNDPIN=y
- default "D0000"
+ default "0xd0000"
help
Memory-mapped I/O base address for the primary synthesizer on
MultiSound Pinnacle and Fiji sound cards.
@@ -200,7 +200,7 @@ config MSNDPIN_MEM
config MSNDPIN_IO
hex "MSND Pinnacle I/O 210, 220, 230, 240, 250, 260, 290, 3E0"
depends on SOUND_MSNDPIN=y
- default "290"
+ default "0x290"
help
Memory-mapped I/O base address for the primary synthesizer on
MultiSound Pinnacle and Fiji sound cards.
@@ -234,7 +234,7 @@ comment "MSND Pinnacle DSP section will
config MSNDPIN_CFG
hex "MSND Pinnacle config port 250,260,270"
depends on MSNDPIN_NONPNP
- default "250"
+ default "0x250"
help
This is the port which the Pinnacle and Fiji uses to configure the
card's resources when not in PnP mode. If your card is in PnP mode,
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kconfig - hex are considered decimal
2008-07-02 12:39 ` Roman Zippel
@ 2008-07-06 21:28 ` Sam Ravnborg
0 siblings, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2008-07-06 21:28 UTC (permalink / raw)
To: Roman Zippel; +Cc: linux-kbuild
On Wed, Jul 02, 2008 at 02:39:08PM +0200, Roman Zippel wrote:
> Hi,
>
> On Tue, 1 Jul 2008, Sam Ravnborg wrote:
>
> > - When changing I see the 0x prefix - which I consider OK for hex values
> > - When saving I see the 0x prefix in autoconf.h + .config
>
> I disagree with the proposed patch. It only makes cosmetical changes, but
> it doesn't fix the current inconsistenties. Either we do it properly as in
> the patch below or I'd rather keep it as is.
> The patch checks the default values more strictly, I'm open to opinions
> whether that warning is useful or maybe just check that hex values have
> the 0x prefix.
Thanks - I divided your patch up in two.
First one that adds the new checks
And the second that fixes the warnings
>
> > See patches where kconfig start to use the new
> > method for 'all*config' targets - they are cc:ed to you
> > and available on linux-kbuild.
> > I simply started to use conf_set_all_new_symbols() and
> > as a result I could simplify conf.c.
> >
> > And things got so simple that I dropped the patches
> > introducing aconf.c.
>
> I'd actually prefer to move everything noninteractive out of conf.c, as
> this would be the right place for this:
>
> > -> Give Redhat's nonint_oldconfig a closer look and see
> > how to integrate this functionality
>
> This should be pretty much do it:
>
> for_all_symbols(i, sym) {
> sym_calc_value(sym);
> if (sym->flags & SYMBOL_WRITE && !sym_has_value(sym))
> printf(...);
> }
>
> The point is that this has nothing to do with what's already in conf.c,
> this should be a separate utility for all noninteractive kconfig jobs.
I do not disagree with you here. But for now it was just more
natural to add it where I deleted the other stuff.
I will move it to a separate .c file later.
Sam
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-07-06 21:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-29 11:51 kconfig - hex are considered decimal Sam Ravnborg
2008-06-29 21:29 ` Sam Ravnborg
2008-06-30 13:19 ` Roman Zippel
2008-06-30 20:40 ` Sam Ravnborg
2008-06-30 21:59 ` Roman Zippel
2008-07-01 6:12 ` Sam Ravnborg
2008-07-02 12:39 ` Roman Zippel
2008-07-06 21:28 ` Sam Ravnborg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox