diff options
| author | James Barford-Evans <james.barford-evans@arm.com> | 2025-02-11 15:36:05 +0000 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2025-02-24 11:04:20 +0000 |
| commit | bec322f99059bdbccd68cf83a976de343f97bf31 (patch) | |
| tree | 6315c82d70ff752f6f0f2b4cf343a7a73d355bc2 /library/stdarch/crates/intrinsic-test/src/main.rs | |
| parent | 443d1cdbf07f03df3ba18c6f797c21a022147cf6 (diff) | |
| download | rust-bec322f99059bdbccd68cf83a976de343f97bf31.tar.gz rust-bec322f99059bdbccd68cf83a976de343f97bf31.zip | |
fix test runner for armv7
Diffstat (limited to 'library/stdarch/crates/intrinsic-test/src/main.rs')
| -rw-r--r-- | library/stdarch/crates/intrinsic-test/src/main.rs | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/library/stdarch/crates/intrinsic-test/src/main.rs b/library/stdarch/crates/intrinsic-test/src/main.rs index 9f6b6bcb280..d1881e3a947 100644 --- a/library/stdarch/crates/intrinsic-test/src/main.rs +++ b/library/stdarch/crates/intrinsic-test/src/main.rs @@ -201,10 +201,10 @@ fn main() {{ {passes} }} "#, - target_arch = if target.starts_with("aarch64") { - "aarch64" - } else { + target_arch = if target.contains("v7") { "arm" + } else { + "aarch64" }, arglists = intrinsic .arguments @@ -226,10 +226,10 @@ fn compile_c( cxx_toolchain_dir: Option<&str>, ) -> bool { let flags = std::env::var("CPPFLAGS").unwrap_or("".into()); - let arch_flags = if target.starts_with("aarch64") { - "-march=armv8.6-a+crypto+sha3+crc+dotprod" - } else { + let arch_flags = if target.contains("v7") { "-march=armv8.6-a+crypto+crc+dotprod" + } else { + "-march=armv8.6-a+crypto+sha3+crc+dotprod" }; let intrinsic_name = &intrinsic.name; @@ -394,7 +394,6 @@ path = "{intrinsic}/main.rs""#, /* If there has been a linker explicitly set from the command line then * we want to set it via setting it in the RUSTFLAGS*/ - let mut rust_flags = "-Cdebuginfo=0".to_string(); let cargo_command = format!( "cargo {toolchain} build --target {target} --release", @@ -403,12 +402,12 @@ path = "{intrinsic}/main.rs""#, ); let mut command = Command::new("sh"); - command .current_dir("rust_programs") .arg("-c") .arg(cargo_command); + let mut rust_flags = "-Cdebuginfo=0".to_string(); if let Some(linker) = linker { rust_flags.push_str(" -C linker="); rust_flags.push_str(linker); @@ -418,6 +417,7 @@ path = "{intrinsic}/main.rs""#, } command.env("RUSTFLAGS", rust_flags); + println!("{:?}", command); let output = command.output(); if let Ok(output) = output { @@ -552,8 +552,8 @@ fn main() { std::process::exit(3); } - if let Some(ref _toolchain) = toolchain { - if !compare_outputs(&intrinsics, &c_runner, target) { + if let Some(ref toolchain) = toolchain { + if !compare_outputs(&intrinsics, toolchain, &c_runner, target) { std::process::exit(1) } } @@ -565,7 +565,12 @@ enum FailureReason { Difference(String, String, String), } -fn compare_outputs(intrinsics: &Vec<Intrinsic>, runner: &str, target: &str) -> bool { +fn compare_outputs( + intrinsics: &Vec<Intrinsic>, + toolchain: &str, + runner: &str, + target: &str, +) -> bool { let intrinsics = intrinsics .par_iter() .filter_map(|intrinsic| { @@ -578,15 +583,29 @@ fn compare_outputs(intrinsics: &Vec<Intrinsic>, runner: &str, target: &str) -> b )) .output(); - let rust = Command::new("sh") - .arg("-c") - .arg(format!( - "{runner} ./rust_programs/target/{target}/release/{intrinsic}", - runner = runner, - target = target, - intrinsic = intrinsic.name, - )) - .output(); + let rust = if target != "aarch64_be-none-linux-gnu" { + Command::new("sh") + .current_dir("rust_programs") + .arg("-c") + .arg(format!( + "cargo {toolchain} run --target {target} --bin {intrinsic} --release", + intrinsic = intrinsic.name, + toolchain = toolchain, + target = target + )) + .env("RUSTFLAGS", "-Cdebuginfo=0") + .output() + } else { + Command::new("sh") + .arg("-c") + .arg(format!( + "{runner} ./rust_programs/target/{target}/release/{intrinsic}", + runner = runner, + target = target, + intrinsic = intrinsic.name, + )) + .output() + }; let (c, rust) = match (c, rust) { (Ok(c), Ok(rust)) => (c, rust), |
