Fix Kconfig dependency problems wrt boolean menuconfigs
If one has a dependency chain (tristate)FOO depends on (bool)BAR depends on (tristate)BAZ, build problems will result. If BAZ=m, then BAR can be set y, which allows FOO=y. It's possible to have FOO=y && BAZ=m, which wouldn't be allowed if FOO depended directly on BAZ. In effect, the bool promotes the tristate from m to y. This ends up causing a problem with several menuconfigs that look like: menuconfig BAR bool depends on BAZ [tristate] if BAR config FOO tristate endif The solution used here is to add the dependencies of BAR to the if statement, so that items in the if block will gain a direct non-bool-promoted dependency on BAZ. This is how it would work if a menu was used instead of an if block. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: "David S. Miller" <davem@davemloft.net> Acked-by: Jeff Garzik <jeff@garzik.org> Cc: Dominik Brodowski <linux@dominikbrodowski.net> Cc: Chas Williams <chas@cmf.nrl.navy.mil> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
30acbabae3
commit
59faba1b31
@@ -7,7 +7,7 @@ menuconfig ATM_DRIVERS
|
|||||||
depends on NETDEVICES && ATM
|
depends on NETDEVICES && ATM
|
||||||
default y
|
default y
|
||||||
|
|
||||||
if ATM_DRIVERS
|
if ATM_DRIVERS && NETDEVICES && ATM
|
||||||
|
|
||||||
config ATM_DUMMY
|
config ATM_DUMMY
|
||||||
tristate "Dummy ATM driver"
|
tristate "Dummy ATM driver"
|
||||||
|
@@ -11,7 +11,7 @@ menuconfig DVB_CAPTURE_DRIVERS
|
|||||||
---help---
|
---help---
|
||||||
Say Y to select Digital TV adapters
|
Say Y to select Digital TV adapters
|
||||||
|
|
||||||
if DVB_CAPTURE_DRIVERS
|
if DVB_CAPTURE_DRIVERS && DVB_CORE
|
||||||
|
|
||||||
comment "Supported SAA7146 based PCI Adapters"
|
comment "Supported SAA7146 based PCI Adapters"
|
||||||
depends on DVB_CORE && PCI && I2C
|
depends on DVB_CORE && PCI && I2C
|
||||||
|
@@ -9,7 +9,7 @@ menuconfig RADIO_ADAPTERS
|
|||||||
---help---
|
---help---
|
||||||
Say Y here to enable selecting AM/FM radio adapters.
|
Say Y here to enable selecting AM/FM radio adapters.
|
||||||
|
|
||||||
if RADIO_ADAPTERS
|
if RADIO_ADAPTERS && VIDEO_DEV
|
||||||
|
|
||||||
config RADIO_CADET
|
config RADIO_CADET
|
||||||
tristate "ADS Cadet AM/FM Tuner"
|
tristate "ADS Cadet AM/FM Tuner"
|
||||||
|
@@ -11,7 +11,7 @@ menuconfig VIDEO_CAPTURE_DRIVERS
|
|||||||
webcams, analog TV, and hybrid analog/digital TV.
|
webcams, analog TV, and hybrid analog/digital TV.
|
||||||
Some of those devices also supports FM radio.
|
Some of those devices also supports FM radio.
|
||||||
|
|
||||||
if VIDEO_CAPTURE_DRIVERS
|
if VIDEO_CAPTURE_DRIVERS && VIDEO_DEV
|
||||||
|
|
||||||
config VIDEO_ADV_DEBUG
|
config VIDEO_ADV_DEBUG
|
||||||
bool "Enable advanced debug functionality"
|
bool "Enable advanced debug functionality"
|
||||||
@@ -347,7 +347,7 @@ endmenu # encoder / decoder chips
|
|||||||
|
|
||||||
config VIDEO_VIVI
|
config VIDEO_VIVI
|
||||||
tristate "Virtual Video Driver"
|
tristate "Virtual Video Driver"
|
||||||
depends on VIDEO_V4L2 && !SPARC32 && !SPARC64 && PCI && VIDEO_DEV
|
depends on VIDEO_V4L2 && !SPARC32 && !SPARC64 && PCI
|
||||||
select VIDEO_BUF
|
select VIDEO_BUF
|
||||||
default n
|
default n
|
||||||
---help---
|
---help---
|
||||||
@@ -691,7 +691,7 @@ menuconfig V4L_USB_DRIVERS
|
|||||||
depends on USB
|
depends on USB
|
||||||
default y
|
default y
|
||||||
|
|
||||||
if V4L_USB_DRIVERS
|
if V4L_USB_DRIVERS && USB
|
||||||
|
|
||||||
source "drivers/media/video/pvrusb2/Kconfig"
|
source "drivers/media/video/pvrusb2/Kconfig"
|
||||||
|
|
||||||
|
@@ -19,7 +19,7 @@ menuconfig NET_PCMCIA
|
|||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
if NET_PCMCIA
|
if NET_PCMCIA && PCMCIA
|
||||||
|
|
||||||
config PCMCIA_3C589
|
config PCMCIA_3C589
|
||||||
tristate "3Com 3c589 PCMCIA support"
|
tristate "3Com 3c589 PCMCIA support"
|
||||||
|
Reference in New Issue
Block a user