Migrate run-make/cdylib
to rmake.rs
This commit is contained in:
parent
b0d0cc6590
commit
8742bf375b
@ -14,7 +14,6 @@ run-make/c-unwind-abi-catch-panic/Makefile
|
|||||||
run-make/cat-and-grep-sanity-check/Makefile
|
run-make/cat-and-grep-sanity-check/Makefile
|
||||||
run-make/cdylib-dylib-linkage/Makefile
|
run-make/cdylib-dylib-linkage/Makefile
|
||||||
run-make/cdylib-fewer-symbols/Makefile
|
run-make/cdylib-fewer-symbols/Makefile
|
||||||
run-make/cdylib/Makefile
|
|
||||||
run-make/codegen-options-parsing/Makefile
|
run-make/codegen-options-parsing/Makefile
|
||||||
run-make/comment-section/Makefile
|
run-make/comment-section/Makefile
|
||||||
run-make/compiler-lookup-paths-2/Makefile
|
run-make/compiler-lookup-paths-2/Makefile
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
# When the cdylib crate type was added as a variation of dylib, it needed a test to check its function.
|
|
||||||
# See https://github.com/rust-lang/rust/pull/33553
|
|
||||||
|
|
||||||
# ignore-cross-compile
|
|
||||||
include ../tools.mk
|
|
||||||
|
|
||||||
all: $(call RUN_BINFILE,foo)
|
|
||||||
$(call RUN,foo)
|
|
||||||
rm $(call DYLIB,foo)
|
|
||||||
$(RUSTC) foo.rs -C lto
|
|
||||||
$(call RUN,foo)
|
|
||||||
|
|
||||||
ifdef IS_MSVC
|
|
||||||
$(call RUN_BINFILE,foo): $(call DYLIB,foo)
|
|
||||||
$(CC) $(CFLAGS) foo.c $(TMPDIR)/foo.dll.lib $(call OUT_EXE,foo)
|
|
||||||
else
|
|
||||||
$(call RUN_BINFILE,foo): $(call DYLIB,foo)
|
|
||||||
$(CC) $(CFLAGS) foo.c -lfoo -o $(call RUN_BINFILE,foo) -L $(TMPDIR)
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(call DYLIB,foo):
|
|
||||||
$(RUSTC) bar.rs
|
|
||||||
$(RUSTC) foo.rs
|
|
36
tests/run-make/cdylib/rmake.rs
Normal file
36
tests/run-make/cdylib/rmake.rs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// This test tries to check that basic cdylib libraries can be compiled and linked successfully
|
||||||
|
// with C code, that the cdylib itself can depend on another rlib, and that the library can be built
|
||||||
|
// with LTO.
|
||||||
|
//
|
||||||
|
// - `bar.rs` is a rlib
|
||||||
|
// - `foo.rs` is a cdylib that relies on an extern crate `bar` and defines two `extern "C"`
|
||||||
|
// functions:
|
||||||
|
// - `foo()` which calls `bar::bar()`.
|
||||||
|
// - `bar()` which implements basic addition.
|
||||||
|
|
||||||
|
//@ ignore-cross-compile
|
||||||
|
|
||||||
|
use std::fs::remove_file;
|
||||||
|
|
||||||
|
use run_make_support::{cc, dynamic_lib, is_msvc, run, rustc, tmp_dir};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
rustc().input("bar.rs").run();
|
||||||
|
rustc().input("foo.rs").run();
|
||||||
|
|
||||||
|
if is_msvc() {
|
||||||
|
cc().input("foo.c").arg(tmp_dir().join("foo.dll.lib")).out_exe("foo").run();
|
||||||
|
} else {
|
||||||
|
cc().input("foo.c")
|
||||||
|
.arg("-lfoo")
|
||||||
|
.output(tmp_dir().join("foo"))
|
||||||
|
.library_search_path(tmp_dir())
|
||||||
|
.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
run("foo");
|
||||||
|
remove_file(dynamic_lib("foo")).unwrap();
|
||||||
|
|
||||||
|
rustc().input("foo.rs").arg("-Clto").run();
|
||||||
|
run("foo");
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user