Patchwork [2/4] kernel: copy defconfig to {B} vs {S}

login
register
mail settings
Submitter Bruce Ashfield
Date July 21, 2011, 5:16 p.m.
Message ID <069e9d973b31c8938d43e7c36f17d3d51ba90c18.1311267679.git.bruce.ashfield@windriver.com>
Download mbox | patch
Permalink /patch/8227/
State New, archived
Headers show

Comments

Bruce Ashfield - July 21, 2011, 5:16 p.m.
For kernel's that use a split source/object build the copy
of defconfig to {S} in the base kernel class is problematic.
The previous solution for this was to override the do_configure
of the base kernel class in a subclass. While this is still
a viable/valid option, it does mean that changes to the base
do_configure will be missed.

The solution to this is to copy a defconfig to {B} which is
typically the same as {S}, so most kernel recipes won't see or
care about this change.

With this change in place, linux-yocto.bbclass can drop its
override of do_configure.

Tested with linux-yocto and oe linux recipes.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 meta/classes/kernel-yocto.bbclass |    6 ------
 meta/classes/kernel.bbclass       |    4 ++--
 2 files changed, 2 insertions(+), 8 deletions(-)
Darren Hart - July 21, 2011, 6:08 p.m.
On 07/21/2011 10:16 AM, Bruce Ashfield wrote:
> For kernel's that use a split source/object build the copy
> of defconfig to {S} in the base kernel class is problematic.
> The previous solution for this was to override the do_configure
> of the base kernel class in a subclass. While this is still
> a viable/valid option, it does mean that changes to the base
> do_configure will be missed.
> 
> The solution to this is to copy a defconfig to {B} which is
> typically the same as {S}, so most kernel recipes won't see or
> care about this change.
> 
> With this change in place, linux-yocto.bbclass can drop its
> override of do_configure.
> 
> Tested with linux-yocto and oe linux recipes.
> 
> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

Acked-by: Darren Hart <dvhart@linux.intel.com>

> ---
>  meta/classes/kernel-yocto.bbclass |    6 ------
>  meta/classes/kernel.bbclass       |    4 ++--
>  2 files changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> index 98272fc..a374df1 100644
> --- a/meta/classes/kernel-yocto.bbclass
> +++ b/meta/classes/kernel-yocto.bbclass
> @@ -118,12 +118,6 @@ python do_kernel_configcheck() {
>      bb.plain( "%s" % result )
>  }
>  
> -# overrides the base kernel_do_configure, since we don't want all the
> -# defconfig processing in there
> -kernel_do_configure() {
> -        yes '' | oe_runmake oldconfig
> -}
> -
>  
>  # Ensure that the branches (BSP and meta) are on the locatios specified by
>  # their SRCREV values. If they are NOT on the right commits, the branches
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 2e36e86..9c492a3 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -181,8 +181,8 @@ sysroot_stage_all_append() {
>  kernel_do_configure() {
>  	# Copy defconfig to .config if .config does not exist. This allows
>  	# recipes to manage the .config themselves in do_configure_prepend().
> -	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${S}/.config" ]; then
> -		cp "${WORKDIR}/defconfig" "${S}/.config"
> +	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
> +		cp "${WORKDIR}/defconfig" "${B}/.config"
>  	fi
>  	yes '' | oe_runmake oldconfig
>

Patch

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 98272fc..a374df1 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -118,12 +118,6 @@  python do_kernel_configcheck() {
     bb.plain( "%s" % result )
 }
 
-# overrides the base kernel_do_configure, since we don't want all the
-# defconfig processing in there
-kernel_do_configure() {
-        yes '' | oe_runmake oldconfig
-}
-
 
 # Ensure that the branches (BSP and meta) are on the locatios specified by
 # their SRCREV values. If they are NOT on the right commits, the branches
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 2e36e86..9c492a3 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -181,8 +181,8 @@  sysroot_stage_all_append() {
 kernel_do_configure() {
 	# Copy defconfig to .config if .config does not exist. This allows
 	# recipes to manage the .config themselves in do_configure_prepend().
-	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${S}/.config" ]; then
-		cp "${WORKDIR}/defconfig" "${S}/.config"
+	if [ -f "${WORKDIR}/defconfig" ] && [ ! -f "${B}/.config" ]; then
+		cp "${WORKDIR}/defconfig" "${B}/.config"
 	fi
 	yes '' | oe_runmake oldconfig