Skip to content

ci: build vendored C++ across GCC 13/14/15 and clang#6

Open
dannywillems wants to merge 1 commit into
mainfrom
ci/cxx-toolchain-build
Open

ci: build vendored C++ across GCC 13/14/15 and clang#6
dannywillems wants to merge 1 commit into
mainfrom
ci/cxx-toolchain-build

Conversation

@dannywillems
Copy link
Copy Markdown

Motivation

Zebra's vendored C++ crates (zebra-script, librocksdb-sys) can break on
specific C++ toolchains. GCC 15+ in particular fails to compile the vendored
headers that rely on transitive <cstdint> inclusion. There is currently no CI
coverage that confirms the workspace builds across the C++ compilers users are
likely to have.

Solution

Add a CI workflow that builds the vendored C++ crates against a matrix of
toolchains in pinned containers:

  • gcc:13, gcc:14, gcc:15
  • clang (silkeh/clang:latest)

Each matrix entry sets CC/CXX so the cc crate uses the right compiler,
installs the build deps, and runs cargo build -p zebra-script (which also
compiles librocksdb-sys from source). fail-fast: false keeps every toolchain
reporting independently.

Test evidence

Workflow runs on this PR; green across all four matrix legs confirms the
vendored C++ builds on each toolchain.

AI disclosure

Used Claude Code to author the workflow file.

Comment thread .github/workflows/cxx-toolchain.yml Fixed
@dannywillems dannywillems force-pushed the ci/cxx-toolchain-build branch 2 times, most recently from 7251024 to 30e8c81 Compare June 4, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants