Skip to content

Conversation

@rockbmb
Copy link
Collaborator

@rockbmb rockbmb commented Jan 16, 2026

Fixes the broken build-release-binaries.yaml workflow that was failing due to C++ standard library conflicts when building for x86_64-unknown-linux-musl.

Changes

  • Switched Linux target from x86_64-unknown-linux-musl to x86_64-unknown-linux-gnu
  • Removed .cargo/config.toml (no longer needed without musl)
  • Simplified Linux build dependencies (removed musl-specific packages)
  • Added Multi-Block Migration (MBM) documentation to source code to satisfy doc job in CI (left broken in Run cargo update #127)
  • Updated README with MBM notes and fixed broken links (also because of doc CI job)

Why?

The musl build was failing because RocksDB (a C++ dependency) couldn't link correctly with both libstdc++ and libc++ simultaneously. The glibc target builds cleanly and produces binaries compatible with all major Linux distributions.

Trade-offs

  • Lost: Static linking (musl benefit)
  • Gained: Working builds, compatibility with 99% of Linux users

@rockbmb rockbmb self-assigned this Jan 16, 2026
@rockbmb rockbmb added dependencies Pull requests that update a dependency file crates.io Version management on crates.io. labels Jan 16, 2026
@rockbmb rockbmb changed the title Correct binary build/release workflow Fix build-release-binaries workflow by switching from musl to glibc target Jan 17, 2026
@rockbmb rockbmb merged commit 50e527e into main Jan 17, 2026
7 checks passed
@rockbmb rockbmb deleted the cargo_publish_fix branch January 17, 2026 02:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

crates.io Version management on crates.io. dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants