diff options
| author | Madhav Madhusoodanan <f20200049@pilani.bits-pilani.ac.in> | 2025-05-04 23:15:35 +0530 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2025-05-27 23:27:38 +0000 |
| commit | c01c6ceb876f08b931ee9aa47471d506c11aa994 (patch) | |
| tree | 69cee5cf18414f8ba104a37c50974027189fcfdc | |
| parent | 9b4768921f2d21f564b9dd28ca7510c1f5fa4d5a (diff) | |
| download | rust-c01c6ceb876f08b931ee9aa47471d506c11aa994.tar.gz rust-c01c6ceb876f08b931ee9aa47471d506c11aa994.zip | |
fix: aarch64_be issues wthin compilation
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 f021f861c21..a60a02cd596 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 <stdlib.h>` * 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 b38e8b1499a..5fe700695b6 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 473585c8149..5cb190e6bf6 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); |
