Skip to content

ci: 增加 macOS 构建 - #29

Merged
miaobyte merged 5 commits into
mainfrom
ci/macos
Sep 12, 2026
Merged

miaobyte merged 5 commits into
mainfrom
ci/macos

Conversation

@miaobyte

Copy link
Copy Markdown
Contributor

变更

给 kvspace-c 增加 macOS CI(任务:6 仓 macOS 编译通过)。

macos-latest 上先源码构建依赖 blockmalloc v0.1.4 + slotsboxmalloc v0.1.5(现有 ci/deps.sh 只下 linux tarball),装到 /usr/local,再构建本仓并跑 ctest(含 shm_split / shm_resize / art_scan 三个测试)。

🤖 Generated with Claude Code

miaobyte and others added 5 commits September 12, 2026 18:50
macos-latest 上源码构建依赖 blockmalloc v0.1.4 + slotsboxmalloc v0.1.5
(macOS 无预编译 ABI),再构建本仓并跑 ctest(KVSPACE_BUILD_TESTS=ON)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
v0.1.5 tag 不含 macOS 的 _POSIX_C_SOURCE 修复,改为 clone main;
待 slotsboxmalloc 发含修复的新 tag 后再改回固定版本。

Co-Authored-By: Claude Code <noreply@anthropic.com>
- kvspace.c: fallocate + FALLOC_FL_PUNCH_HOLE 是 Linux 专有,用
  #if defined(__linux__) 包住;macOS 跳过(仅磁盘空间回收优化)
- durable_abi.c: _POSIX_C_SOURCE 199309L→200809L(macOS 才暴露 C99 的
  snprintf),并加 _DARWIN_C_SOURCE 暴露 usleep 等 Darwin API

Linux 行为不变(本地 cmake 构建 + 3 个 test 目标通过)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
fallocate PUNCH_HOLE 为 Linux 专有;macOS 直接返回"不支持"。

Co-Authored-By: Claude Code <noreply@anthropic.com>
macOS 无 ldconfig,dyld 不自动搜 /usr/local/lib,测试可执行找不到
libblockmalloc.1.dylib。运行时补 fallback 路径。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@miaobyte
miaobyte merged commit 308964f into main Sep 12, 2026
4 checks passed
@miaobyte
miaobyte deleted the ci/macos branch September 12, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant