Skip to content

Commit 9879a0a

Browse files
committedNov 6, 2014
Pass -C prefer-dynamic for dylib dependencies
1 parent e602263 commit 9879a0a

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed
 

‎src/cargo/ops/cargo_rustc/mod.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,10 @@ fn build_base_args(cx: &Context,
491491
.rpath(root_profile.get_rpath())
492492
}
493493

494-
if profile.is_for_host() {
494+
let prefer_dynamic = profile.is_for_host() ||
495+
(crate_types.contains(&"dylib") &&
496+
pkg.get_package_id() != cx.resolve.root());
497+
if prefer_dynamic {
495498
cmd = cmd.arg("-C").arg("prefer-dynamic");
496499
}
497500

‎tests/test_cargo_compile.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,7 @@ test!(verbose_release_build_deps {
819819
execs().with_status(0).with_stdout(format!("\
820820
{compiling} foo v0.0.0 ({url})
821821
{running} `rustc {dir}{sep}foo{sep}src{sep}lib.rs --crate-name foo \
822-
--crate-type dylib --crate-type rlib \
822+
--crate-type dylib --crate-type rlib -C prefer-dynamic \
823823
--opt-level 3 \
824824
--cfg ndebug \
825825
-C metadata=[..] \

‎tests/test_cargo_profiles.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ test!(top_level_overrides_deps {
8282
execs().with_status(0).with_stdout(format!("\
8383
{compiling} foo v0.0.0 ({url})
8484
{running} `rustc {dir}{sep}foo{sep}src{sep}lib.rs --crate-name foo \
85-
--crate-type dylib --crate-type rlib \
85+
--crate-type dylib --crate-type rlib -C prefer-dynamic \
8686
--opt-level 1 \
8787
-g \
8888
-C metadata=[..] \

0 commit comments

Comments
 (0)