diff options
| author | Jerry Wang <jerrylwang123@gmail.com> | 2024-07-15 19:52:22 -0400 |
|---|---|---|
| committer | Jerry Wang <jerrylwang123@gmail.com> | 2024-07-17 06:49:23 -0400 |
| commit | eea6502dcb91942785b1d5cb8fea74c41bcc3f32 (patch) | |
| tree | 793206b920e2273807b301ce70f30616b13126ec | |
| parent | ec6e07b09d0c499f4f3233f04826ecf2ce77800b (diff) | |
| download | rust-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.rs | 18 |
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. |
