动机
--target x86_64-linux-musl 目前硬绑 gcc@16.1.0。GCC 16 的 modules 实现存在未修复的 ICE(BMI 读回期段错误,堆内指针损坏),而 clang 22 编同一代码库全绿。llvm 家族缺的只是 musl 侧 payload(clang 不携带 musl libc/libc++)。
设计思路
- 新 xim 包
llvm-musl:clang 前端(复用 llvm payload)+ 自建 musl libc++/libcxxabi/libunwind(含 std.cppm)+ 从 musl-gcc payload 借 crt/libgcc(--gcc-toolchain + -rtlib=libgcc -unwindlib=libgcc)
- linkmodel 增加 llvm-musl 分支:musl sysroot 优先于 glibc payload(clang.cfg 的 host 绑定需以
--no-default-config 中和)
- stdmod:musl target 的 std.pcm 从 payload 内 std.cppm
--precompile
- 双架构验证过可行(x86_64 native + aarch64 qemu,cloud-code-cpp 全库)
涉及模块
- src/toolchain/registry.cppm(to_xim_package)
- src/toolchain/linkmodel.cppm(resolve_link_model)
- src/toolchain/stdmod.cppm
- xim-pkgindex(新包 payload)
详细设计:.agents/docs/2026-08-23-llvm-musl-target-design.md(随 PR 附上)
动机
--target x86_64-linux-musl目前硬绑 gcc@16.1.0。GCC 16 的 modules 实现存在未修复的 ICE(BMI 读回期段错误,堆内指针损坏),而 clang 22 编同一代码库全绿。llvm 家族缺的只是 musl 侧 payload(clang 不携带 musl libc/libc++)。设计思路
llvm-musl:clang 前端(复用 llvm payload)+ 自建 musl libc++/libcxxabi/libunwind(含 std.cppm)+ 从 musl-gcc payload 借 crt/libgcc(--gcc-toolchain+-rtlib=libgcc -unwindlib=libgcc)--no-default-config中和)--precompile涉及模块
详细设计:.agents/docs/2026-08-23-llvm-musl-target-design.md(随 PR 附上)