[yocto] sysroot question

Paul Eggleton paul.eggleton at linux.intel.com
Wed Feb 8 11:36:54 PST 2017


Hi Gary,

On Wednesday, 8 February 2017 12:12:25 PM NZDT Gary Thomas wrote:
> On 2017-02-08 11:42, Gary Thomas wrote:
> > I had a recipe that used to work and now fails after the change
> > to the split sysroots.  I'm building an out-of-tree kernel module
> > and patterned my recipe after the meta-skeleton example. My recipe
> > has this setup:
> > 
> > inherit module-base kernel-module-split
> > 
> > do_compile() {
> > 
> >     unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
> >     oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
> >     
> >            KERNEL_VERSION=${KERNEL_VERSION}    \
> >            CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
> >            AR="${KERNEL_AR}" \
> >            
> >                O=${STAGING_KERNEL_BUILDDIR} \
> >            
> >            install
> > 
> > }
> > 
> > The problem is that ${CC} (arm-amltd-linux-gnueabi-gcc) can no longer be
> > found.  I know it's available, just not sure what needs to change to be
> > able to find it.
> > 
> > $ find tmp/work/teton_p7618-amltd-linux-gnueabi/my-module/ -name "arm*gcc"
> > tmp/work/teton_p7618-amltd-linux-gnueabi/my-module/5.2.2-r2-r0/recipe-sysr
> > oot-native/usr/libexec/arm-amltd-linux-gnueabi/gcc/arm-amltd-linux-gnueabi
> > /5.4.0/arm-amltd-linux-gnueabi-gcc
> > 
> > tmp/work/teton_p7618-amltd-linux-gnueabi/my-module/5.2.2-r2-r0/recipe-sysr
> > oot-native/usr/bin/arm-amltd-linux-gnueabi/arm-amltd-linux-gnueabi-gcc
> 
> It looks like the failure is actually happening in a class method
> (make_scripts) My recipe also contains this
>    addtask make_scripts after do_patch before do_compile
> which doesn't seem to be setting the ${PATH} correctly anymore.
> 
> Any ideas what might be missing?
> 
> Note: just moving the call to do_make_scripts to the top of do_compile
> instead of running it as a separate task fixes the problem.

I think the problem is that the task that prepares the sysroot 
(do_prepare_recipe_sysroot) isn't a dependency of your task. module.bbclass  
uses this:

addtask make_scripts after do_prepare_recipe_sysroot before do_compile

BTW you say you patterned your recipe after the skeleton example, except 
hello-mod at least currently inherits module rather than module-base + kernel-
module-split - is there a compelling reason not to inherit module?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list