On Tue, 10 Feb 2009 17:20:52 -0800 (PST)
Trent Piepho <xy...@speakeasy.org> wrote:

> On Tue, 10 Feb 2009, Mauro Carvalho Chehab wrote:
> > > I did some more testing and the bug disappears in kernel 2.6.25. Also, if 
> > > I
> > > just run 'make', then the .config file it produces is fine. I wonder if it
> > > isn't a bug in menuconfig itself.
> >
> > It seems to be a bug at the Kbuild, fixed on Feb, 2008, on this changeset:
> > commit 587c90616a5b44e6ccfac38e64d4fecee51d588c (attached).
> >
> > As explained, after the patch description, the value for the Kconfig var, 
> > after
> > the patch, uses this formula:
> >
> >             (value && dependency) || select
> 
> It's odd that the patch is for "fix select in combination with default",
> yet there is no select used for CX88_DVB.

If you look at the patch code, it fixed the handling for non-visible Kconfig 
vars.

> I think what you've done with CX88_MPEG is something that nothing else in has 
> used before, which made use
> of the behavior introduced by this patch in a new way.
> 
> > And there there's no select, the value of CONFIG_CX88_MPEG is determined by:
> >     ('y' && dependency)
> >
> > The most complex case is when we have CX88 defined as:
> >     CX88 = 'y'
> >
> > if both CX88_DVB and CX88_BLACKBIRD are defined as 'm' (or one of them is 
> > 'n'
> > and the other is 'm'), then CX88_MPEG is defined as:
> >     CX88_MPEG = 'm'
> >
> > If one of CX88_DVB or CX88_BLACKBIRD is defined as 'y'; then we have:
> >     CX88_MPEG = 'y'
> >
> > If both are 'n', we have:
> >     CX88_MPEG = 'n'
> >
> > So, it seems that, after commit 587c90616a5b44e6ccfac38e64d4fecee51d588c,
> > everything is working as expected. We just need to provide a hack at the
> > out-of-tree build system for kernels that don't have this commit applied.
> 
> I still think using select is better.  What Roman Zippel was talking about
> was the mess with select and the tuner drivers.  I agree that's a mess and
> there are better ways to do it without using select.  But the MPEG module
> is like a library used by just DVB and BLACKBIRD.  It seems like the ideal
> case for using select.

I can't foresee any case where this logic would fail in the future. 

Let's suppose that some newer dependencies would be needed. If those
dependencies will be properly added at DVB and/or at BLACKBIRD, this logic will
still work. There's no possible case where CX88_MPEG would need a dependency
that aren't needed by either DVB and/or BLACKBIRD. Also, by using depends on,
instead of select, will warrant that CX88_MPEG will have the proper 'y' or 'm'
value, depending on the dependencies of CX88_DVB and CX88_BLACKBIRD.

It seems that this is exactly what Roman expected to be fixed by changing from
"select" to "depends on" with tuners.

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to