From: Jakub Jirutka Date: Sat, 08 Aug 2016 14:49:00 +0200 Subject: [PATCH] Allow to use -C target-feature=+crt-static on stable rustc Rust links system libraries statically on musl by default, but we want to link dynamically. At the same time we want to allow users to optionally use static linking. rustc already provides codegen option to change linking, but currently it's allowed only for nightly builds. This patch just removes this check and so allows to use it even on stable build. Build staticaly linked binary with rustc or cargo: $ rustc -C target-feature=+crt-static hello_world.rs $ RUSTFLAGS="-C target-feature=+crt-static" cargo build --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs @@ -401,9 +401,9 @@ // If we switched from the default then that's only allowed on nightly, so // gate that here. if (found_positive || found_negative) && (!is_nightly || !unstable_options) { - self.fatal("specifying the `crt-static` target feature is only allowed \ - on the nightly channel with `-Z unstable-options` passed \ - as well"); + //self.fatal("specifying the `crt-static` target feature is only allowed \ + // on the nightly channel with `-Z unstable-options` passed \ + // as well"); } return crt_static; --- a/src/test/compile-fail/crt-static-gated.rs +++ b/src/test/compile-fail/crt-static-gated.rs @@ -10,5 +10,6 @@ // compile-flags:-C target-feature=+crt-static // error-pattern: specifying the `crt-static` target feature is only allowed +// ignore-test we just want this feature and no one will stop us! fn main() {}