Go to file
Trevor Gamblin 691f8c5fc8 buildall-qemu: automate build testing for qemu MACHINEs
buildall-qemu simplifies the process of build testing an upgraded or
patched recipe by cycling through the build steps for each available qemu
target, with desired LIBC specified by the user as an option (defaulting
to both glibc and musl if no option is provided). While building, a log
file with the name "<recipe>-buildall.log" is written, containing a PASS
or FAIL line upon completion of the build for each architecture. For now,
qemu targets are not selectable (i.e. the recipe is built for all qemu
targets found in meta/conf/machine), but this functionality can be added
in the future along with other useful options.

The log file created by buildall-qemu also includes some basic system
info (e.g. build start time, hostname, host OS, host kernel). Since it is
not guaranteed that tools such as lsb_release will be available on the
host (it isn't by default on my Fedora machine), this information is
collected manually. Additionally, the previous run's log is retained for
comparison by renaming it in the format <recipe>-buildall.log.old once a
new set of builds is triggered for the same recipe.

We've seen multiple variations of this concept in use as one-liners and
as bash functions in dotfiles, so it seemed appropriate to submit it in
script form to oe-core for everyone to use.

Sample log output:

BUILDALL-QEMU LOG FOR aspell
START TIME: 2020-02-11_19:50:02
HOSTNAME: yow-tgamblin-fedora2
HOST OS: Fedora 31 (Server Edition)
HOST KERNEL: 5.4.10-200.fc31.x86_64
===============
BUILD RESULTS:
[glibc]
PASS: qemuarmv5
PASS: qemux86
PASS: qemuppc
PASS: qemumips64
PASS: qemux86-64
PASS: qemumips
PASS: qemuarm
PASS: qemuarm64
PASS: qemuriscv64
[musl]
PASS: qemuarmv5
PASS: qemux86
PASS: qemuppc
PASS: qemumips64
PASS: qemux86-64
FAIL: qemumips
FAIL: qemuarm
FAIL: qemuarm64
FAIL: qemuriscv64
===============
PASSED: 14
FAILED: 4

(From OE-Core rev: ee64b7db6651df4ed419e3d2649b4fb2f2faf830)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-24 14:10:08 +01:00
bitbake bitbake: tinfoil: Add back ability to parse on top of a datastore 2020-04-06 16:45:34 +01:00
contrib/artwork oe.svg: Copy artwork from openembedded-classic. 2019-10-08 11:22:24 +01:00
documentation dev-manual: remove postinst false statement 2020-04-15 22:56:23 +01:00
meta testimage: enable ovmf support 2020-04-24 14:10:08 +01:00
meta-poky poky.conf: Bump version for 3.1 dunfell release 2020-04-06 16:50:31 +01:00
meta-selftest layer.conf: Update to LAYERSERIES_CORENAME to dunfell 2020-03-15 22:23:19 +00:00
meta-skeleton layer.conf: Update to LAYERSERIES_CORENAME to dunfell 2020-03-15 22:23:19 +00:00
meta-yocto-bsp layer.conf: Update to new dunfell release name 2020-03-15 22:24:43 +00:00
scripts buildall-qemu: automate build testing for qemu MACHINEs 2020-04-24 14:10:08 +01:00
.gitignore scripts/install-buildtools: improvements 2020-04-01 11:44:23 +01:00
.templateconf meta-yocto: Rename to meta-poky to better match its purpose 2016-02-28 11:31:17 +00:00
LICENSE meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
LICENSE.GPL-2.0-only meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
LICENSE.MIT meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
MEMORIAM MEMORIAM: Add recognition for contributors no longer with us 2020-01-30 15:22:35 +00:00
oe-init-build-env meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
README.hardware meta-yocto: Restructure and tidy up READMEs 2017-09-14 13:36:22 +01:00
README.OE-Core README: Rename to README.OE-Core so its clear where its from/belongs/is about 2019-03-06 23:09:10 +00:00
README.poky meta-yocto: Restructure and tidy up READMEs 2017-09-14 13:36:22 +01:00
README.qemu README.qemu: qemuppc64 is not supported 2017-10-16 23:54:31 +01:00

QEMU Emulation Targets
======================

To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported in 32 and 64 bit variants:

  * ARM (qemuarm + qemuarm64)
  * x86 (qemux86 + qemux86-64)
  * PowerPC (qemuppc only)
  * MIPS (qemumips + qemumips64)

Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.