CI: fix Alpine static builds and ship a real 32-bit wibo-i686#129
Merged
simonlindholm merged 2 commits intoJun 19, 2026
Merged
Conversation
alpine:latest advanced to 3.24.1 (clang 22 / gcc 15.2 / cmake 4.2) and no longer pulls in gcc transitively. The static toolchain links with `clang --target=...-musl -static -fuse-ld=lld`, which needs the GCC runtime (crtbeginT.o, libgcc, libgcc_eh, crtend.o) plus musl crt/libc. Without them the compiler check fails with "cannot open crtbeginT.o", breaking all four static (Alpine) CI jobs. Install gcc and musl-dev explicitly so the static link works again. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The "Export binary" step omitted `platforms:`, so it always rebuilt for the host (linux/amd64) regardless of the matrix entry. As a result the static 32-bit artifacts (wibo-i686, wibo-i686-debug) were actually 64-bit x86-64 builds, despite the README advertising wibo-i686 as the primary 32-bit download. Pass the matrix platform to the export build so the exported binary matches the platform that was tested. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two independent fixes to the release/CI pipeline. Both are reproducible on a fresh checkout of
main.1. Alpine static builds are broken (all four static jobs fail)
alpine:latestadvanced to 3.24.x (clang 22 / gcc 15.2 / cmake 4.2) and no longer pulls ingcctransitively. The static toolchain links withclang --target=...-musl -static -fuse-ld=lld, which needs the GCC runtime (crtbeginT.o,libgcc,libgcc_eh,crtend.o) plus the musl crt/libc. Without them the CMake compiler check fails:Fix: install
gccandmusl-devexplicitly inDockerfile.2.
wibo-i686is actually a 64-bit binaryThe
Export binarystep omitsplatforms:, so it always rebuilds for the host (linux/amd64) regardless of the matrix entry. The matrix platform only applies to the test step, not the exported artifact. As a result the static 32-bit release assets (wibo-i686,wibo-i686-debug) have been 64-bitx86-64ELF binaries — even though the README advertiseswibo-i686as the primary 32-bit download.This has been the case for every release since the i686/x86_64 split was introduced at
1.0.0-beta.3:wibo-i686archwiboasset)Fix: pass the matrix platform to the export build so the exported binary matches the platform that was tested.
Validation
Local Docker builds mirroring CI:
linux/amd64,--target build+ctest: builds and passes.linux/386,--target export: produces a flatdist/wibothat is nowELF 32-bit LSB executable, Intel 80386.The two changes are independent and can be split into separate PRs if preferred.