@@ -864,3 +864,32 @@ warning: trayapp: 88 symbols in this image are also provided by a library it loa
8648642 . 两段式谓词在真实图上** 没有误报** (vendor 包自身的 ` .so ` 之间不报);
8658653 . ` dependency_linkage ` 的逃生口在真实图上** 确实生效** (88 → 0);
8668664 . ⚠️ 而它的** 局限也是真的** ,并因此改了文案 —— 这是本次验证最有价值的产出。
867+
868+ ### 13.5 ⚠️⚠️ 第三处:打出来的包起不来
869+
870+ §11.1 第 5 条写的是「大概率经 ` $ORIGIN ` 的闭包被捞到 —— 但这是推理不是测量」。
871+ 判据 12 就是为它写的,而** 推理错了** :
872+
873+ ``` console
874+ $ mcpp pack && tar xzf … && ./app
875+ error while loading shared libraries: libcore.so
876+ ```
877+
878+ ` pack ` 的闭包来自** 运行产物** (` LD_TRACE_LOADED_OBJECTS ` ),而它运行的是
879+ ** 暂存目录里的副本** —— 那个副本旁边的 ` bin/ ` 是空的,` $ORIGIN ` 解析不到,
880+ 库于是从不出现在闭包里,也就从不被打包。构建、打包、上传全程无话。
881+
882+ ⚠️ ** 不是这根轴引入的** :在 mcpp 2026.8.26.1 上用作者声明的 ` kind = "shared" `
883+ 依赖复现,同样起不来。但轴把它从「12 个自称 shared 的包」变成「任何一个包」
884+ 都可达 —— 与 PIC 进缓存键完全同型,所以同一个 PR 修掉。
885+
886+ ### 13.6 三条被实测推翻的推理,一次会话
887+
888+ | # | 我写的 | 实测 |
889+ | ---| ---| ---|
890+ | §11.1-5 | 「大概率被 ` $ORIGIN ` 闭包捞到」 | ⚠️ 没有。包解开就起不来 |
891+ | §12.7 文案 | 三条出路,` dependency_linkage ` 排第一 | ⚠️ 它会把 1 份变 2 份;次序要倒过来 |
892+ | §12.2 | (推导)shared→static 是良性的 | ✅ 实测确认,且** 第一轮的谓词会误报它** |
893+
894+ ⭐ 前两条都是** 推理写在文档里、判据写在测试里、然后测试推翻了推理** 。
895+ 第三条是推理被证实 —— 但只有把它写成判据才发现第一轮的谓词错了。
0 commit comments