// `-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(); }