[yocto] native recipe question

Damien LEFEVRE lefevre.da at gmail.com
Tue May 22 03:56:43 PDT 2018


Thanks that did the trick.

I actually needed to add the tool compilation in do_configure_prepend
because the cmake configuration requires the output folder for bin2cpp.

Just out of completeness. I had created that arrayfire-native recipe and it
looked like this:

BBCLASSEXTEND = "native"
SRC_URI = "gitsm://
github.com/arrayfire/arrayfire.git;protocol=https;branch=v3.6"
SRCREV = "ee21c791d5af4fa56bca168804ba1597cf9d6503"

PR="r0"

S = "${WORKDIR}/git"

inherit cmake cuda

do_configure(){
    cd ${B}
    cmake ${S} \
        -DAF_BUILD_CPU=OFF \
        -DAF_BUILD_CUDA=OFF \
        -DAF_BUILD_OPENCL=OFF \
        -DAF_BUILD_EXAMPLES=OFF \
        -DAF_BUILD_TEST=OFF \
        -DAF_WITH_GRAPHICS=OFF \
        -DCMAKE_BUILD_TYPE=Release
}

do_compile(){
    make bin2cpp
}

do_install() {
    install -d ${D}/${bindir}
    install -m 755 ${WORKDIR}/build/bin2cpp ${D}${bindir}
}

# Defining packages
FILES_${PN} = "${bindir}/*"


The recipe builds. When I try using with  DEPENDS += "arrayfire-native" in
the arrayfire recipe I get this warning:
WARNING: arrayfire-3.6.0-r0 do_prepare_recipe_sysroot: Manifest
/home/damien/pyro/build-jetson-tx2/tmp/sstate-control/manifest-x86_64-arrayfire-native.populate_sysroot
not found?

and /home/damien/pyro/build-jetson-tx2/tmp/work/aarch64_tegra186-poky-linux/arrayfire/3.6.0-r0/recipe-sysroot-native
did not contain the bin2cpp binary.

What did I miss?

Thanks


On Tue, May 22, 2018 at 12:19 PM, Burton, Ross <ross.burton at intel.com>
wrote:

> On 22 May 2018 at 08:43, Damien LEFEVRE <lefevre.da at gmail.com> wrote:
> > I'm having to build a package (arrayfire) for Tegra. This package
> requires
> > to first build a x86_64 utility (bin2cpp) which is then used for building
> > the tegra arrayfire.
> >
> > Do I understand correctly that I should create:
> >
> > arrayfire-native.bb: for compiling the x86_64 utility. If so how do I
> > instruct the platform?
> > arrayfire.bb: for compiling the tegra platform. This recipe requires
> > arrayfire-native.bb and I should get a copy in the recipe-sysroot-native
> > folder?
>
> That's one solution, but if it's jus a single tool that you need built
> then you can build that yourself using the host compiler.  The best
> practise here is for the upstream build to respect CC_FOR_BUILD ("use
> this compiler to build binaries that I need to run at build time")
> which we already export.  As presumably arrayfire doesn't do this,
> then you can just build it yourself first.  For example, the Pango
> recipe in oe-core basically does this:
>
> do_compile_prepend_class-target () {
>             make CC="${BUILD_CC}" LDFLAGS="${BUILD_LDFLAGS}" -C
> ${B}/tests gen-all-unicode
> }
>
> Which makes it build tests/gen-all-unicode using BUILD_CC (host
> compiler, not cross compiler) for target builds before it goes and
> builds the rest of the project.
>
> Ross
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20180522/de0929f5/attachment-0001.html>


More information about the yocto mailing list