blob: d379a1048c024574bea58f4b7b11e933df010b28 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
From 5e7144b4963e6c733033738dbf5552c9ae0f19e3 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 3 Nov 2019 17:01:32 -0600
Subject: [PATCH 06/13] Link libssp_nonshared.a on all musl targets
---
compiler/rustc_target/src/spec/linux_musl_base.rs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/compiler/rustc_target/src/spec/linux_musl_base.rs b/compiler/rustc_target/src/spec/linux_musl_base.rs
index 67d18c886eba5..f9be51095d6fc 100644
--- a/compiler/rustc_target/src/spec/linux_musl_base.rs
+++ b/compiler/rustc_target/src/spec/linux_musl_base.rs
@@ -1,10 +1,13 @@
-use crate::spec::TargetOptions;
+use crate::spec::{Cc, LinkerFlavor, Lld, TargetOptions};
pub fn opts() -> TargetOptions {
let mut base = super::linux_base::opts();
base.env = "musl".into();
+ // libssp_nonshared.a is needed for __stack_chk_fail_local when using libc.so
+ base.add_post_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-lssp_nonshared"]);
+
// These targets statically link libc by default
base.crt_static_default = true;
|