Skip to content

Commit 8ee7ebc

Browse files
committed
docs(plan): 选定载荷之后 392MB → 54MB,以及收录还差的三步
把五条腿都从 meson install 改成显式组装(模拟器 + pc-bios + Windows 上 ldd 实测出的 13 个 MinGW DLL)之后: linux-x64 392MB → 103MB → 54MB(strip 后) linux-arm64 389MB → 100MB → 53MB darwin 两条 341/342MB → 53MB(不 strip:会让 ad-hoc 签名失效) win32-x64 装不出来 → 110MB → 58MB ⭐ 七倍,而且这不是收尾优化:索引的资产预算是实测 0.012 MB/s 的单连接上传、无分片、 无续传 —— 343MB 的载荷在那条链路上不可发布,54MB 的可以。**「载荷选什么」是收录能否 成立的前提。** 五条腿全绿的门槛已达到;收录仍是一个独立决定,而它现在有了做决定所需的全部数字。 剩下三步与 qemu-riscv 同形,已写进文档。
1 parent 294e6fe commit 8ee7ebc

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

.agents/docs/2026-08-21-freestanding-outstanding-four.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,38 @@ QEMU 可以从源码构建,而且**只构建需要的目标**能把代价压下
650650
⚠️ macOS 那两条腿不 strip,并且说明了原因:strip Mach-O 会让 ad-hoc 签名失效,这
651651
正是本生态发布流水线自己的规则。
652652

653+
### 4.3.2 ⭐ 选定载荷之后的数字:392 MB → 54 MB
654+
655+
把五条腿都从 `meson install` 改成**显式组装**(模拟器 + `pc-bios` + Windows 上用
656+
`ldd` 实测出的 13 个 MinGW 运行时 DLL)之后:
657+
658+
| 宿主 | `meson install` | 显式组装 | strip 后 |
659+
|---|---|---|---|
660+
| linux-x64 | 392 MB | 103 MB | **54 MB** |
661+
| linux-arm64 | 389 MB | 100 MB | **53 MB** |
662+
| darwin-arm64 | 341 MB || **53 MB**(不 strip) |
663+
| darwin-x64 | 342 MB || **53 MB**(不 strip) |
664+
| win32-x64 | (装不出来) | 110 MB | **58 MB** |
665+
666+
**七倍。** 而这不是收尾优化:索引的资产预算是实测 **0.012 MB/s** 的单连接上传、
667+
无分片、无断点续传,343 MB 的载荷在那条链路上是不可发布的,54 MB 的可以。也就是说
668+
「载荷选什么」不是打包细节,而是**收录能否成立的前提**
669+
670+
⚠️ `pc-bios` 一个文件都没删。哪些 blob 会在运行时被加载是描述符要回答的问题,靠
671+
「删到出问题为止」来回答,就是一个载荷在别人机器上少一个 blob 的由来 —— 本次实施在
672+
这里犯过一次(顺手删了 `keymaps` 与固件描述符),当场撤回。
673+
674+
### 4.3.3 收录 `xim:qemu-x86` 还差什么
675+
676+
五条腿全绿这个门槛已经达到,而收录仍是一个**独立的决定**,它现在有了做决定所需的
677+
全部数字。剩下的三步与 `qemu-riscv` 的做法同形:
678+
679+
1. 把五个资产发布成一个**版本化 release**,每个带 `.sha256` 侧文件;
680+
2. 镜像到 `xlings-res/qemu-x86` 双端,并按「回探下载 URL」而不是退出码判定成功;
681+
3.`xim:qemu-x86` 描述符,`deps` 是否为空按 `qemu-arm` 的做法**实测 DT_NEEDED /
682+
otool 闭包**后决定,而不是从兄弟描述符抄结论。⚠️ Windows 一侧的答案已经量出来了:
683+
**13 个 MinGW 运行时 DLL 必须与 exe 同目录**,因为 PE 没有 rpath。
684+
653685

654686

655687
⭐ 这一步的价值在于**先把五条流水线跑通,再谈收录**。GitHub 托管的 runner

0 commit comments

Comments
 (0)