Skip to content

v0.15.0 — a big-endian leg: s390x under QEMU

Latest

Choose a tag to compare

@rhalbersma rhalbersma released this 21 Oct 08:02
· 13 commits to main since this release
d2d6607

Every target the ladders build is little-endian, so a byte copy that assumes the low byte comes first, or a test that counts on it, passes everywhere and fails only on a big-endian machine. This release adds one leg that runs on one.

  • A big-endian leg, s390x.yml (#79): builds a caller with the s390x cross GCC from the ubuntu-26.04 runner image's own archive (GCC 15 by default, the stable rung), and runs its tests under qemu-s390x. One release rather than a ladder, as emscripten.yml: what is under test is the byte order. Emulation is several times slower than native, so a caller dispatches it from its nightly canary, not from pull requests. Inputs: gcc_version, build_types (Debug by default), vcpkg_features, cxx_flags, scan_for_modules, debug_flags, cmake_args and build_memory_mib.
  • An s390x triplet and toolchain (#78): vcpkg-overlay gains s390x-linux-gcc, which builds a caller's dependencies with the same cross GCC and emulator, and the workflow chainloads the same toolchain for the caller's own configure. vcpkg's community s390x-linux triplet alone would build with the host compiler.
  • s390x rather than powerpc64 because it is a current platform: IBM sells it, and Ubuntu, RHEL and SLES all ship for it.

No existing workflow's inputs changed, and none became required. A caller repins by moving its uses: lines to this commit:

uses: rhalbersma/cpp-ci/.github/workflows/<workflow>.yml@d2d660725227972f5ac9bdd65efda9d485fb30b7 # v0.15.0

and adds the leg with a workflow_dispatch-only stub that its canary dispatches:

uses: rhalbersma/cpp-ci/.github/workflows/s390x.yml@d2d660725227972f5ac9bdd65efda9d485fb30b7 # v0.15.0

Full changes: #78 and #79. Refs #63.