#962·sonic

loader: 匿名 mmap 传递 fd `0` 并在 BSD 上出现 `EINVAL` 错误

作者: Torrekie创建于 2026年7月15日更新于 2026年7月15日

错误描述

loader/mmap_unix.go 目前调用 SYS_MMAP 并使用 MAP_ANON | MAP_PRIVATE,但将 0 作为 fd 参数传递:

go
syscall.RawSyscall6(
    syscall.SYS_MMAP,
    0,
    uintptr(nb),
    _RW,
    _AP,
    0, // fd
    0, // offset
)

这导致 JIT 内存分配在 BSD 发行版上出现 EINVAL 错误。

内容来源: bytedance/sonic