aboutsummaryrefslogtreecommitdiff
path: root/src/target.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-11-06 23:21:06 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-11-10 13:12:10 -0700
commit53f74d6a04377c9e0d7c3affd32fceea0fd51454 (patch)
tree1aaeb813b4f799b72449179c14367c5ff6d3644c /src/target.zig
parent2a81a0f388fcf1b3ddbb55dce03fa93f4eecd804 (diff)
downloadzig-53f74d6a04377c9e0d7c3affd32fceea0fd51454.tar.gz
zig-53f74d6a04377c9e0d7c3affd32fceea0fd51454.zip
move libssp into libcompiler_rt
closes #7265
Diffstat (limited to 'src/target.zig')
-rw-r--r--src/target.zig15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/target.zig b/src/target.zig
index 7f85113040..59528ed139 100644
--- a/src/target.zig
+++ b/src/target.zig
@@ -328,8 +328,19 @@ pub fn supportsStackProbing(target: std.Target) bool {
(target.cpu.arch == .x86 or target.cpu.arch == .x86_64);
}
-pub fn supportsStackProtector(target: std.Target) bool {
- return !target.isSpirV();
+pub fn supportsStackProtector(target: std.Target, backend: std.builtin.CompilerBackend) bool {
+ switch (target.os.tag) {
+ .plan9 => return false,
+ else => {},
+ }
+ switch (target.cpu.arch) {
+ .spirv32, .spirv64 => return false,
+ else => {},
+ }
+ return switch (backend) {
+ .stage2_llvm => true,
+ else => false,
+ };
}
pub fn libcProvidesStackProtector(target: std.Target) bool {