Patchwork [v3] kernel: use oldnoconfig before yes '' | make oldconfig

login
register
mail settings
Submitter Alexandre Belloni
Date Feb. 7, 2014, 4:30 p.m.
Message ID <1391790632-29801-1-git-send-email-alexandre.belloni@free-electrons.com>
Download mbox | patch
Permalink /patch/66491/
State New
Headers show

Comments

Alexandre Belloni - Feb. 7, 2014, 4:30 p.m.
When using a defconfig, using yes '' | make oldconfig may not result in
the correct configuration being set. For example:

 $ ARCH=mips make qi_lb60_defconfig
 #
 # configuration written to .config
 #
 $ grep USB_ETH .config
 CONFIG_USB_ETH=y
 # CONFIG_USB_ETH_RNDIS is not set
 # CONFIG_USB_ETH_EEM is not set

 $ cp arch/mips/configs/qi_lb60_defconfig .config
 $ yes '' | make ARCH=mips oldconfig
[...]
 $ grep USB_ETH .config
 CONFIG_USB_ETH=m
 # CONFIG_USB_ETH_RNDIS is not set
 # CONFIG_USB_ETH_EEM is not set

Using make olddefconfig solves that but we'll use the oldnoconfig alias
for backward compatibility with older kernels.

 $ cp arch/mips/configs/qi_lb60_defconfig .config
 $ make ARCH=mips oldnoconfig
 scripts/kconfig/conf --olddefconfig Kconfig
 #
 # configuration written to .config
 #
 $ grep USB_ETH .config
 CONFIG_USB_ETH=y
 # CONFIG_USB_ETH_RNDIS is not set
 # CONFIG_USB_ETH_EEM is not set

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
 meta/classes/kernel.bbclass | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Bruce Ashfield - Feb. 7, 2014, 4:43 p.m.
On 14-02-07 11:30 AM, Alexandre Belloni wrote:
> When using a defconfig, using yes '' | make oldconfig may not result in
> the correct configuration being set. For example:

Thanks for your patience, v3 looks good to me. Obviously RP will
over rule as he sees fit :)

>
>   $ ARCH=mips make qi_lb60_defconfig
>   #
>   # configuration written to .config
>   #
>   $ grep USB_ETH .config
>   CONFIG_USB_ETH=y
>   # CONFIG_USB_ETH_RNDIS is not set
>   # CONFIG_USB_ETH_EEM is not set
>
>   $ cp arch/mips/configs/qi_lb60_defconfig .config
>   $ yes '' | make ARCH=mips oldconfig
> [...]
>   $ grep USB_ETH .config
>   CONFIG_USB_ETH=m
>   # CONFIG_USB_ETH_RNDIS is not set
>   # CONFIG_USB_ETH_EEM is not set
>
> Using make olddefconfig solves that but we'll use the oldnoconfig alias
> for backward compatibility with older kernels.
>
>   $ cp arch/mips/configs/qi_lb60_defconfig .config
>   $ make ARCH=mips oldnoconfig
>   scripts/kconfig/conf --olddefconfig Kconfig
>   #
>   # configuration written to .config
>   #
>   $ grep USB_ETH .config
>   CONFIG_USB_ETH=y
>   # CONFIG_USB_ETH_RNDIS is not set
>   # CONFIG_USB_ETH_EEM is not set

Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>

>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
>   meta/classes/kernel.bbclass | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 51626b03f824..9f1d669b3cf6 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -301,6 +301,8 @@ python sysroot_stage_all () {
>       oe.path.copyhardlinktree(d.expand("${D}${KERNEL_SRC_PATH}"), d.expand("${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}"))
>   }
>
> +KERNEL_CONFIG_COMMAND ?= "oe_runmake oldnoconfig || yes '' | oe_runmake oldconfig"
> +
>   kernel_do_configure() {
>   	# fixes extra + in /lib/modules/2.6.37+
>   	# $ scripts/setlocalversion . => +
> @@ -313,7 +315,7 @@ kernel_do_configure() {
>   	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
>   		cp "${WORKDIR}/defconfig" "${B}/.config"
>   	fi
> -	yes '' | oe_runmake oldconfig
> +	eval ${KERNEL_CONFIG_COMMAND}
>   }
>
>   do_savedefconfig() {
>
Otavio Salvador - Feb. 7, 2014, 7:09 p.m.
On Fri, Feb 7, 2014 at 2:43 PM, Bruce Ashfield
<bruce.ashfield@windriver.com> wrote:
> On 14-02-07 11:30 AM, Alexandre Belloni wrote:
>>
>> When using a defconfig, using yes '' | make oldconfig may not result in
>> the correct configuration being set. For example:
>
> Thanks for your patience, v3 looks good to me. Obviously RP will
> over rule as he sees fit :)
...
> Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>

Acked-by: Otavio Salvador <otavio@ossystems.com.br>

Patch

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 51626b03f824..9f1d669b3cf6 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -301,6 +301,8 @@  python sysroot_stage_all () {
     oe.path.copyhardlinktree(d.expand("${D}${KERNEL_SRC_PATH}"), d.expand("${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}"))
 }
 
+KERNEL_CONFIG_COMMAND ?= "oe_runmake oldnoconfig || yes '' | oe_runmake oldconfig"
+
 kernel_do_configure() {
 	# fixes extra + in /lib/modules/2.6.37+
 	# $ scripts/setlocalversion . => +
@@ -313,7 +315,7 @@  kernel_do_configure() {
 	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
 		cp "${WORKDIR}/defconfig" "${B}/.config"
 	fi
-	yes '' | oe_runmake oldconfig
+	eval ${KERNEL_CONFIG_COMMAND}
 }
 
 do_savedefconfig() {