Skip to content

Commit

Permalink
Move handling of -Cprefer-dynamic into builder.rs
Browse files Browse the repository at this point in the history
This logic is *super* old and can be tweaked and moved into `builder.rs`
  • Loading branch information
alexcrichton committed Sep 23, 2019
1 parent b3f95f4 commit 385470b
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 15 deletions.
7 changes: 0 additions & 7 deletions src/bootstrap/bin/rustc.rs
Expand Up @@ -89,13 +89,6 @@ fn main() {
cmd.arg("--sysroot").arg(&sysroot);
}

// When we build Rust dylibs they're all intended for intermediate
// usage, so make sure we pass the -Cprefer-dynamic flag instead of
// linking all deps statically into the dylib.
if env::var_os("RUSTC_NO_PREFER_DYNAMIC").is_none() {
cmd.arg("-Cprefer-dynamic");
}

// If we're compiling specifically the `panic_abort` crate then we pass
// the `-C panic=abort` option. Note that we do not do this for any
// other crate intentionally as this is the only crate for now that we
Expand Down
10 changes: 10 additions & 0 deletions src/bootstrap/builder.rs
Expand Up @@ -1227,6 +1227,16 @@ impl<'a> Builder<'a> {

self.ci_env.force_coloring_in_ci(&mut cargo);

// When we build Rust dylibs they're all intended for intermediate
// usage, so make sure we pass the -Cprefer-dynamic flag instead of
// linking all deps statically into the dylib.
match mode {
Mode::Std | Mode::Rustc | Mode::Codegen => {
rustflags.arg("-Cprefer-dynamic");
}
_ => {}
}

Cargo {
command: cargo,
rustflags,
Expand Down
4 changes: 0 additions & 4 deletions src/bootstrap/test.rs
Expand Up @@ -1814,10 +1814,6 @@ impl Step for Crate {
.expect("nodejs not configured"),
);
} else if target.starts_with("wasm32") {
// On the wasm32-unknown-unknown target we're using LTO which is
// incompatible with `-C prefer-dynamic`, so disable that here
cargo.env("RUSTC_NO_PREFER_DYNAMIC", "1");

let node = builder
.config
.nodejs
Expand Down
4 changes: 0 additions & 4 deletions src/bootstrap/tool.rs
Expand Up @@ -234,10 +234,6 @@ pub fn prepare_tool_cargo(
let dir = builder.src.join(path);
cargo.arg("--manifest-path").arg(dir.join("Cargo.toml"));

// We don't want to build tools dynamically as they'll be running across
// stages and such and it's just easier if they're not dynamically linked.
cargo.env("RUSTC_NO_PREFER_DYNAMIC", "1");

if source_type == SourceType::Submodule {
cargo.env("RUSTC_EXTERNAL_TOOL", "1");
}
Expand Down

0 comments on commit 385470b

Please sign in to comment.