全部配置 / KN-BINARY-ENABLESTACKMAP
-Xbinary=enableStackmap
Xbinary=enableStackmap · KN-BINARY-ENABLESTACKMAP · 编译器参数(Native)
待解决问题。文档缺口:此项为 CPF-KMP-CMP社区新增,但尚未挂接社区文档。应补充专章或在既有手册中明确提及本配置后再挂链。
默认值:视情况。ohos_arm64 / macos_arm64 开,其余关。使用场合:场景可配。按目标。
它是做什么的
用途。启用精确 stackmap 代码生成,供 CMC/CRT 等精确根扫描使用;需与 runtime 的 stackmap 构建一致(ohos_arm64 / macos_arm64 常默认开)。
影响。影响 GC/CRT 精确根扫描或 safepoint 快路径;须与 runtime 构建一致,否则可能崩溃或行为异常。
适用场景。CMC/CRT 或精确 GC 路径配套;确认 runtime 同开后再改。
约束与联动。上游无此 -Xbinary。社区新增:开关精确 stackmap 代码生成路径(addrspace(1) 堆指针等),须与 runtime 的 precise.stackmap 构建一致;未指定时按目标默认——ohos_arm64 / macos_arm64 为开,其余为关。 须与 dist runtime 的 stackmap 构建一致;与部分 GC 组合有兼容限制。
取值说明
可写。true / false
定义依据:konan/BinaryOptions.kt 在仓库中打开
怎么用
- 配置入口:build.gradle.kts → ohosArm64.binaries.all { freeCompilerArgs += "-Xbinary=enableStackmap=true" }
- 示例:
// 文件:build.gradle.kts(应用的 Kotlin 模块,例如 composeApp)
kotlin {
ohosArm64 { // 按实际 native target 调整
binaries.all {
freeCompilerArgs += "-Xbinary=enableStackmap=true"
}
}
}
- 生效:Sync 后执行该目标的 compile/link。
- 验证:编译日志出现 `-Xbinary=enableStackmap=true`。
- 回滚:从 binaries.all 的 freeCompilerArgs 中删除该项后 Clean 并重编。
- 注意:须与 dist runtime 同开同关;只改一端可能导致异常。
默认行为 视情况
不写这个配置时,编译器会怎么处理?
此选项的默认值视情况而定(如目标平台或构建类型)。详见下方默认值说明。
ohos_arm64 / macos_arm64 开,其余关。
相关文档
当前无 CPF 文档链接。补齐社区文档并挂链后,此缺口告警将消失。