Enable inline stack probes on riscv64

Fixes #1358
This commit is contained in:
bjorn3 2023-02-19 17:08:52 +00:00
parent 98ddd69aae
commit c794dc7255

View File

@ -280,14 +280,17 @@ fn build_isa(sess: &Session, backend_config: &BackendConfig) -> Box<dyn isa::Tar
}
}
if let target_lexicon::Architecture::Aarch64(_) | target_lexicon::Architecture::X86_64 =
target_triple.architecture
if let target_lexicon::Architecture::Aarch64(_)
| target_lexicon::Architecture::Riscv64(_)
| target_lexicon::Architecture::X86_64 = target_triple.architecture
{
// Windows depends on stack probes to grow the committed part of the stack
// Windows depends on stack probes to grow the committed part of the stack.
// On other platforms it helps prevents stack smashing.
flags_builder.enable("enable_probestack").unwrap();
flags_builder.set("probestack_strategy", "inline").unwrap();
} else {
// __cranelift_probestack is not provided and inline stack probes are only supported on AArch64 and x86_64
// __cranelift_probestack is not provided and inline stack probes are only supported on
// AArch64, Riscv64 and x86_64.
flags_builder.set("enable_probestack", "false").unwrap();
}