Re: [RFC] select and dependencies in Kconfig

From: Russell King
Date: Wed May 16 2007 - 04:43:43 EST


On Wed, May 16, 2007 at 04:33:35AM +0100, Al Viro wrote:
> On Tue, May 15, 2007 at 08:36:20PM +0100, Al Viro wrote:
> >
> > stuff that does select USB should depend on USB_ARCH_HAS_HCD, or we'll
> > end up with unbuildable configs.
>
> BTW, this kind of situation happens often enough, so how about doing
> the following: teach kconfig that if FOO selects BAR and BAR depends
> on <expr>, we should act as if FOO had explicit depends on <expr>.

We first need to ensure that we don't have any cases which explore the
current behaviour. I wonder how the following will be interpreted with
the ARCH_IXP4XX=y and ARCH_IXP4XX=n cases:

arch/arm/common/Kconfig:config SA1111
arch/arm/common/Kconfig: bool
arch/arm/common/Kconfig: select DMABOUNCE
arch/arm/common/Kconfig:
arch/arm/common/Kconfig:config DMABOUNCE
arch/arm/common/Kconfig: bool

arch/arm/mach-ixp4xx/Kconfig:if ARCH_IXP4XX
arch/arm/mach-ixp4xx/Kconfig:
...
arch/arm/mach-ixp4xx/Kconfig:config DMABOUNCE
arch/arm/mach-ixp4xx/Kconfig- bool
arch/arm/mach-ixp4xx/Kconfig- default y
arch/arm/mach-ixp4xx/Kconfig- depends on PCI
...
arch/arm/mach-ixp4xx/Kconfig:endif


We also have:

arch/arm/mm/Kconfig:config CPU_32v6K
arch/arm/mm/Kconfig- bool "Support ARM V6K processor extensions" if !SMP
arch/arm/mm/Kconfig- depends on CPU_V6
arch/arm/mm/Kconfig- default y if SMP

which gives: option available on V6 CPUs, user selectable on V6 UP, always
selected on V6 SMP.

and:

arch/arm/mm/Kconfig:config CPU_V7
arch/arm/mm/Kconfig: bool "Support ARM V7 processor"
arch/arm/mm/Kconfig: depends on ARCH_INTEGRATOR
arch/arm/mm/Kconfig: select CPU_32v6K

It would be undesirable for CPU_V7 to depend on CPU_V6 being set. (V7
always has V6K.) I guess V6K would have to become:

config CPU_32v6K
bool "Support ARM V6K processor extensions" if !SMP && !CPU_V7
depends on CPU_V6 || CPU_V7
default y if SMP || CPU_V7

and the select statement removed from CPU_V7.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
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/