feat(pkgs): llvm-musl-libcxx — musl-targeted libc++ static runtime payload - #677
Closed
yspbwx2010 wants to merge 2 commits into
Closed
feat(pkgs): llvm-musl-libcxx — musl-targeted libc++ static runtime payload#677yspbwx2010 wants to merge 2 commits into
yspbwx2010 wants to merge 2 commits into
Conversation
…yload A clang frontend carries no target libc, so the LLVM family cannot serve *-linux-musl without three things it does not ship: a libc++ configured for the musl target, std/std.compat module sources built over that libc++, and crt/libgcc/libc. The third already lives in musl-gcc (the engine points clang at it via --gcc-toolchain); this package is the first two, per target arch (x86_64 + aarch64, each sha256-pinned). - built from llvm-project release/22.x runtimes, clang 22.1.8 payload cross-driving into each target's musl sysroot; static archives only (the musl target is a fully static ELF world) - umbrella xvm node like libcxx-headers: a second copy of the standard library must not reach the host sysroot - assets staged on the contributor fork's release until migrated to xlings-res (sha256 pins the bytes); no ci block for the same reason libcxx-headers has none — the payload is rebuilt, not re-downloaded Consumed by mcpp#492 (the engine's llvm-musl branch); design doc in .agents/docs/2026-08-23-llvm-musl-libcxx-package-design.md.
The archives now live at cloud-teahouse/llvm-musl-libcxx (source + per-release tarballs, sha256 sidecars in the release notes) instead of the staging spot on the mcpp fork; same bytes, same sha256. Full install/remove lifecycle re-verified against the new URL.
Author
|
Assets now live in a dedicated payload repo — cloud-teahouse/llvm-musl-libcxx (source + per-release archives with sha256 in the notes) — replacing the earlier staging spot; same bytes, same sha256. Descriptor updated and the full install/remove lifecycle re-verified against the new URL (12/12 package tests green). |
Author
|
Superseded: mcpp now ships native |
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.
Summary
llvm-musl-libcxx: the musl-targeted libc++/libc++abi/libunwind static archives, headers andstd.cppm/std.compat.cppmmodule sources, one asset per target arch (x86_64 + aarch64, each sha256-pinned).*-linux-muslwithout a libc++ configured for the musl target (a host libc++'s__config_sitedescribes a different ABI) and std module sources built over it. crt/libgcc/libc are NOT duplicated here — the engine side points clang at the existing musl-gcc payload via--gcc-toolchain.libcxx-headers(a second copy of the standard library must not reach the host sysroot).ciblock for the same reasonlibcxx-headershas none — the payload is rebuilt per llvm release, not re-downloaded.Engine-side consumer: mcpp-community/mcpp#492 (adds the
llvmSysroottarget-table column that resolves this payload); tracking issue mcpp-community/mcpp#491. Design doc:.agents/docs/2026-08-23-llvm-musl-libcxx-package-design.md.Test plan
pytest tests/ -m 'static or isolation': 1887 passed, 9 skipped (12 new tests intests/l/test_llvm_musl_libcxx.py, including the both-arches-sha256 and static-only assertions)config --add-xpkg→install(download + sha256 + install-hook asserts on algorithm header / libc++.a / std.cppm) →remove, all green