Boost logo

Boost :

From: James E. King III (jking_at_[hidden])
Date: 2019-06-24 19:52:15


You can now run a big-endian build job on Travis CI through some
docker magic. I had an endian bug in some relatively new code in
Boost.UUID (in the MD5 hasher) that required a big endian environment
to build in and test with, so I had to solve this impediment.

The Boost Docker Development Environment (BDDE) was taught how to
build and run multiarch images. At this point I'd like to consider
having BDDE move into boostorg alongside boost-ci. It provides an
easy way to hop into or run boost builds inside docker containers.
One of the examples is to run a predef unit test in the arm64 or ppc64
containers and see how predef defines the macros.

Following that, Boost-CI was taught how to use BDDE under Travis CI to
run a build in one of the containers.

When running the red-ppc64 image expect a slowdown in the 10x to 20x
range. If you are concerned about build time on Travis CI (maximum
length 50 minutes), I would recommend running a subset of tests. Even
building b2 (bootstrap) takes more than a minute. Building Boost.UUID
with tests takes about 25 minutes (this includes building some of
Boost.Serialization).

You can also use BDDE directly to build the same way on a
docker-enabled development system. I wasn't able to run gdb in this
environment when the architecture was ppc64, but I could build and run
tests. gdb works on the x86_64 docker container.

Boost-CI: https://github.com/boostorg/boost-ci
BDDE: https://github.com/jeking3/bdde
Example PR that enables it on Travis CI:
https://github.com/boostorg/uuid/pull/109

Enjoy,

- Jim


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk