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

Richard Purdie
2017-08-23T14:58:08Z

On Wed, 2017-08-23 at 10:42 -0400, Bruce Ashfield wrote:
> On 08/23/2017 10:40 AM, Khem Raj wrote:
> >
> > On Wed, Aug 23, 2017 at 5:37 AM, Bruce Ashfield
> > <bruce.ashfield@windriver.com> wrote:
> > >
> > > On 08/22/2017 11:40 PM, Khem Raj wrote:
> > > >
> > > >
> > > > On Sun, Aug 20, 2017 at 7:58 PM, Bruce Ashfield
> > > > <bruce.ashfield@windriver.com> wrote:
> > > > >
> > > > >
> > > > > 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@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
> > > > > +               bbfatal_log "Could not locate BSP definiton
> > > > > for
> > > > > ${KMACHINE}/${LINUX_KERNEL_TYPE}."
> > > > > +       fi
> > > >
> > > > this breaks non linux-yocto kernels which are using the kernel
> > > > infra
> > > > from OE-Core
> > > > since they may not have kmeta structure and bsp_definition may
> > > > be empty
> > > > for them
> > > > so either provide a way to override bsp_definition to something
> > > > dummy or
> > > > infact
> > > > fall back to dummy by default with a warning or note during
> > > > parse
> > > > time. fatal is a bit harsh here.
> > >
> > > Fair enough. I can make it a warning versus fatal, or only make
> > > it
> > > fatal if I detect a defconfig.
> > >
> > > The issue is that the tools haven't found a configuration entry
> > > point
> > > and could end up building a garbage/invalid configuration. A
> > > defconfig
> > > could stand in as a 'valid entry' point, since it signifies a
> > > baseline
> > > configuration.
> > >
> > > Also, I do have completed code to move fragment merging into a
> > > common
> > > location and avoid things like this .. once it goes through some
> > > more
> > > compatibility testing, I'll post it to the list.
> >
> > Irrespective this was merged today into master, can you send a
> > followup
> > quickly so we can unbreak meta-raspberrypi
> I hadn't pulled today, and yes, I'll send something by end of day,
> since
> I don't want this to stay broken!

Thanks, I merged this as the discussion was happening not realising
there was this issue.

I did at least hopefully get all the other 4.12 issues addressed,
thanks for the help there.

Cheers,

Richard