Files
erofs-freebsd-out-tree/docs/refactoring-plan.md
T
2026-08-13 10:44:59 +02:00

38 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 一致。