[yocto] Getting build dependencies correct

Gary Thomas gary at mlbassoc.com
Sun Feb 12 22:28:14 PST 2017


On 2017-02-13 07:02, Gary Thomas wrote:
> I'm trying to work with a new tool that creates executables
> for my target.  This tool has a shared library and some include
> files.  What I need to figure out is how to run the tool in my
> build environment such that it uses those files to create an
> executable for my target board.
>
> The tool is created by some recipe xxx.  I have enabled both
> the target version and the xxx-native version (using BBCLASSEXTEND)
> and end up with these files in the tmp/sysroots
>
> gthomas at europa:p8701_2016-10-22$ find tmp/sysroots-components/armv7ahf-neon/am335x-pru-support
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/sysroot-providers
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/sysroot-providers/am335x-pru-support
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr/lib
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr/lib/libprussdrv.so.0
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr/lib/libprussdrv.so.0.0
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr/include
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr/include/pruss
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr/include/pruss/pruss_intc_mapping.h
> tmp/sysroots-components/armv7ahf-neon/am335x-pru-support/usr/include/pruss/prussdrv.h
> gthomas at europa:p8701_2016-10-22$ find tmp/sysroots-components/x86_64/am335x-pru-support-native/
> tmp/sysroots-components/x86_64/am335x-pru-support-native/
> tmp/sysroots-components/x86_64/am335x-pru-support-native/sysroot-providers
> tmp/sysroots-components/x86_64/am335x-pru-support-native/sysroot-providers/am335x-pru-support-native
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/lib
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/lib/libprussdrv.so.0
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/lib/libprussdrv.so.0.0
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/include
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/include/pruss
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/include/pruss/pruss_intc_mapping.h
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/include/pruss/prussdrv.h
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/bin
> tmp/sysroots-components/x86_64/am335x-pru-support-native/usr/bin/pasm
>
> The question becomes how to make use of this in a separate recipe
> that wants to use both the 'pasm' tool, as well as the include files
> and library from the 'pruss' support.
>
> I tried to use
>   DEPENDS="am335x-pru-support"
> as well as
>   DEPENDS="am335x-pru-support-native"
> in my recipe, but the correct sysroot is never found (e.g. <pruss/prussdrv.h>
> is not in my search path).
>
> Any help on how to proceed would be greatly appreciated.  I'm happy to share the
> actual recipes if needed (I just left them out to avoid too much noise...)

Following up on this, I'm rather confused.  I installed this package to my target,
but some files seem to be missing:

# opkg files am335x-pru-support-dev
Package am335x-pru-support-dev (2016-08-30-r0.1) is installed on root and has the following files:

When I look in my build, I see something quite different:

tmp/work/armv7ahf-neon-amltd-linux-gnueabi/am335x-pru-support/2016-08-30-r0/packages-split/am335x-pru-support-dev
tmp/work/armv7ahf-neon-amltd-linux-gnueabi/am335x-pru-support/2016-08-30-r0/packages-split/am335x-pru-support-dev/usr
tmp/work/armv7ahf-neon-amltd-linux-gnueabi/am335x-pru-support/2016-08-30-r0/packages-split/am335x-pru-support-dev/usr/include
tmp/work/armv7ahf-neon-amltd-linux-gnueabi/am335x-pru-support/2016-08-30-r0/packages-split/am335x-pru-support-dev/usr/include/pruss
tmp/work/armv7ahf-neon-amltd-linux-gnueabi/am335x-pru-support/2016-08-30-r0/packages-split/am335x-pru-support-dev/usr/include/pruss/pruss_intc_mapping.h
tmp/work/armv7ahf-neon-amltd-linux-gnueabi/am335x-pru-support/2016-08-30-r0/packages-split/am335x-pru-support-dev/usr/include/pruss/prussdrv.h
tmp/work/armv7ahf-neon-amltd-linux-gnueabi/am335x-pru-support/2016-08-30-r0/packages-split/am335x-pru-support-locale

So why aren't these include files actually in the final package?
(Probably related to why I can't find them in my desktop build)

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



More information about the yocto mailing list