lkml.org 
[lkml]   [2007]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: Kconfig troubles when using menuconfig - Was: [patch]Re: [linux-usb-devel] linux-2.6.22-rc5-gf1518a0 build #300 failed in zc0301_core.c
    Hi,

    On Fri, 22 Jun 2007, Mauro Carvalho Chehab wrote:

    > I'm to keep "default y" for the menuconfig items.
    >
    > Since those don't generate any code (there's no Makefile items
    > associated with the menuconfig vars),

    I don't know that without checking Makefiles/sources, so I have to assume
    it may produce some infrastructure code I don't need.

    > this will just improve the
    > usability for the final user (and will allow make oldconfig to work).

    I'd rather change that.

    > There's not much sense on selecting V4L support without selecting a V4L
    > driver.

    But if only want to enable a video driver, I likely don't want a radio
    driver...

    bye, Roman



    Reset generates values only if Kconfig and .config agree.

    Signed-off-by: Roman Zippel <zippel@linux-m68k.org>

    ---
    scripts/kconfig/confdata.c | 37 ++++++++++++++++++++++++++-----------
    1 file changed, 26 insertions(+), 11 deletions(-)

    Index: linux-2.6/scripts/kconfig/confdata.c
    ===================================================================
    --- linux-2.6.orig/scripts/kconfig/confdata.c
    +++ linux-2.6/scripts/kconfig/confdata.c
    @@ -341,27 +341,42 @@ int conf_read(const char *name)
    conf_unsaved++;
    /* maybe print value in verbose mode... */
    sym_ok:
    + if (!sym_is_choice(sym))
    + continue;
    + /* The choice symbol only has a set value (and thus is not new)
    + * if all its visible childs have values.
    + */
    + prop = sym_get_choice_prop(sym);
    + flags = sym->flags;
    + for (e = prop->expr; e; e = e->left.expr)
    + if (e->right.sym->visible != no)
    + flags &= e->right.sym->flags;
    + sym->flags &= flags | ~SYMBOL_DEF_USER;
    + }
    +
    + for_all_symbols(i, sym) {
    if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
    - if (sym->visible == no)
    + /* 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 disagrees.
    + */
    + if (sym->visible == no && !conf_unsaved)
    sym->flags &= ~SYMBOL_DEF_USER;
    switch (sym->type) {
    case S_STRING:
    case S_INT:
    case S_HEX:
    - if (!sym_string_within_range(sym, sym->def[S_DEF_USER].val))
    - sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
    + /* Reset a string value if it's out of range */
    + if (sym_string_within_range(sym, sym->def[S_DEF_USER].val))
    + break;
    + sym->flags &= ~(SYMBOL_VALID|SYMBOL_DEF_USER);
    + conf_unsaved++;
    + break;
    default:
    break;
    }
    }
    - if (!sym_is_choice(sym))
    - continue;
    - prop = sym_get_choice_prop(sym);
    - flags = sym->flags;
    - for (e = prop->expr; e; e = e->left.expr)
    - if (e->right.sym->visible != no)
    - flags &= e->right.sym->flags;
    - sym->flags &= flags | ~SYMBOL_DEF_USER;
    }

    sym_add_change_count(conf_warnings || conf_unsaved);
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-06-22 18:33    [W:8.585 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site