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