CONFIG_* defines
Rob Landley
rob at landley.net
Thu Sep 8 04:44:28 UTC 2005
On Wednesday 07 September 2005 14:39, Bernhard Fischer wrote:
> >Unfortunately, yet another example of how our make dependencies are horked
> > is that not only does scripts/config not get rebuilt, but a "make clean"
> > doesn't delete scripts/config/{conf,mconf,mkconfigs}
>
> make distclean would (see the "$(MAKE) -C scripts/config clean" there).
>
> >Do a "make clean", then delete those three files by hand, and then
> > rebuild.
>
> I was experiencing this on a fresh checkout; abovementioned checkin does
> result for me in
> #
> # (null)
> #
> CONFIG_TEST=y
> # CONFIG_FEATURE_TEST_64 is not set
> CONFIG_TOUCH=y
> CONFIG_TR=y
>
> instead of formerly:
> #
> # test (forced enabled for use with shell)
> #
> CONFIG_FEATURE_TEST_64=y
> CONFIG_TOUCH=y
> CONFIG_TR=y
Huh.
Not a clue. Haven't got 64-bit hardware to test with on this end. (Anybody
got any ideas?)
It sounds like some kind of rule between CONFIG_FEATURE_TEST_64 and
CONFIG_FEATURE_TEST is triggering, which it shouldn't be.
What _exactly_ do you do to generate this file? (Make yesconfig? make
menuconfig? Make allyesconfig && make menuconfig?)
> svn history 11329
> gives the advise to look at help, so i've no idea what you "fixed" in
> that ci, unfortunately.
landley at driftwood:~/busybox/busybox$ svn log -r11329
------------------------------------------------------------------------
r11329 | landley | 2005-09-05 06:04:30 -0500 (Mon, 05 Sep 2005) | 12 lines
The previous commit left confdata writing out:
CONFIG_NUMERIC_CONSTANT=
And on reading it back in, it would complain that '' was an invalid value for
that field. I.E. "make allnoconfig && make" worked fine, but
"make allnoconfig && make menuconfig" barfed reading in the config file.
So now I have it write out "0" as the blank value. (It's initialized to the
default value when the menu becomes visible anyway; I checked.) That seems
to work.
------------------------------------------------------------------------
landley at driftwood:~/busybox/busybox$ svn diff -r 11328:11329
Index: scripts/config/confdata.c
===================================================================
--- scripts/config/confdata.c (revision 11328)
+++ scripts/config/confdata.c (revision 11329)
@@ -396,21 +396,20 @@
case S_HEX:
str = sym_get_string_value(sym);
if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
- fprintf(out, "%s=%s\n", sym->name, str);
+ fprintf(out, "%s=%s\n", sym->name, *str ? str : "0");
if (out_h)
fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
break;
}
case S_INT:
str = sym_get_string_value(sym);
- fprintf(out, "%s=%s\n", sym->name, str);
+ fprintf(out, "%s=%s\n", sym->name, *str ? str : "0");
if (out_h)
fprintf(out_h, "#define %s %s\n", sym->name, str);
break;
}
}
- next:
if (menu->list) {
menu = menu->list;
continue;
I don't know what's up with the web system if it can't show you that...
Also, these changes were on top of 11324, which was:
--- scripts/config/confdata.c (revision 11323)
+++ scripts/config/confdata.c (revision 11324)
@@ -322,8 +322,8 @@
while (menu) {
sym = menu->sym;
if (!sym) {
- if (!menu_is_visible(menu))
- goto next;
+ //if (!menu_is_visible(menu))
+ // goto next;
str = menu_get_prompt(menu);
fprintf(out, "\n"
"#\n"
@@ -336,8 +336,8 @@
" */\n", str);
} else if (!(sym->flags & SYMBOL_CHOICE)) {
sym_calc_value(sym);
- if (!(sym->flags & SYMBOL_WRITE))
- goto next;
+ //if (!(sym->flags & SYMBOL_WRITE))
+ // goto next;
sym->flags &= ~SYMBOL_WRITE;
type = sym->type;
if (type == S_TRISTATE) {
I.E. write out those pesky hidden submenus so we define ENABLE_ symbols as 0
reliably.
Rob
P.S. I'd send this directly to you instead of the list, but your ISP is
spam-blocking my email. *shrug*. My response to anybody spam-blocking my
email has always been "well, this guy obviously isn't interested in anything
I have to say" and moved on, which is why I haven't bothered to mention it
before now. (Vodz's ISP has been doing so for most of a year. Not my
problem...)
More information about the busybox
mailing list