rewrite extern-multiple-copies to rmake

This commit is contained in:
Oneirical 2024-07-23 11:54:10 -04:00
parent da692ee0ea
commit 4332f5d81a
3 changed files with 17 additions and 10 deletions

View File

@ -17,7 +17,6 @@ run-make/emit-to-stdout/Makefile
run-make/export-executable-symbols/Makefile
run-make/extern-flag-disambiguates/Makefile
run-make/extern-fn-reachable/Makefile
run-make/extern-multiple-copies/Makefile
run-make/extern-multiple-copies2/Makefile
run-make/fmt-write-bloat/Makefile
run-make/foreign-double-unwind/Makefile

View File

@ -1,9 +0,0 @@
# ignore-cross-compile
include ../tools.mk
all:
$(RUSTC) foo1.rs
$(RUSTC) foo2.rs
mkdir $(TMPDIR)/foo
cp $(TMPDIR)/libfoo1.rlib $(TMPDIR)/foo/libfoo1.rlib
$(RUSTC) bar.rs --extern foo1=$(TMPDIR)/libfoo1.rlib -L $(TMPDIR)/foo

View File

@ -0,0 +1,17 @@
// In this test, the rust library foo1 exists in two different locations, but only one
// is required by the --extern flag. This test checks that the copy is ignored (as --extern
// demands fetching only the original instance of foo1) and that no error is emitted, resulting
// in successful compilation.
// https://github.com/rust-lang/rust/pull/29961
// FIXME(Oneirical): test-various
use run_make_support::{path, rfs, rust_lib_name, rustc};
fn main() {
rustc().input("foo1.rs").run();
rustc().input("foo2.rs").run();
rfs::create_dir("foo");
rfs::copy(rust_lib_name("foo1"), path("foo").join(rust_lib_name("foo1")));
rustc().input("bar.rs").extern_("foo1", rust_lib_name("foo1")).library_search_path("foo").run();
}