rust/tests/run-make/rlib-format-packed-bundled-libs-2/rmake.rs

29 lines
1.2 KiB
Rust

// `-Z packed_bundled_libs` is an unstable rustc flag that makes the compiler
// only require a native library and no supplementary object files to compile.
// This test simply checks that this flag can be passed alongside verbatim syntax
// in rustc flags without a compilation failure or the removal of expected symbols.
// See https://github.com/rust-lang/rust/pull/100101
use run_make_support::{llvm_ar, llvm_nm, rfs, rust_lib_name, rustc};
fn main() {
// Build a strangely named dependency.
rustc().input("native_dep.rs").crate_type("staticlib").output("native_dep.ext").run();
rustc().input("rust_dep.rs").crate_type("rlib").arg("-Zpacked_bundled_libs").run();
llvm_nm().input(rust_lib_name("rust_dep")).run().assert_stdout_contains_regex("U.*native_f1");
llvm_ar()
.arg("t")
.arg(rust_lib_name("rust_dep"))
.run()
.assert_stdout_contains("native_dep.ext");
// Ensure the compiler does not use files it should not be aware of.
rfs::remove_file("native_dep.ext");
rustc()
.input("main.rs")
.extern_("rust_dep", rust_lib_name("rust_dep"))
.arg("-Zpacked_bundled_libs")
.run();
}