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