update
This commit is contained in:
@@ -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 验证
|
||||
|
||||
- VM:FreeBSD `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;测试后无遗留挂载或模块。
|
||||
Reference in New Issue
Block a user