mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 00:43:50 +00:00
rewrite mixing-libs to rmake
This commit is contained in:
parent
d9162fd97f
commit
ece7d98c0e
@ -90,7 +90,6 @@ run-make/manual-link/Makefile
|
|||||||
run-make/metadata-dep-info/Makefile
|
run-make/metadata-dep-info/Makefile
|
||||||
run-make/min-global-align/Makefile
|
run-make/min-global-align/Makefile
|
||||||
run-make/missing-crate-dependency/Makefile
|
run-make/missing-crate-dependency/Makefile
|
||||||
run-make/mixing-libs/Makefile
|
|
||||||
run-make/native-link-modifier-bundle/Makefile
|
run-make/native-link-modifier-bundle/Makefile
|
||||||
run-make/native-link-modifier-whole-archive/Makefile
|
run-make/native-link-modifier-whole-archive/Makefile
|
||||||
run-make/no-alloc-shim/Makefile
|
run-make/no-alloc-shim/Makefile
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
# ignore-cross-compile
|
|
||||||
include ../tools.mk
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(RUSTC) rlib.rs --crate-type=rlib --crate-type=dylib
|
|
||||||
$(RUSTC) dylib.rs # no -Cprefer-dynamic so statically linking librlib.rlib
|
|
||||||
$(call REMOVE_DYLIBS,rlib) # remove librlib.so to test that prog.rs doesn't get confused about the removed dylib version of librlib
|
|
||||||
$(RUSTC) prog.rs && exit 1 || exit 0
|
|
21
tests/run-make/mixing-libs/rmake.rs
Normal file
21
tests/run-make/mixing-libs/rmake.rs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Having multiple upstream crates available in different formats
|
||||||
|
// should result in failed compilation. This test causes multiple
|
||||||
|
// libraries to exist simultaneously as rust libs and dynamic libs,
|
||||||
|
// causing prog.rs to fail compilation.
|
||||||
|
// See https://github.com/rust-lang/rust/issues/10434
|
||||||
|
|
||||||
|
//@ ignore-cross-compile
|
||||||
|
|
||||||
|
use run_make_support::{remove_dylibs, rustc};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
rustc().input("rlib.rs").crate_type("rlib").crate_type("dylib").run();
|
||||||
|
|
||||||
|
// Not putting `-C prefer-dynamic` here allows for static linking of librlib.rlib.
|
||||||
|
rustc().input("dylib.rs").run();
|
||||||
|
|
||||||
|
// librlib's dynamic version needs to be removed here to prevent prog.rs from fetching
|
||||||
|
// the wrong one.
|
||||||
|
remove_dylibs("rlib");
|
||||||
|
rustc().input("prog.rs").run_fail();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user