From aaee0709b30e00ba427a23283b3cb02935e28df4 Mon Sep 17 00:00:00 2001 From: Marko Mijalkovic Date: Thu, 7 May 2020 14:42:01 -0400 Subject: [PATCH] Fix building libcore for the Sony PSP Building the MIPS MSA module for non-fp64 targets fails with an LLVM error. This commit blacklists PSP targets from MSA support in order to fix building libcore. --- library/stdarch/crates/core_arch/src/mips/mod.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/library/stdarch/crates/core_arch/src/mips/mod.rs b/library/stdarch/crates/core_arch/src/mips/mod.rs index efde97f4df76..39aee9911b47 100644 --- a/library/stdarch/crates/core_arch/src/mips/mod.rs +++ b/library/stdarch/crates/core_arch/src/mips/mod.rs @@ -1,7 +1,12 @@ //! MIPS -mod msa; -pub use self::msa::*; +// Building this module (even if unused) for non-fp64 targets such as the Sony +// PSP fails with an LLVM error. There doesn't seem to be a good way to detect +// fp64 support as it is sometimes implied by the target cpu, so +// `#[cfg(target_feature = "fp64")]` will unfortunately not work. This is a +// fairly conservative workaround that only disables MSA intrinsics for the PSP. +#[cfg(not(target_os = "psp"))] mod msa; +#[cfg(not(target_os = "psp"))] pub use self::msa::*; #[cfg(test)] use stdarch_test::assert_instr;