Hi, On Mon, Aug 1, 2011 at 11:15 AM, Kyle Moffett <kyle@xxxxxxxxxxxxxxx> wrote: > On Mon, Aug 1, 2011 at 11:04, Arnaud Lacombe <lacombar@xxxxxxxxx> wrote: >> Hi, >> >> On Mon, Aug 1, 2011 at 7:27 AM, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: >>> On Mon, Aug 1, 2011 at 12:14, Russell King - ARM Linux >>>>>[...] >>>>> >>>>> Doesn't kconf error out when trying to select a non-existent symbol? >>>> >>>> Nope. >>> >>> You're right. So that's a bug. >>> >> depends on what you are trying to achieve and what the problem is. >> >> Internally kconfig will create a dummy symbol when it encounter a >> missing symbol so that arch/arm/Kconfig can reference a symbol which >> will be fully defined later on. I do not think you want to forward >> decl all the symbol which can be used. That'd be a mess. That said, we >> can come with a form of symbol deprecation that would error-out when >> used. > > Would it be possible instead to make Kconfig go through all the symbols > after everything is processed and identify any remaining "dummy symbols" > which were not actually declared anywhere? > this is software, everything is possible. > Right now if you typo a "select" statement you get no warnings that you > are selecting something that does not exist, which is probably a cause > of many kinds of errors beyond this particular one. > d'oh! ... I'm not sure we want that. Dummy symbol are heavily used internally, a trivial implementation[0] triggered: % make REGENERATE_PARSERS=y alldefconfig 2>&1 | grep 'defined without type' | wc -l 817 Moreover, this approach is deemed to fail. The current symbol namespace is tied to an arch, so whenever you do: arch/arm/Kconfig: config FOO bool config BAZ bool drivers/cpufreq/Kconfig config BAR depends on ARM && FOO select BAZ You will end up triggering the warning for every ARCH != ARM... - Arnaud [0]: or rather a fix as we currently only do the check for symbol linked to menu -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html