[yocto] How to build an SDK toolchain for native x86_64

Josias Inacio da Silva Filho josiasinacio at hotmail.com
Thu Sep 15 22:04:18 PDT 2016


Hi folks,

Here’s my current setup and current situation:

Host: x86_64
Target: aarch64

Build core-image-base for aarch64 - OK
populate_sdk for aarch64 - OK

My application and it unit tests also gets compiled to aarch64.

What I wanted now would be something like run populate_sdk for “core-image-base-native”. The reason for that is because I want to compile and run my unit tests using my host machine only (x86_64). This makes application development much easier, since I don’t need the target nor QEMU to run the unit tests. And I still want the toolchain to be generated by Yocto since it solves all package dependencies for me.

What I attempted:

1) Create a new “core-image-toolchain-native” similar to core-image-base, but tweaking to be able to build for native. That does not seem to be the right way, I spent a lot of time doing this and got nowhere since many of the image's recipes do not support building with native support.

2) Change my machine type to be qemux86_64, then call “bitbake core-image-base -c populate_sdk”. That would generate a toolchain for x86-64 right? Well it did, and I was able to use this toolchain to compile my unit tests for x86_64. But the problem is that this still assumes that I’ll be running those unit tests on the target machine ( QEMU x86_64), so if I try to run it in my host machine, it complains about some missing dynamic libraries that are only found in the sysroot of the target qemux86_64.

Is there any proper solution for this case?


More information about the yocto mailing list