Skip to content

ci: 支持 macOS 构建——链接参数跨平台 + KVSPACE_LIB_DIR - #322

Merged
miaobyte merged 2 commits into
masterfrom
ci/macos
Sep 12, 2026
Merged

ci: 支持 macOS 构建——链接参数跨平台 + KVSPACE_LIB_DIR#322
miaobyte merged 2 commits into
masterfrom
ci/macos

Conversation

@miaobyte

Copy link
Copy Markdown
Contributor

变更

让 kvlang 能在 macOS 构建(配合 6 仓 macOS CI 任务)。

原状(Linux-only,macOS 必挂)

  • runtime/CMakeLists.txtlink kvspace m pthread(macOS 无 libm/libpthread,都在 libSystem);LINK_FLAGS=-Wl,--export-dynamic -Wl,--disable-new-dtags(ld64 不认 --disable-new-dtags);/usr/lib/kvspace 硬编码
  • layout/build.rsruntime-rs/build.rs-Wl,--disable-new-dtags-Wl,-rpath,$ORIGIN(macOS 应为 @loader_path)、路径硬编码

改法

  • 引入 KVSPACE_LIB_DIR(CMake cache 变量 + 构建环境变量),默认 /usr/lib/kvspace → macOS CI 传 /usr/local/lib/kvspace/usr 受 SIP 保护)
  • 平台条件化:macOS 去掉 m/pthread、去掉 --disable-new-dtags$ORIGIN@loader_path
  • Linux 默认行为完全不变

CI

新增 ci-macos.ymlmacos-latest 上源码构建 kvspace(装 /usr/local)→ layout / runtime / runtime-rs 编译通过。

本地已回归验证:Linux 上 runtime/layout/runtime-rs 三件全部构建成功。

注:本 PR 只动 runtime/CMakeLists.txtlayout/build.rsruntime-rs/build.rs 与新增 workflow,与并行进行的 go/json 扩展工作无文件重叠。

Closes #321

🤖 Generated with Claude Code

miaobyte and others added 2 commits September 12, 2026 18:53
runtime/layout/runtime-rs 原为 Linux-only,macOS 必挂:
- runtime/CMakeLists:link kvspace m pthread + GNU ld 专属
  --export-dynamic/--disable-new-dtags
- layout/build.rs、runtime-rs/build.rs:--disable-new-dtags、$ORIGIN、
  硬编码 /usr/lib/kvspace

改法:
- 引入 KVSPACE_LIB_DIR(CMake cache 变量 / 构建环境变量),默认
  /usr/lib/kvspace,macOS CI 传 /usr/local/lib/kvspace(/usr 受 SIP 保护)
- 平台条件化:macOS 去掉 m/pthread、去掉 --disable-new-dtags、
  $ORIGIN → @loader_path
- Linux 默认行为不变

新增 ci-macos.yml:源码构建 kvspace → layout/runtime/runtime-rs 编译通过。

Closes #321

Co-Authored-By: Claude Code <noreply@anthropic.com>
program_invocation_short_name 是 glibc 专有,macOS/BSD 无。改用
getprogname();#if __APPLE__ 分支,Linux 路径不变。

Co-Authored-By: Claude Code <noreply@anthropic.com>
@miaobyte
miaobyte merged commit eba1989 into master Sep 12, 2026
6 checks passed
@miaobyte
miaobyte deleted the ci/macos branch September 12, 2026 11:00
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.

ci: macOS 支持——runtime/layout/runtime-rs 链接参数跨平台 + macOS CI

1 participant