[OE-core] Building older releases on modern distros (and vice versa)

Richard Purdie richard.purdie at linuxfoundation.org
Fri Jan 17 17:59:16 UTC 2020

We've been discussing how we could: 

a) build old releases on newer distros

as well as 

b) how we could build new releases on old distros.

Our proposed answer has been "buildtools-extended-tarball" which
includes nativesdk-gcc.

We need b) so we can install this on Centos7 and stop having to work
around its really old compiler. In general this should improve our
ability to support stable branches in general.

I wanted to stress test a) a bit, partly to prove that b) could work
longer term.

I did this by attempting to build buildtools-extended-tarball on pyro
which has a gcc v6 and then using that to build morty on an Ubuntu
18.04 system.

It wasn't plain sailing, I had to:

* Upgrade the uninative in pyro
* Switch to xz uninative to allow latest uninative to work
* Patch binutils to fix an ld.so.conf relocation issue
* Add an ld.so.conf to buildtools
* Add the buildtools-extended-tarall recipe

Patches are in:


(some need forward porting to master)

Having got the output from the pyro build, in the morty build I added
buildtools tarball to PATH before running the build. I had to disable
uninative since it was going to get in the way and conflict:

$ x86_64-buildtools-extended-nativesdk-standalone-2.3.4.sh 

Extended Build tools installer version 2.3.4
Enter target directory for SDK (default: /opt/poky/2.3.4): ./buildtools
You are about to install the SDK to "/media/build1/poky-morty/buildtools". Proceed[Y/n]? 
Extracting SDK...............done
Setting it up...done
SDK has been successfully set up and is ready to be used.
Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
 $ . /media/build1/poky-morty/buildtools/environment-setup-x86_64-pokysdk-linux

$ .  /media/build1/poky-morty/buildtools/environment-setup-x86_64-pokysdk-linux
$ source oe-init-build-env
$ mkdir classes
$ touch classes/uninative.bbclas
$ bitbake bash

More information about the Openembedded-core mailing list