diff options
| author | Hans Kratz <hans@appfour.com> | 2021-09-07 20:36:30 +0200 |
|---|---|---|
| committer | Luca Barbato <luca.barbato@gmail.com> | 2021-09-08 19:14:13 +0200 |
| commit | f15c8515174f57acae0cb21c50d7eaf8adb9a856 (patch) | |
| tree | 5d8c7c170839cf8c221524fc66b56be15bf1392a /library/stdarch/crates/stdarch-test | |
| parent | 9e34c6d4c863016c7a429fb5615ad6690e89daef (diff) | |
| download | rust-f15c8515174f57acae0cb21c50d7eaf8adb9a856.tar.gz rust-f15c8515174f57acae0cb21c50d7eaf8adb9a856.zip | |
Use LLVM objdump on Macos ARM64 because it is not possible to enable TME support with otool
Diffstat (limited to 'library/stdarch/crates/stdarch-test')
| -rw-r--r-- | library/stdarch/crates/stdarch-test/src/disassembly.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/library/stdarch/crates/stdarch-test/src/disassembly.rs b/library/stdarch/crates/stdarch-test/src/disassembly.rs index 38ebce75f77..dd80b4ad831 100644 --- a/library/stdarch/crates/stdarch-test/src/disassembly.rs +++ b/library/stdarch/crates/stdarch-test/src/disassembly.rs @@ -67,6 +67,24 @@ pub(crate) fn disassemble_myself() -> HashSet<Function> { String::from_utf8_lossy(Vec::leak(output.stdout)) } else if cfg!(target_os = "windows") { panic!("disassembly unimplemented") + } else if cfg!(target_os = "macos") && cfg!(target_arch = "aarch64") { + // use LLVM objdump because it is not possible to enable TME support with otool + let objdump = env::var("OBJDUMP").unwrap_or_else(|_| "objdump".to_string()); + let output = Command::new(objdump.clone()) + .arg("--disassemble") + .arg("--no-show-raw-insn") + .arg("--mattr=+crc,+crypto,+tme") + .arg(&me) + .output() + .unwrap_or_else(|_| panic!("failed to execute objdump. OBJDUMP={}", objdump)); + println!( + "{}\n{}", + output.status, + String::from_utf8_lossy(&output.stderr) + ); + assert!(output.status.success()); + + String::from_utf8_lossy(Vec::leak(output.stdout)) } else if cfg!(target_os = "macos") { let output = Command::new("otool") .arg("-vt") |
