[boost-ci] Added support for building big-endian on Travis CI
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
participants (1)
-
James E. King III