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 would like to preserve this behaviour for consistency with other distros, to not confuse users. 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 dynamically 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() {}