Skip to content

v0.12.0 — i686 and wasm32 legs: gcc.yml arch x86, and emscripten.yml

Choose a tag to compare

@rhalbersma rhalbersma released this 13 Oct 06:23
· 27 commits to main since this release
1c32e51

Two 32-bit targets, for the code that takes size_t to be 64 bits, alignof(std::int64_t) to be 8, or __int128 to exist. Every leg before this one builds for a 64-bit target, where none of that shows. The two targets fail differently, so each catches what the other cannot (#57, #58).

Target Workflow size_t alignof(std::int64_t) in a class __int128 Tests run under
i686 gcc.yml with arch: x86 unsigned int 4 no the runner, natively
wasm32 emscripten.yml unsigned long 8 yes node

gcc.yml takes arch

arch: x86 does four things:

  • adds -m32;
  • installs the GCC's multilib through install-gcc's new multilib input;
  • builds the dependencies from the new x86-linux-gcc overlay triplet;
  • ignores vcpkg_triplet, since the leg has its own triplet.

The trunk snapshot has no 32-bit runtime, so an i686 ladder names released rungs only. The default, x64, builds exactly as before.

emscripten.yml is new

It takes one Emscripten release, emsdk_version (default 6.0.12), rather than a ladder, and builds Debug by default. Its dependencies come from wasm32-emscripten-eh, vcpkg's community triplet with exceptions compiled in, and node from the emsdk runs the tests. It accepts the same vcpkg_features, cxx_flags, scan_for_modules, debug_flags and cmake_args as the other ladders, plus linker_flags, whose default turns on memory growth, an 8 MB stack and EXIT_RUNTIME. Its gate is <job> / all.

To add both legs

  i686:
    uses: rhalbersma/cpp-ci/.github/workflows/gcc.yml@<sha> # v0.12.0
    with:
      arch: x86
      tiers: stable
      build_types: Debug

  wasm32:
    uses: rhalbersma/cpp-ci/.github/workflows/emscripten.yml@<sha> # v0.12.0

No existing check names change

The ladders resolve as in v0.11.1. gcc.yml's vcpkg cache key now carries the arch, so the first run after the bump rebuilds the dependencies once. The internal actions are repinned to #57's commit. Both legs ran green on xstd-ints (rhalbersma/xstd-ints#284) and xstd-misc (rhalbersma/xstd-misc#39) before this tag.