Skip to content

[build, ci]: test musl builds of aws-lc-sys and aws-lc-fips-sys. fix errors. release v54. - #100

Draft
toidiu wants to merge 3 commits into
mainfrom
ak-dev-musl-ci
Draft

toidiu wants to merge 3 commits into
mainfrom
ak-dev-musl-ci

Conversation

@toidiu

@toidiu toidiu commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

The v52 and v53 rust-musl images shipped C toolchain breakage for musl targets that CI never exercised. This adds a CI check for it.

What the job tests

  • test/musl-link is a small crate that depends on aws-lc-sys and aws-lc-fips-sys and calls into both so neither archive is dropped at link time.
  • just test-rust-musl builds it with the rust-musl image under test, for both x86_64-unknown-linux-musl and aarch64-unknown-linux-musl.
  • The build fails if any __isoc23_* (glibc-only) symbol shows up in the binary or the libaws_lc*.a archives.
  • dev-build-arch loads the freshly built rust-musl image and runs this test on both amd64 and arm64 runners.

Expected CI results

The first commit adds only the test, and is expected to fail: the aws-lc-fips-sys build cannot find linux/random.h, because the musl C toolchain builds with -nostdinc and does not see the kernel headers. A follow-up commit adds the Dockerfile fix that exposes the kernel headers to musl C builds, and CI should pass after it.

The v52 and v53 rust-musl images shipped C toolchain breakage for musl
targets that CI never exercised: consumers only found it when building
aws-lc-sys and aws-lc-fips-sys downstream.

Add a test/musl-link crate that links both crates for the x86_64 and
aarch64 musl targets using the rust-musl image under test, and fails on
any glibc-only __isoc23_* symbol. Run it on each arch in dev-build-arch.

Signed-off-by: Apoorv Kothari <apoorv@buoyant.io>
The musl C toolchain builds with -nostdinc so it never sees the host glibc
headers, but musl-dev ships no kernel headers, so aws-lc-fips-sys could not
find linux/random.h. Link each target's kernel headers into a per-target
directory and add it to CFLAGS with -idirafter, so musl headers keep
precedence and only otherwise-missing kernel headers resolve there.

Signed-off-by: Apoorv Kothari <apoorv@buoyant.io>
@toidiu toidiu changed the title ci: test musl C builds of aws-lc-sys and aws-lc-fips-sys [build, ci]: test musl builds of aws-lc-sys and aws-lc-fips-sys. fix errors. release v54. Oct 30, 2026
Signed-off-by: Apoorv Kothari <apoorv@buoyant.io>
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.

1 participant