rewrite native-link-modifier-verbatim-rustc to rmake
This commit is contained in:
parent
8ece5ce319
commit
5f2b47fcb6
3 changed files with 44 additions and 13 deletions
|
@ -143,7 +143,6 @@ run-make/mixing-libs/Makefile
|
||||||
run-make/msvc-opt-minsize/Makefile
|
run-make/msvc-opt-minsize/Makefile
|
||||||
run-make/native-link-modifier-bundle/Makefile
|
run-make/native-link-modifier-bundle/Makefile
|
||||||
run-make/native-link-modifier-verbatim-linker/Makefile
|
run-make/native-link-modifier-verbatim-linker/Makefile
|
||||||
run-make/native-link-modifier-verbatim-rustc/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
|
||||||
run-make/no-builtins-attribute/Makefile
|
run-make/no-builtins-attribute/Makefile
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
include ../tools.mk
|
|
||||||
|
|
||||||
all:
|
|
||||||
# Verbatim allows specify precise name.
|
|
||||||
$(RUSTC) upstream_native_dep.rs --crate-type=staticlib -o $(TMPDIR)/upstream_some_strange_name.ext
|
|
||||||
$(RUSTC) rust_dep.rs -l static:+verbatim=upstream_some_strange_name.ext --crate-type rlib
|
|
||||||
|
|
||||||
# With verbatim any other name cannot be used (upstream).
|
|
||||||
$(RUSTC) upstream_native_dep.rs --crate-type=staticlib -o $(TMPDIR)/libupstream_native_dep.a
|
|
||||||
$(RUSTC) upstream_native_dep.rs --crate-type=staticlib -o $(TMPDIR)/upstream_native_dep.a
|
|
||||||
$(RUSTC) upstream_native_dep.rs --crate-type=staticlib -o $(TMPDIR)/upstream_native_dep.lib
|
|
||||||
$(RUSTC) rust_dep.rs -l static:+verbatim=upstream_native_dep --crate-type rlib 2>&1 | $(CGREP) "upstream_native_dep"
|
|
44
tests/run-make/native-link-modifier-verbatim-rustc/rmake.rs
Normal file
44
tests/run-make/native-link-modifier-verbatim-rustc/rmake.rs
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
// `verbatim` is a native link modifier that forces rustc to only accept libraries with
|
||||||
|
// a specified name. This test checks that this modifier works as intended.
|
||||||
|
// See https://github.com/rust-lang/rust/issues/99425
|
||||||
|
|
||||||
|
use run_make_support::rustc;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
// Verbatim allows for the specification of a precise name - in this case, the unconventional ".ext" extension.
|
||||||
|
rustc()
|
||||||
|
.input("upstream_native_dep.rs")
|
||||||
|
.crate_type("staticlib")
|
||||||
|
.output("upstream_some_strange_name.ext")
|
||||||
|
.run();
|
||||||
|
rustc()
|
||||||
|
.input("rust_dep.rs")
|
||||||
|
.crate_type("rlib")
|
||||||
|
.arg("-lstatic:+verbatim=upstream_some_strange_name.ext")
|
||||||
|
.run();
|
||||||
|
|
||||||
|
// This section voluntarily avoids using static_lib_name helpers to be verbatim.
|
||||||
|
// With verbatim, even these common library names are refused - it wants upstream_native_dep without
|
||||||
|
// any file extensions.
|
||||||
|
rustc()
|
||||||
|
.input("upstream_native_dep.rs")
|
||||||
|
.crate_type("staticlib")
|
||||||
|
.output("libupstream_native_dep.a")
|
||||||
|
.run();
|
||||||
|
rustc()
|
||||||
|
.input("upstream_native_dep.rs")
|
||||||
|
.crate_type("staticlib")
|
||||||
|
.output("upstream_native_dep.a")
|
||||||
|
.run();
|
||||||
|
rustc()
|
||||||
|
.input("upstream_native_dep.rs")
|
||||||
|
.crate_type("staticlib")
|
||||||
|
.output("upstream_native_dep.lib")
|
||||||
|
.run();
|
||||||
|
rustc()
|
||||||
|
.input("rust_dep.rs")
|
||||||
|
.crate_type("rlib")
|
||||||
|
.arg("-lstatic:+verbatim=upstream_native_dep")
|
||||||
|
.run_fail()
|
||||||
|
.assert_stderr_contains("upstream_native_dep");
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue