This commit is contained in:
2026-08-18 09:20:44 +02:00
commit b826cd721a
522 changed files with 93730 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
# repo22 Linux/FreeBSD 结构对齐状态
## 已完成
- 使用 `/work/dev-src-linux/fs/erofs` 的 Linux 7.1-rc1 快照逐文件复核;未使用
两个实现共享历史的假设。
- `namei.c` 的静态 helper 已从 `erofs_find_target_dirent` 恢复为 Linux 名称
`find_target_dirent`
- `lzma.c``deflate.c``zstd.c` 已按 Linux 职责名调整为
`decompressor_lzma.c``decompressor_deflate.c`
`decompressor_zstd.c`
- 解压后端原型已移入 `internal.h`MicroLZMA 内嵌 XZ 的 allocator helper
已限制为编译单元内部符号。
- `src/Makefile` 已按 Linux 的 metadata、压缩调度/映射、算法后端顺序组织,
并成为 `build.sh` 的唯一源码和模块名来源。
- 受跟踪的对象目录、vnode 生成头和 amd64/x86 机器 symlink 已删除并忽略。
## 保留差异
- `erofs_vnops.c` 承载 FreeBSD vnode、pager、NFS 和只读操作语义。
- `lz4.c` 保持独立,因为 BSD 后端不使用 Linux page/LZ4 调度接口。
- 后端函数保持 BSD 内部 API,而不是复制 Linux decompressor descriptor 和
page 生命周期。
- FreeBSD 路径返回正 errno,并保留 GEOM/provider、lockmgr 和 vnode 规则。
- Linux `sysfs`、file-backed、fscache、page-cache sharing 和 `zutil` 职责不以
空文件模拟。
- 当前构建门控仅允许已验证的 FreeBSD 15 `amd64`
## 2026-08-09 验证
- VMFreeBSD `15.0-RELEASE-p8` amd64。
- 构建源:FreeBSD `15.0 RELEASE-p9` `sys` 树。
- `WITH_ZSTDIO=0` 构建通过,模块 SHA256
`d11d0319dc1d786eaa868a0c05c2abaf43da8480acacb0e1e4b72b7542b05432`
`ZSTD_*` 未解析符号。
- `WITH_ZSTDIO=1` 构建通过,模块 SHA256
`82471f19812e9877ea06901d1ba0cb4378b2bc6476ec70f6e024e0dc777c0c71`
编译命令包含 `-DZSTDIO` 并引用 FreeBSD 内核 ZSTD API。
- 启用模块完成加载、`zstd-level1.erofs` 只读挂载、6 个文件读取与 SHA256、
卸载、md detach 和 KLD unload;测试后无遗留挂载或模块。