Skip to content

fix(go): 修复关闭 CGO 时的 Transform 悬空引用#3

Closed
wuchulonly wants to merge 1 commit into
chainreactors:mainfrom
wuchulonly:fix/cgo-build-constraints
Closed

fix(go): 修复关闭 CGO 时的 Transform 悬空引用#3
wuchulonly wants to merge 1 commit into
chainreactors:mainfrom
wuchulonly:fix/cgo-build-constraints

Conversation

@wuchulonly

Copy link
Copy Markdown

背景

新版 Go FFI 已移除旧的无操作 stub,Graph、CAS、Parse 和 Transform 均依赖 CGO。关闭 CGO 时,包含 import "C" 的文件会被 Go 自动排除,但 transform.go 仍参与编译并引用已被排除的原生 Transform 实现,最终出现 undefined: Transform

修改内容

  • go/transform.go 增加 //go:build cgo,避免 CGO 关闭时留下悬空原生符号。
  • go/graph_test.go 增加相同构建约束,明确 Graph 测试属于原生能力。
  • CI 增加 CGO_ENABLED=0 检查,保证生成的 SCO/SRO 数据类型和 JSON helper 可以独立编译。
  • 保留 CGO_ENABLED=1 原生回归测试,覆盖完整 FFI 能力。
  • 更新 README,明确 CGO 关闭仅提供生成的数据类型,不提供 Graph、CAS、Parse 或 Transform。
  • 补充说明:随包提供的静态归档不代表最终 Go ELF 一定全静态,scratch 镜像仍需显式静态链接并检查 ELF。

验证结果

  • CGO_ENABLED=0 go test ./... 通过。
  • CGO_ENABLED=1 go test ./... 通过。
  • git diff --check 通过。

兼容性说明

本修改不会恢复旧的静默 stub。需要 Graph、CAS、Parse 或 Transform 的调用方仍必须使用 CGO_ENABLED=1;CGO 关闭时只保留类型定义和 JSON 相关能力。

@M09Ic M09Ic closed this Jul 18, 2026
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.

2 participants