rewrite mingw-export-call-convention to rmake
This commit is contained in:
parent
9dff8a33e1
commit
a2ed16cc06
@ -110,7 +110,6 @@ run-make/manual-link/Makefile
|
|||||||
run-make/many-crates-but-no-match/Makefile
|
run-make/many-crates-but-no-match/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/mingw-export-call-convention/Makefile
|
|
||||||
run-make/missing-crate-dependency/Makefile
|
run-make/missing-crate-dependency/Makefile
|
||||||
run-make/mixing-libs/Makefile
|
run-make/mixing-libs/Makefile
|
||||||
run-make/msvc-opt-minsize/Makefile
|
run-make/msvc-opt-minsize/Makefile
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
include ../tools.mk
|
|
||||||
|
|
||||||
# only-windows-gnu
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(RUSTC) foo.rs
|
|
||||||
# FIXME: we should make sure __stdcall calling convention is used here
|
|
||||||
# but that only works with LLD right now
|
|
||||||
nm -g "$(call IMPLIB,foo)" | $(CGREP) bar
|
|
13
tests/run-make/mingw-export-call-convention/rmake.rs
Normal file
13
tests/run-make/mingw-export-call-convention/rmake.rs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// On windows-gnu, symbol exporting used to fail to export names
|
||||||
|
// with no_mangle. #72049 brought this feature up to par with msvc,
|
||||||
|
// and this test checks that the symbol "bar" is successfully exported.
|
||||||
|
// See https://github.com/rust-lang/rust/issues/50176
|
||||||
|
|
||||||
|
//@ only-x86_64-pc-windows-gnu
|
||||||
|
|
||||||
|
use run_make_support::{llvm_readobj, rustc};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
rustc().input("foo.rs").run();
|
||||||
|
llvm_readobj().arg("--all").input("libfoo.dll.a").run().assert_stdout_contains("bar");
|
||||||
|
}
|
@ -5,7 +5,9 @@
|
|||||||
// checks that no full file paths are exposed and that the override flag is respected.
|
// checks that no full file paths are exposed and that the override flag is respected.
|
||||||
// See https://github.com/rust-lang/rust/pull/121297
|
// See https://github.com/rust-lang/rust/pull/121297
|
||||||
|
|
||||||
//@ only-windows
|
//@ only-x86_64-pc-windows-msvc
|
||||||
|
|
||||||
|
use run_make_support::{bin_name, invalid_utf8_contains, invalid_utf8_not_contains, run, rustc};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
// Test that we don't have the full path to the PDB file in the binary
|
// Test that we don't have the full path to the PDB file in the binary
|
||||||
@ -16,11 +18,11 @@ fn main() {
|
|||||||
.crate_type("bin")
|
.crate_type("bin")
|
||||||
.arg("-Cforce-frame-pointers")
|
.arg("-Cforce-frame-pointers")
|
||||||
.run();
|
.run();
|
||||||
invalid_utf8_contains(bin_name("my_crate_name"), "my_crate_name.pdb");
|
invalid_utf8_contains(&bin_name("my_crate_name"), "my_crate_name.pdb");
|
||||||
invalid_utf8_not_contains(bin_name("my_crate_name"), r#"\my_crate_name.pdb"#);
|
invalid_utf8_not_contains(&bin_name("my_crate_name"), r#"\my_crate_name.pdb"#);
|
||||||
// Test that backtraces still can find debuginfo by checking that they contain symbol names and
|
// Test that backtraces still can find debuginfo by checking that they contain symbol names and
|
||||||
// source locations.
|
// source locations.
|
||||||
let out = run(bin_name(my_crate_name));
|
let out = run(&bin_name("my_crate_name"));
|
||||||
out.assert_stdout_contains("my_crate_name::fn_in_backtrace");
|
out.assert_stdout_contains("my_crate_name::fn_in_backtrace");
|
||||||
out.assert_stdout_contains("main.rs:15");
|
out.assert_stdout_contains("main.rs:15");
|
||||||
// Test that explicitly passed `-Clink-arg=/PDBALTPATH:...` is respected
|
// Test that explicitly passed `-Clink-arg=/PDBALTPATH:...` is respected
|
||||||
@ -32,6 +34,6 @@ fn main() {
|
|||||||
.link_arg("/PDBALTPATH:abcdefg.pdb")
|
.link_arg("/PDBALTPATH:abcdefg.pdb")
|
||||||
.arg("-Cforce-frame-pointers")
|
.arg("-Cforce-frame-pointers")
|
||||||
.run();
|
.run();
|
||||||
invalid_utf8_contains(bin_name("my_crate_name"), "abcdefg.pdb");
|
invalid_utf8_contains(&bin_name("my_crate_name"), "abcdefg.pdb");
|
||||||
invalid_utf8_not_contains(bin_name("my_crate_name"), "my_crate_name.pdb");
|
invalid_utf8_not_contains(&bin_name("my_crate_name"), "my_crate_name.pdb");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user