38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
# repo22 Linux/FreeBSD 结构对齐维护计划
|
||
|
||
## 基线
|
||
|
||
- FreeBSD 实现:`src/`
|
||
- Linux 参考:`/work/dev-src-linux/fs/erofs`(Linux 7.1-rc1 快照)
|
||
- 比较方法:逐文件和逐职责比较,不依赖共同 Git 历史
|
||
- 运行目标:FreeBSD 15 amd64
|
||
|
||
## 决策规则
|
||
|
||
1. 先判断差异是否来自 FreeBSD vnode、GEOM、errno、锁或内核库接口。
|
||
2. 只对非必要差异调整静态函数名、变量名、定义顺序和文件职责。
|
||
3. 不为匹配 Linux 文件表而添加空模块或不适用的抽象。
|
||
4. `src/Makefile` 是模块名、源码清单、架构门控和编译选项的权威来源。
|
||
5. 构建产物、生成头和机器 include symlink 不进入版本控制。
|
||
|
||
## 本轮清单
|
||
|
||
- [x] 清除受跟踪的 `build/obj` 生成头和机器 symlink
|
||
- [x] 精确忽略模块构建及手工测试生成目录
|
||
- [x] 由原生 `bsd.kmod.mk` 取代手写 amd64 clang/link 流程
|
||
- [x] 明确拒绝未验证的非 amd64 架构
|
||
- [x] 将 ZSTDIO 配置统一为 `WITH_ZSTDIO=0/1`
|
||
- [x] 按 Linux 顺序整理 Makefile 源码列表
|
||
- [x] 对齐 `find_target_dirent` 和 `decompressor_*.c` 名称
|
||
- [x] 将跨文件解压后端声明集中到 `internal.h`
|
||
- [x] 保留 BSD 专属 `erofs_vnops.c`、`lz4.c` 和后端调用契约
|
||
- [x] 在 FreeBSD 15 VM 完成双配置构建和 ZSTD 挂载 smoke
|
||
|
||
## 验证门槛
|
||
|
||
1. `WITH_ZSTDIO=0` 与 `WITH_ZSTDIO=1` 均从空对象目录构建。
|
||
2. 禁用产物不含 `ZSTD_*` 未解析符号,启用产物必须含预期内核 API。
|
||
3. 启用产物完成加载、ZSTD 镜像挂载、文件读取、卸载和 KLD 清理。
|
||
4. 非 `amd64` 和非法 `WITH_ZSTDIO` 值必须明确失败。
|
||
5. 提交只包含 repo22 pathspec,且远端 `xdm/main` 与本地 HEAD 一致。
|