diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a0a7d3..393fe91 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,8 +24,10 @@ jobs: set -euo pipefail v="${GITHUB_REF_NAME}" d="kvlang-abi-$v-linux-x86_64" - mkdir -p "$d/include" "$d/lib/kvspace" - cp runtime/include/*.h "$d/include/" + mkdir -p "$d/include/kvlang" "$d/lib/kvspace" + cp runtime/include/*.h "$d/include/kvlang/" + # 自带全部 ABI 依赖的头 → 解包即 /usr/include 布局(扩展编译需要 kvspace.h 等) + cp -r /usr/include/kvspace /usr/include/blockmalloc /usr/include/slotsboxmalloc "$d/include/" cp bin/libkvlang_runtime.so "$d/lib/" cp layout/target/release/libkvlanglayout.so "$d/lib/" # 自带全部 ABI 依赖 → 解包即 /usr/lib + /usr/lib/kvspace 布局 @@ -65,13 +67,31 @@ jobs: cmake -S runtime -B build/runtime -DCMAKE_BUILD_TYPE=Release -DKVSPACE_LIB_DIR="$KVSPACE_LIB_DIR" cmake --build build/runtime --target kvlang_runtime -j cargo build --release --manifest-path layout/Cargo.toml + - name: 后端装载冒烟(frontend 的 dlopen 真能加载后端) + run: | + cat > /tmp/conn.c <<'EOF' + #include + #include + int main(void) { + void *shm = kvspaceConnect("shm:///tmp/ks_rel_macos"); + void *fs = kvspaceConnect("fs:///tmp/ks_rel_fs"); + printf("shm=%p fs=%p\n", shm, fs); + if (shm) kvspaceClose(shm); + if (fs) kvspaceClose(fs); + return (shm && fs) ? 0 : 1; + } + EOF + cc /tmp/conn.c -o /tmp/conn -I/usr/local/include -L/usr/local/lib/kvspace -lkvspace + DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib /tmp/conn - name: 打包 ABI 产物 run: | set -euo pipefail v="${GITHUB_REF_NAME}" d="kvlang-abi-$v-darwin-arm64" - mkdir -p "$d/include" "$d/lib/kvspace" - cp runtime/include/*.h "$d/include/" + mkdir -p "$d/include/kvlang" "$d/lib/kvspace" + cp runtime/include/*.h "$d/include/kvlang/" + # 自带全部 ABI 依赖的头 → 解包即 /usr/local/include 布局 + cp -r /usr/local/include/kvspace /usr/local/include/blockmalloc /usr/local/include/slotsboxmalloc "$d/include/" cp bin/libkvlang_runtime.dylib "$d/lib/" cp layout/target/release/libkvlanglayout.dylib "$d/lib/" # 自带全部 ABI 依赖 → 解包即 /usr/local/lib + /usr/local/lib/kvspace 布局