pcb-rnd knowledge pool


Autobuild: how to install your host system

autobuild_hreq by Tibor 'Igor2' Palinkas on 2020-11-30

Tags: howto, autobuild, host, setup, install, installation

node source



Abstract: Setting up an autobuild host: what software to run on what hardware and what to install on it.

  The easiest way to join the autobuild project is to use a preinstalled OS image we provide. Such preinstalled image contains all software required - once started in qemu, it automatically does what it should be doing.

In some cases, especially with proprietary host systems and/or exotic hardware natively running those systems (no qemu emulation), you may need to install the system. This pool node describes software requirements for different autobuild host types

Common requirements and system selection guide

At the end, the most important thing is to have an interesting architecture+OS+CC+libc combination to test on.

By far the most important is the libc : we have a lot of systems running GNU libc so yet another one, even if it's eating CPU cycles on some strange hardware, is much less interesting than an unusual libc. Best is proprietary libc shipped with UNIX systems. If your host system comes with a libc that is ansi/c89 compliant, please do not install GNU libc or BSD libc!

The second most interesting aspect is the C compiler : we have a lot of testing done by normal users with gcc and our code is typically c89 or at most c99, so we do not require anything new than 20 years old standards. If your host system comes with a C compiler that is ansi/c89 compliant, please do not install gcc!

The third interesting thing is the OS, the software environment. Most notably the basic shell tools: the shell itself, awk, grep, sed, and make. The same rule applies here: we have a lot of testing on common, GNU variants of these. If your host system comes with a POSIX shell, any kind of make, any implementation of awk/grep/sed, please do not install GNU or BSD or busybox variants!

Finally, in some real rare cases a bug is triggered only on an unusual architecture. The most common causes are handling the floating point environment differently (exceptions, roundings), differences in how vararg is implemented and differences in basic type sizes.

Conclusion: the most valuable test system is the one that (in order of importance from top to bottom):

Software requirements: common

Software requirements for a CEC host

Software requirements for a ST host

Software requirements for a MS host