Re: on builds/randconfigs

From: Vegard Nossum
Date: Sat Jan 15 2011 - 07:25:08 EST


On 13 January 2011 13:23, Michal Marek <mmarek@xxxxxxx> wrote:
> On 12.1.2011 22:58, Len Brown wrote:
>>>> These unusable config combinations should be prevented via Kconfig.
>>>> That prevents users from selecting them, which otherwise adds to
>>>> our workload and to theirs. ÂIt also prevents false-positives
>>>> during our useful randconfig testing.
>>>
>>> But it is kind of difficult to achieve IMhO. ÂFor example, there are options
>>> that are only SELECTed if something else is set, but randconfig doesn't seem
>>> to care.
>>
>> Kconfig select needs to be fixed so that it is not possible to
>> select something if that something's dependencies are not met.
>
> Right now, it issues a warning in such case. I think changing it to a
> fatal error would be too premature, not long ago there were a couple of
> annoying false positives.
>
> But from the rest of the thread, I conclude that you actually meant "not
> possible to select something if that something's dependencies CANNOT be
> met", i.e. automatically select dependencies if that is possible. That
> was actually one of the goals of Vegard Nossum's GSoC poject last year,
> but I haven't heard of any outcome yet. Vegard, is there something we
> could use, be it code or mistakes we could learn from?

Maybe I am wrong, but doesn't conf_write() actually take care of this
when it does that sym_calc_value() for all the symbols? Or maybe
that's the problem (i.e. that it doesn't).

Current satconfig code can be changed to produce random configs (that
nevertheless respect the user's choices) with a 1-line patch. But
there are some other issues to be worked out, mainly that conf_write()
doesn't respect all the choices that the SAT solver made. There could
be several reasons for that: 1. satconfig doesn't deal with
hex/int/string values and relies on conf_write() to fill in those
(this is a plain old bug), 2. the translation into boolean logic is
subtly wrong, perhaps a corner case or something like that, and/or 3.
conf_write() does something wrong.

I'll be happy to give a tour of the satconfig code if you or anybody
else would like to start hacking on it.


Vegard
--
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/