[OE-core] [PATCH] kernel: use oldnoconfig instead of yes '' | make oldconfig

Bruce Ashfield bruce.ashfield at windriver.com
Tue Jan 7 20:39:01 UTC 2014


On 14-01-07 03:27 PM, Alexandre Belloni wrote:
> On 07/01/2014 16:32, Bruce Ashfield wrote:
>> On 14-01-07 09:18 AM, Alexandre Belloni wrote:
>>> When using a defconfig, using yes '' | make oldconfig may not result in
>>> the correct configuration being set. For example:
>>>
>>>    $ grep USB_ETH .config
>>>    CONFIG_USB_ETH=y
>>>    CONFIG_USB_ETH_RNDIS=y
>>>    CONFIG_USB_ETH_EEM=y
>>>    $ make savedefconfig
>>>    scripts/kconfig/conf --savedefconfig=defconfig Kconfig
>>>    $ cp defconfig .config
>>>    ‘defconfig’ -> ‘.config’
>>>    $ yes '' | make oldconfig
>>>    [...]
>>>    #
>>>    # configuration written to .config
>>>    #
>>>    $ grep USB_ETH .config
>>>    CONFIG_USB_ETH=m
>>>    CONFIG_USB_ETH_RNDIS=y
>>>    CONFIG_USB_ETH_EEM=y
>>>
>>> Using make olddefconfig solves that but we'll use oldnoconfig for
>>> backward compatibility with older kernels.
>>>
>>>    $ cp defconfig .config
>>>    ‘defconfig’ -> ‘.config’
>>>    $ make oldnoconfig
>>>    scripts/kconfig/conf --olddefconfig Kconfig
>>>    #
>>>    # configuration written to .config
>>>    #
>>>    $ grep USB_ETH .config
>>>    CONFIG_USB_ETH=y
>>>    CONFIG_USB_ETH_RNDIS=y
>>>    CONFIG_USB_ETH_EEM=y
>>>
>>> For more information, please refer to:
>>> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=fbe98bb9ed3dae23e320c6b113e35f129538d14a
>>>
>>
>> It was my understanding that this commit changed the Kconfig behaviour
>> to set the selected options to =y and prevent the menu choice from
>> "hiding" the options in a depedent choice menu. But maybe I'm remembering
>> wrong.
>>
>> The point being, that with that commit in place. Doesn't the behaviour
>> match what we want with yes and oldconfig ?
>>
>
> Nope, that commit is fixing the issue when using make <target>_defconfig
> or make olddefconfig. Note that using make menuconfig already had the
> correct behavior before that commit.

right. I'm pretty familiar with that code, so I knew this worked.

>
> As shown in my commit log, using yes '' | make oldconfig is still
> getting it wrong.

But that was also my point. Since the target suggested in this
patch hasn't always existed (and hence has a kernel version binding),
why not use olddefconfig with this patch, and leave the functionality
closer to its existing behaviour ? We'd still have a kernel capability
binding, but we'd not have the =y converted to =m, and the default of
'y' for new functionality would be maintained.

>
>> .. I'll run some tests to confirm for myself, but I thought I'd throw
>> the question out as well. I don't typically use defconfigs, so I need
>> to do a bit of leg work.
>>
>
> Yeah, using a full .config doesn't trigger that behavior.

I don't use those either :) but the end result is the same.

Cheers,

Bruce

>
>> I don't have any big issues with the patch, but I just want to be sure,
>> since changing this default could change the configs of many defconfig
>> users, and they may have been unknowingly relying on the old behaviour.
>>
>
> I can understand that. But I don't see any other way to make the really
> expected behavior to work without risking breaking anything.
>




More information about the Openembedded-core mailing list