[OE-core] [PATCH 8/9] kernel-yocto: ensure that only valid BSPs are built

Peter Kjellerstedt peter.kjellerstedt at axis.com
Mon Aug 21 15:00:10 UTC 2017


> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Bruce Ashfield
> Sent: den 21 augusti 2017 04:58
> To: richard.purdie at linuxfoundation.org
> Cc: openembedded-core at lists.openembedded.org
> Subject: [OE-core] [PATCH 8/9] kernel-yocto: ensure that only valid
> BSPs are built
> 
> There was a bug in the search routines responsible for locating
> BSP definitions which returned a valid match if only the ktype
> matched.
> 
> This meant that someone looking for "qemux86foo" (which is an
> invalid definition) would potentially end up building "qemuarm"
> and be none the wiser (until it didn't boot).
> 
> With this fix to the tools search routine, and improved return
> code testing, we will now stop the build and report and error to
> the user.
> 
> [YOCTO: #11878]
> 
> Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
> ---
>  meta/classes/kernel-yocto.bbclass                       | 3 +++
>  meta/recipes-kernel/kern-tools/kern-tools-native_git.bb | 2 +-
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> index 1ca0756c4959..3c6df92131bc 100644
> --- a/meta/classes/kernel-yocto.bbclass
> +++ b/meta/classes/kernel-yocto.bbclass
> @@ -143,6 +143,9 @@ do_kernel_metadata() {
> 
>  	# expand kernel features into their full path equivalents
>  	bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE})
> +	if [ $? -ne 0 ] || [ -z "${bsp_definition}" ]; then

Use $bsp_definition instead of ${bsp_definition} since it is a 
shell variable and not a bitbake variable. 

Actually, after looking at the code in that bbclass, I see this 
used for a number of shell variables all over the place. This is 
actually bad, and you should rewrite the code to not use ${variable} 
for shell variables. The reason this is bad is because these 
variables unnecessarily end up in the sstate hash for these functions, 
and if someone actually happens to define a bitbake variable with the 
same name as one of those shell variables, the result will not be what 
is expected...

> +		bbfatal_log "Could not locate BSP definiton for ${KMACHINE}/${LINUX_KERNEL_TYPE}."

Change "definiton" to "definition".

> +	fi
>  	meta_dir=$(kgit --meta)
> 
>  	# run1: pull all the configuration fragments, no matter where they come from
> diff --git a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
> index 2217a31076a2..4a78b897d34f 100644
> --- a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
> +++ b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
> @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=a6c2fa8aef1b
> 
>  DEPENDS = "git-native"
> 
> -SRCREV = "9cd2b626d652bec10c6bc75275b35bfee74d447c"
> +SRCREV = "0571411cc033c11df7827508dd786876ce2f8c83"
>  PR = "r12"
>  PV = "0.2+git${SRCPV}"
> 
> --
> 2.5.0

//Peter




More information about the Openembedded-core mailing list