Cross compiling (building software for one machine type on another) is something that should be familiar to most ARM developers. While kernel cross-compilation is well supported the story for user space is more complex. There are dedicated build systems for creating an entire rootfs from scratch but the overhead of learning them is quite for a single program. The usual fall-back of a linux-user chroot can be quite fiddly to set up and is often unique to each developer's set-up. Virtualisation developer Alex Bennée offers some solutions that utilise Docker's container based approach, optionally with QEMU's linux-user emulation to do builds directly from the command line. In contrast to custom chroots Docker allows the creation of well specified, re-buildable containers that can be simply deployed by new developers. He will talk about the ongoing work to make building test binaries for foreign architectures in QEMU as simple as a make invocation.

Read more