kconfig: save location of config symbols
Sam Ravnborg [Sat, 31 Jul 2010 21:35:29 +0000 (23:35 +0200)]
When we add a new config symbol save the file/line
so we later can refer to their location.

The information is saved as a property to a config symbol
because we may have multiple definitions of the same symbol.

This has the side-effect that a symbol always has
at least one property.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>

scripts/kconfig/expr.h
scripts/kconfig/menu.c
scripts/kconfig/symbol.c

index 75a31e4..6ee2e4f 100644 (file)
@@ -132,6 +132,7 @@ enum prop_type {
        P_SELECT,   /* select BAR */
        P_RANGE,    /* range 7..100 (for a symbol) */
        P_ENV,      /* value from environment variable */
+       P_SYMBOL,   /* where a symbol is defined */
 };
 
 struct property {
index 1179989..4fb5902 100644 (file)
@@ -58,6 +58,8 @@ void menu_add_entry(struct symbol *sym)
        *last_entry_ptr = menu;
        last_entry_ptr = &menu->next;
        current_entry = menu;
+       if (sym)
+               menu_add_symbol(P_SYMBOL, sym, NULL);
 }
 
 void menu_end_entry(void)
index c127fa3..9f180ab 100644 (file)
@@ -961,6 +961,8 @@ const char *prop_get_type_name(enum prop_type type)
                return "select";
        case P_RANGE:
                return "range";
+       case P_SYMBOL:
+               return "symbol";
        case P_UNKNOWN:
                break;
        }