Re: [patch] dvb: build failure fix

From: Mauro Carvalho Chehab
Date: Mon Apr 28 2008 - 17:26:45 EST


On Tue, 29 Apr 2008 00:01:22 +0300
Adrian Bunk <bunk@xxxxxxxxxx> wrote:

> On Mon, Apr 28, 2008 at 09:53:30PM +0200, Ingo Molnar wrote:
> >
> > * 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,
>
> That's bad since it makes it harder for other people to reproduce the
> problem.
>
> > 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.)
>
> TUNER_TDA8290 is the only affected driver, your patch also adds wrong
> dependences to other driver.
>
> And the underlying problem is that it has both an analog an a DVB tuner,
> and although forcing a dependency on DVB_CORE might make the randconfig
> crowd happy it's not the correct solution.
>
> Mauro, where were we regarding this issue?
>
> What about:
>
> config TUNER_TDA8290
> tristate "TDA 8290/8295 + 8275(a)/18271 tuner combo"
> depends on I2C
> depends on DVB_CORE || DVB_CORE=n
> select DVB_TDA827X if DVB_CORE
> select DVB_TDA18271 if DVB_CORE
> default m if VIDEO_TUNER_CUSTOMIZE
> help
> Say Y here to include support for Philips TDA8290+8275(a) tuner.
>
> Or is there some twist I'm missing?


This will fix compilation, but some drivers will be broken, since tda8275 is
needed even for some analog-only drivers.

It would be better to do a "select DVB_CORE", although this is also ugly.

I'm pinging Mkrufky. He is the one that touched a lot on those drivers. Maybe
he can come up with a better solution.

Cheers,
Mauro
--
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/