about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJerry Wang <jerrylwang123@gmail.com>2024-07-15 19:52:22 -0400
committerJerry Wang <jerrylwang123@gmail.com>2024-07-17 06:49:23 -0400
commiteea6502dcb91942785b1d5cb8fea74c41bcc3f32 (patch)
tree793206b920e2273807b301ce70f30616b13126ec
parentec6e07b09d0c499f4f3233f04826ecf2ce77800b (diff)
downloadrust-eea6502dcb91942785b1d5cb8fea74c41bcc3f32.tar.gz
rust-eea6502dcb91942785b1d5cb8fea74c41bcc3f32.zip
Use `llvm-readobj` for `run-make/crate-hash-rustc-version`
-rw-r--r--tests/run-make/crate-hash-rustc-version/rmake.rs18
1 files changed, 14 insertions, 4 deletions
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.