StackedUser
StackedUser

Reputation: 337

build system derived toolchain in Yocto

I have a problem starting from the rocko upgrade and related to the Recipe-specific Sysroots introduced in Yocto 2.3

Our project uses cmake. So our recipe has:

DEPENDS = "cmake-native [...]"

So cmake ends up in build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/component/1.0-r0/recipe-sysroot-native/usr/bin/cmake So when building inside yocto everything is ok.

When we build outside yocto, we use the cross-toolchain generated and populated within the Build Directory:

$ bitbake meta-ide-toolchain

and then source the environment:

$ source build/tmp/environment-setup-cortexa5hf-neon-poky-linux-gnueabi

On rocko OECORE_NATIVE_SYSROOT is set to [...]/build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/meta-ide-support/1.0-r3/recipe-sysroot-native - which doesn't have cmake:

  $ which cmake
  $

So no cmake was found...

And on Krogoth it was build/tmp/sysroots/x86_64-linux - cmake is there:

$ which cmake
  <full path>/build/tmp/sysroots/x86_64-linux/usr/bin/cmake

How to correctly setup a toolchain derived from the build directory in order to build outside Yocto ?

Upvotes: 1

Views: 3300

Answers (1)

StackedUser
StackedUser

Reputation: 337

I ended up not to use meta-ide-support, but instead I've added the support of generating the toolchain to my own recipe (my component): that is my final intention, to be able to also build my component outside Yocto.

So when I do a bitbake my-component beside building the component, the toolchain necessary to build the component outside Yocto is also generated.

In my recipe I've added some of the code from the meta-ide-support:

inherit toolchain-scripts

do_populate_ide_support () {
  toolchain_create_tree_env_script
}
addtask populate_ide_support before do_build after do_install

And now when I build my recipe I also get a environment-setup script in the build/tmp/ directory - same location as the meta-ide-toolchain used before.

Now everything is setup correctly:

OECORE_NATIVE_SYSROOT is set to [...]/build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/component/1.0/recipe-sysroot-native

Upvotes: 0

Related Questions