Re: [RFC PATCH] kbuild: Do not select symbols with unmet dependencies

From: Arnd Bergmann
Date: Wed Aug 12 2009 - 08:37:41 EST


On Wednesday 12 August 2009, Catalin Marinas wrote:
> The "select" statement in Kconfig files allows the enabling of options
> even if they have unmet direct dependencies (i.e. "depends on" expands
> to "no"). Currently, the "depends on" clauses are used in calculating
> the visibility but they do not affect the reverse dependencies in any
> way.
>
> The patch introduces additional tracking of the "depends on" statements
> and does not allow selecting an option if its direct dependencies are
> not met, also printing a warning.
>
> Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>

I guess this will change the behaviour of a number of subsystems,
likely causing unexpected regressions. I think your change
makes sense, but we need to be much more careful.

Can you extract a list of configuration symbols that are
impacted by your patch? A possibly way out could be to annotate
all of them first by changing

---
config FOO
bool

config BAR
depends on FOO

config BAZ
select BAR
---

so that we either get

config BAZ
select FOO
select BAR

or alternatively, on a case-by-case basis

config BAZ
depends on FOO
select BAR

Once that is in place, all the symbols have a well-defined behaviour
and we can safely apply your patch.

Arnd <><
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/