我想在我正在做的一个项目中强化一些可执行的项目。为了进行测试,我使用了hello程序,并使用校验秒进行检查,该程序报告说没有金丝雀。我对Rust非常陌生,谷歌上信息的缺乏让我觉得自己错过了一些显而易见的东西。
对于GCC,它是一个简单的编译器标志:-fstack-protector-all。我在LLVM中发现的最接近的东西是安全栈。然而,当我试图将它传递给LLVM时,锈蚀编译器似乎并不认识到这一点。例如:
rustc -C llvm-args="-fsanitize=safe-stack" -C link-arg="-fsanitize=safe-stack" test.rust结果在
rustc:未知的命令行参数‘-fsanitize=安全堆栈’。试一试:‘生锈的-help’你的意思是‘-不叫’?
我用的是Rust 1.23.0。我试图添加这些金丝雀不仅在x86_64上,而且在armeabi-v7a上,如果这是相关的话。
发布于 2018-01-31 18:34:40
发布于 2018-01-31 18:34:27
目前,这是不支持的:
我们更新了LLVM,所以在我们的LLVM中支持这个安全的堆栈属性,我认为在默认情况下打开它可能需要一些调查,并且可能首先需要一个RFC,所以我现在要结束它。 -- alexcrichton https://github.com/rust-lang/rust/issues/26612
我无法为这个功能找到一个RFC。
https://stackoverflow.com/questions/48547475
复制相似问题