上游 · Kotlin/Native binary options
stackProtector:Enables stack canaries: use yes for vulnerable functions, all for all functions, and strong to use a stronger heuristic.
全部配置 / KN-BINARY-STACKPROTECTOR
Xbinary=stackProtector · KN-BINARY-STACKPROTECTOR · 编译器参数(Native)
默认值:未设置。未指定时由消费侧决定;未核对前不写死取值。使用场合:场景可配。场景可配:有明确目标(性能、包体、安全、兼容)时再改。
用途。启用栈保护(stack protector)模式。示例取值:`stackProtector=yes`(yes / strong / all / no)。官方说明:Enables stack canaries: use yes for vulnerable functions, all for all functions, and strong to use a stronger heuristic.
影响。官方描述:Enables stack canaries: use yes for vulnerable functions, all for all functions, and strong to use a stronger heuristic. 变更后请在目标环境验证。
适用场景。场景可配。有明确需求再改,无需求时保持发行版默认更稳妥。改前核对目标限制与联动项,改后做冒烟。
| 可写取值 | 含义 | 使用场景 |
|---|---|---|
no | 关闭 stack canary(文档默认) | 默认/不需要栈保护时 |
yes | 对易受攻击函数启用 stack canary | 需要基础栈保护时(upstream:vulnerable functions) |
strong | 更强启发式的 stack canary | 需要更强保护启发式时 |
all | 对全部函数启用 stack canary | 最大化栈保护覆盖(可能影响体积/性能) |
val | 待补依据(源码无 KDoc,文档库暂无条目) | — |
when | 待补依据(源码无 KDoc,文档库暂无条目) | — |
null | 待补依据(源码无 KDoc,文档库暂无条目) | — |
llvmfunctionattribute | 待补依据(源码无 KDoc,文档库暂无条目) | — |
ssp | 待补依据(源码无 KDoc,文档库暂无条目) | — |
sspstrong | 待补依据(源码无 KDoc,文档库暂无条目) | — |
sspreq | 待补依据(源码无 KDoc,文档库暂无条目) | — |
「待补依据」表示尚未从源码 KDoc / 上游或 CPF 文档整理到该取值的说明;不会编造行为。
含义/场景依据:upstream native-binary-options; upstream native-binary-options(stackProtector)
定义依据:konan/BinaryOptions.kt 在仓库中打开; konan/StackProtector.kt 在仓库中打开
// 文件:build.gradle.kts(应用的 Kotlin 模块,例如 composeApp)
kotlin {
ohosArm64 { // 按实际 native target 调整
binaries.all {
freeCompilerArgs += "-Xbinary=stackProtector=yes" // yes / strong / all / no
}
}
}
不写这个配置时,编译器会怎么处理?
此选项默认未设置(空列表 / 空映射 / null)。不设置时由其他逻辑决定行为或直接跳过。
未指定时由消费侧决定;未核对前不写死取值。
以下摘抄原文中与本配置最相关的段落,便于速读;完整上下文请点原文。
stackProtector:Enables stack canaries: use yes for vulnerable functions, all for all functions, and strong to use a stronger heuristic.