From c01c6ceb876f08b931ee9aa47471d506c11aa994 Mon Sep 17 00:00:00 2001 From: Madhav Madhusoodanan Date: Sun, 4 May 2025 23:15:35 +0530 Subject: [PATCH] fix: aarch64_be issues wthin compilation --- .../crates/intrinsic-test/src/arm/functions.rs | 2 +- .../crates/intrinsic-test/src/common/compile_c.rs | 15 +++++++++------ .../src/common/intrinsic_helpers.rs | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/library/stdarch/crates/intrinsic-test/src/arm/functions.rs b/library/stdarch/crates/intrinsic-test/src/arm/functions.rs index f021f861c211..a60a02cd596b 100644 --- a/library/stdarch/crates/intrinsic-test/src/arm/functions.rs +++ b/library/stdarch/crates/intrinsic-test/src/arm/functions.rs @@ -185,7 +185,7 @@ fn compile_c_arm( * does not work as it gets caught up with `#include_next ` * not existing... */ - if target == "aarch64_be-unknown-linux-gnu" { + if target.contains("aarch64_be") { command = command .set_linker( cxx_toolchain_dir.unwrap_or("").to_string() + "/bin/aarch64_be-none-linux-gnu-g++", diff --git a/library/stdarch/crates/intrinsic-test/src/common/compile_c.rs b/library/stdarch/crates/intrinsic-test/src/common/compile_c.rs index b38e8b1499a7..5fe700695b68 100644 --- a/library/stdarch/crates/intrinsic-test/src/common/compile_c.rs +++ b/library/stdarch/crates/intrinsic-test/src/common/compile_c.rs @@ -85,7 +85,6 @@ impl CompilationCommandBuilder { pub fn set_linker(mut self, linker: String) -> Self { self.linker = Some(linker); - self.output += ".o"; self } @@ -106,12 +105,16 @@ impl CompilationCommandBuilder { let flags = std::env::var("CPPFLAGS").unwrap_or("".into()); let project_root = self.project_root.unwrap_or(String::new()); let project_root_str = project_root.as_str(); + let mut output = self.output.clone(); + if self.linker.is_some() { + output += ".o" + }; let mut command = format!( "{} {flags} -march={arch_flags} \ -O{} \ -o {project_root}/{} \ {project_root}/{}.cpp", - self.compiler, self.optimization, self.output, self.input, + self.compiler, self.optimization, output, self.input, ); command = command + " " + self.extra_flags.join(" ").as_str(); @@ -133,19 +136,19 @@ impl CompilationCommandBuilder { + include_args.as_str() + " && " + linker + + " " + project_root_str + "/" - + self.output.as_str() + + &output + " -o " + project_root_str + "/" - + self.output.strip_suffix(".o").unwrap() + + &self.output + " && rm " + project_root_str + "/" - + self.output.as_str(); + + &output; } - command } } diff --git a/library/stdarch/crates/intrinsic-test/src/common/intrinsic_helpers.rs b/library/stdarch/crates/intrinsic-test/src/common/intrinsic_helpers.rs index 473585c8149d..5cb190e6bf6d 100644 --- a/library/stdarch/crates/intrinsic-test/src/common/intrinsic_helpers.rs +++ b/library/stdarch/crates/intrinsic-test/src/common/intrinsic_helpers.rs @@ -356,7 +356,7 @@ pub trait IntrinsicTypeDefinition: BaseIntrinsicTypeDefinition { #[macro_export] macro_rules! base_intrinsictype_trait_def_macro { ($T:ident) => { - use crate::common::intrinsic_types::IntrinsicType; + use crate::common::intrinsic_helpers::IntrinsicType; #[derive(Debug, Clone, PartialEq)] pub struct $T(pub IntrinsicType);