From 5e7144b4963e6c733033738dbf5552c9ae0f19e3 Mon Sep 17 00:00:00 2001 From: Samuel Holland 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;