Subject: Re: linux-next: build failure after merge of the ext4 tree

From: Michal Marek <[email-masked]>
Date: Fri, 16 Aug 2013 15:10:38 +0200

On 11.8.2013 23:39, Yann E. MORIN wrote:
> On 2013-08-09 13:42 +0200, Sam Ravnborg spake thusly:
>> If we drop the special handling of "MODULES" and introduced
>> the following in we may fix it - hopefully:
>>
>> config MODULES
>> 	option modules
>>
>> The option handling is already in place. It is even documented :-)
> 
> Yes, indeed, that one is pretty easy! :-)
> 
>> At least we could then drop the sym_lookup here (zconf.y):
>>         if (!modules_sym->prop) {
>>                 struct property *prop;
>>
>>                 prop = prop_alloc(P_DEFAULT, modules_sym);
>>                 prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
>>         }
>> Without the sym_lookup I think the symbol will not be defined and tus not marked valid.
> 
> Sorry, I don't understand what we should do here.
> 
> From what I understand, here's what happens:
>   - there's no symbol that declared the 'modules' option, so the
>     modules_sym->prop is NULL;
>   - so we look for the symbol 'MODULES' and use that as the symbol used
>     to evaluate if tristates are enabled.
> 
> So, now we have 'option modules' added to MODULES, we never enter this
> if() condition.
> 
> But what would happen to other projects that do not have a symbol set
> with 'option modules' and no 'MODULES' symbol? Surely, those projects do
> not need tristates, but what should the code do in this case?
> 
> So, I don't know what to replace this 'sym_lookup("MODULES", 0)' with.

If the Kconfig files do not provide any symbol with 'option modules',
then set modules_sym to a dummy bool with the value 'n'?

Thanks,
Michal