[yocto] sysroot question

Gary Thomas gary at mlbassoc.com
Wed Feb 8 20:23:55 PST 2017


On 2017-02-08 20:36, Paul Eggleton wrote:
> 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?

I may have been mistaken about the original source - it looks like I
used a similar module strategy from meta-freescale.  I did [just now]
try using "inherit module" and the build dies a horrible death with
this error
| make: *** No rule to make target 'modules_install'.  Stop.

I changed my [task] dependencies to match what you've quoted and everything
works as before.  !Thanks!

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the yocto mailing list