Re: kbuild: default n removals?

From: Michal Marek
Date: Wed Jun 15 2016 - 06:02:48 EST


On 2016-06-08 17:38, Joe Perches wrote:
> (Adding Michal Marek and linux-kbuild)
>
> On Wed, 2016-06-08 at 18:11 +0300, Vladimir Zapolskiy wrote:
>> On 08.06.2016 16:53, Guenter Roeck wrote:
>>> On 06/08/2016 06:37 AM, Vladimir Zapolskiy wrote:
>>>>>> +comment "Watchdog Pretimeout Governors"
>>>>>> +
>>>>>> +config WATCHDOG_PRETIMEOUT_GOV
>>>>>> + bool "Enable watchdog pretimeout governors"
>>>>>> + default n
>>>>> I don't think 'default n" is needed.
>>>>>
>>>> No strict objections, but probably 'default n' may save quite many
>>>> lines in defconfigs.
>>>>
>>> I always wondered why it would be necessary to say "default n".
>>> What is the difference between "default n" and no explicit default ?
>>>
>> I pointed out that it may have impact on defconfig, but experimentally
>> it has no effect.
>>
>> Users of "make oldconfig" get a prompt in both cases as well.
>>
>> Also I haven't found any difference for silentoldconfig, olddefconfig
>> and alldefconfig, I assume explicit "default n" and "def_bool n"
>> can be safely dropped.

Yes, 'default n' is a noop.


> It's not completely clear removals are always appropriate.
>
> from: Documentation/kbuild/kconfig-language.txt:
> ------------------------------------------------------------------
> - default value: "default" <expr> ["if" <expr>]
> A config option can have any number of default values. If multiple
> default values are visible, only the first defined one is active.
> Default values are not limited to the menu entry where they are
> defined. This means the default can be defined somewhere else or be
> overridden by an earlier definition.
> The default value is only assigned to the config symbol if no other
> value was set by the user (via the input prompt above). If an input
> prompt is visible the default value is presented to the user and can
> be overridden by him.
> Optionally, dependencies only for this default value can be added with
> "if".
> ------------------------------------------------------------------
>
> Michal? Do you have an opinion or clarification?

As Guenter explained, there can be multiple default statements with
different if conditions. The first statement to match applies.

Michal