diff --git a/tests/run-make/crate-hash-rustc-version/rmake.rs b/tests/run-make/crate-hash-rustc-version/rmake.rs index 6418deb126b..97b3dd3931e 100644 --- a/tests/run-make/crate-hash-rustc-version/rmake.rs +++ b/tests/run-make/crate-hash-rustc-version/rmake.rs @@ -4,17 +4,27 @@ //@ ignore-cross-compile //@ only-unix -use run_make_support::{cmd, diff, dynamic_lib_name, is_darwin, run, run_fail, rustc}; +use run_make_support::llvm; +use run_make_support::{diff, dynamic_lib_name, is_darwin, run, run_fail, rustc}; + +fn llvm_readobj() -> llvm::LlvmReadobj { + let mut cmd = llvm::llvm_readobj(); + if is_darwin() { + cmd.symbols(); + } else { + cmd.dynamic_table(); + } + cmd +} fn main() { let flags = ["-Cprefer-dynamic", "-Csymbol-mangling-version=v0"]; - let nm_flag = if is_darwin() { [].as_slice() } else { ["-D"].as_slice() }; // a.rs is compiled to a dylib rustc().input("a.rs").crate_type("dylib").args(&flags).run(); // Store symbols - let symbols_before = cmd("nm").args(nm_flag).arg(dynamic_lib_name("a")).run().stdout_utf8(); + let symbols_before = llvm_readobj().arg(dynamic_lib_name("a")).run().stdout_utf8(); // b.rs is compiled to a binary rustc() @@ -35,7 +45,7 @@ fn main() { .run(); // After compiling with a different rustc version, store symbols again. - let symbols_after = cmd("nm").args(nm_flag).arg(dynamic_lib_name("a")).run().stdout_utf8(); + let symbols_after = llvm_readobj().arg(dynamic_lib_name("a")).run().stdout_utf8(); // As a sanity check, test if the symbols changed: // If the symbols are identical, there's been an error.