Re: [patch] dvb: build failure fix

From: Ingo Molnar
Date: Mon Apr 28 2008 - 15:54:00 EST



* Adrian Bunk <bunk@xxxxxxxxxx> wrote:

> On Mon, Apr 28, 2008 at 06:24:21PM +0200, Ingo Molnar wrote:
> >
> > fix build failure found via x86.git randconfig testing:
> >
> > drivers/built-in.o: In function `tda829x_attach':
> > : undefined reference to `tda827x_attach'
> > drivers/built-in.o: In function `tda829x_attach':
> > : undefined reference to `tda18271_attach'
> >
> > build failure is due to this nasty dependency:
> >
> > CONFIG_DVB_CORE=m but CONFIG_TUNER_TDA8290=y.

> It might work around the problem in your specific configuration, but
> it's not the correct solution.
>
> Please send your .config .

i dont have it anymore, but the key was what i wrote in the changelog
above:

CONFIG_DVB_CORE=m
CONFIG_TUNER_TDA8290=y

if you look at the symbols above, their definition sites, and the
dependencies between them you'll see why that breaks the build. (There
might be more to it, this area has been a frequent source of problems.)

> > - depends on I2C && FW_LOADER
> > + depends on I2C && FW_LOADER && ((DVB_CORE = m && m) || (DVB_CORE = y))
> >...
>
> Your funny additions are equivalent to "&& DVB_CORE".

right you are, thanks - the above change was the best hack 4 hours of
sleep can buy ;-) Simplified patch below.

Ingo

---------------------->
Subject: dvb: build failure fix
From: Ingo Molnar <mingo@xxxxxxx>
Date: Mon Apr 28 18:17:58 CEST 2008

fix build failure:

drivers/built-in.o: In function `tda829x_attach':
: undefined reference to `tda827x_attach'
drivers/built-in.o: In function `tda829x_attach':
: undefined reference to `tda18271_attach'

due to:

CONFIG_DVB_CORE=m but CONFIG_TUNER_TDA8290=y.

Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
drivers/media/Kconfig | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

Index: linux/drivers/media/Kconfig
===================================================================
--- linux.orig/drivers/media/Kconfig
+++ linux/drivers/media/Kconfig
@@ -106,21 +106,21 @@ if VIDEO_TUNER_CUSTOMIZE

config TUNER_XC2028
tristate "XCeive xc2028/xc3028 tuners"
- depends on I2C && FW_LOADER
+ depends on I2C && FW_LOADER && ((DVB_CORE = m && m) || (DVB_CORE = y))
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for the xc2028/xc3028 tuners.

config TUNER_MT20XX
tristate "Microtune 2032 / 2050 tuners"
- depends on I2C
+ depends on I2C && ((DVB_CORE = m && m) || (DVB_CORE = y))
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for the MT2032 / MT2050 tuner.

config TUNER_TDA8290
tristate "TDA 8290/8295 + 8275(a)/18271 tuner combo"
- depends on I2C
+ depends on I2C && ((DVB_CORE = m && m) || (DVB_CORE = y))
select DVB_TDA827X
select DVB_TDA18271
default m if VIDEO_TUNER_CUSTOMIZE
@@ -129,21 +129,21 @@ config TUNER_TDA8290

config TUNER_TEA5761
tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
- depends on I2C && EXPERIMENTAL
+ depends on I2C && EXPERIMENTAL && ((DVB_CORE = m && m) || (DVB_CORE = y))
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for the Philips TEA5761 radio tuner.

config TUNER_TEA5767
tristate "TEA 5767 radio tuner"
- depends on I2C
+ depends on I2C && ((DVB_CORE = m && m) || (DVB_CORE = y))
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for the Philips TEA5767 radio tuner.

config TUNER_SIMPLE
tristate "Simple tuner support"
- depends on I2C
+ depends on I2C && ((DVB_CORE = m && m) || (DVB_CORE = y))
select TUNER_TDA9887
default m if VIDEO_TUNER_CUSTOMIZE
help
@@ -151,7 +151,7 @@ config TUNER_SIMPLE

config TUNER_TDA9887
tristate "TDA 9885/6/7 analog IF demodulator"
- depends on I2C
+ depends on I2C && ((DVB_CORE = m && m) || (DVB_CORE = y))
default m if VIDEO_TUNER_CUSTOMIZE
help
Say Y here to include support for Philips TDA9885/6/7
--
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/