Skip to content

Releases: mcpp-community/mcpp

v0.0.83

Choose a tag to compare

@github-actions github-actions released this 07 Jul 12:13
b0747c9

修复

  • Linux llvm 工具链链接失败 cannot open Scrt1.o/crti.o/crtn.o(#195):clang-with-cfg
    的 payload 链接路径此前只带 -L/-rpath/--dynamic-linker,缺少 CRT 启动对象的发现前缀
    -B<glibc payload lib>——driver 查找 Scrt1.o/crti.o/crtn.o 只走 -B 前缀与 sysroot
    派生路径,不查 -L。在装有宿主 libc6-dev 的机器上 driver 会静默兜底宿主 /lib 的 CRT
    (污染式"假绿"),在没有的机器(如全新 WSL2)上则把裸文件名传给 lld 直接失败。

新增 / 架构

  • 工具链链接模型单一化(hermetic toolchain link model):新增 mcpp.toolchain.linkmodel
    作为「如何对该工具链的 C 库编译/链接」的唯一解析器(payload-first,--sysroot 回退),
    flags / stdmod / build_program / cfg 再生全部消费同一模型,消除四份漂移实现;
    动态链接器名按 声明式 payload 元数据 → 按 triple 的 arch 映射 → glob 三级解析,全链
    不再硬编码 ld-linux-x86-64.so.2(aarch64 glibc 的 loader 障碍随之消除)。详见
    .agents/docs/2026-07-07-hermetic-toolchain-link-model-design.md
  • post-install fixup 归位为统一管线:ensure_post_install_fixup 成为所有工具链安装
    路径(显式 install / 默认工具链 auto-install / manifest [toolchain] auto-install)共享
    的唯一 fixup 入口,内容指纹 marker 幂等;此前 manifest 路径不跑任何 fixup。clang cfg
    由行级补丁改为从链接模型确定性再生(同一 payload 在任何机器/安装路径产出一致 cfg,
    人类直接使用 clang++ 同样获得 hermetic 的 CRT 发现)。
  • hermetic 链接校验:构建前用 -### 干跑断言 CRT 对象与生效 dynamic linker 全部解析
    在沙箱(xpkgs registry)内,越界即报错并指明泄漏路径;逃生阀
    [build] allow_host_libs = true / MCPP_ALLOW_HOST_LIBS=1。按 flag 集缓存判定。
  • 测试与 CI:新增 e2e 86_llvm_hermetic_link.sh(-### 前缀断言,双向防「链接失败」
    与「宿主污染」回归);llvm e2e 解除 20.1.7 硬 pin(MCPP_E2E_LLVM_VERSION,默认最新
    已装 payload);ci-linux-e2e 新增 无宿主工具链容器 job(debian:stable-slim,无 gcc /
    无宿主 CRT)——唯一能真实复现 #195 环境类的 CI 形态。

v0.0.82

Choose a tag to compare

@github-actions github-actions released this 30 Jun 10:00

(no CHANGELOG entry found for 0.0.82)

v0.0.81

Choose a tag to compare

@github-actions github-actions released this 30 Jun 05:39
c2fb00d

(no CHANGELOG entry found for 0.0.81)

v0.0.80

Choose a tag to compare

@github-actions github-actions released this 30 Jun 04:26
ec3b05f

(no CHANGELOG entry found for 0.0.80)

v0.0.79

Choose a tag to compare

@github-actions github-actions released this 30 Jun 02:42
6d383b3

(no CHANGELOG entry found for 0.0.79)

v0.0.78

Choose a tag to compare

@github-actions github-actions released this 30 Jun 01:16
35eae70

(no CHANGELOG entry found for 0.0.78)

v0.0.77

Choose a tag to compare

@github-actions github-actions released this 29 Jun 19:22

(no CHANGELOG entry found for 0.0.77)

v0.0.76

Choose a tag to compare

@github-actions github-actions released this 29 Jun 18:03
eb5b125

(no CHANGELOG entry found for 0.0.76)

v0.0.75

Choose a tag to compare

@github-actions github-actions released this 29 Jun 15:34
4584b17

(no CHANGELOG entry found for 0.0.75)

v0.0.74

Choose a tag to compare

@github-actions github-actions released this 29 Jun 14:31
d829990

(no CHANGELOG entry found for 0.0.74)