about summary refs log tree commit diff
path: root/library/std/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'library/std/build.rs')
-rw-r--r--library/std/build.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/library/std/build.rs b/library/std/build.rs
index 35a5977b6eb..fecdf2c3e1f 100644
--- a/library/std/build.rs
+++ b/library/std/build.rs
@@ -103,9 +103,9 @@ fn main() {
         ("arm64ec", _) => false,
         // MinGW ABI bugs <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054>
         ("x86_64", "windows") => false,
-        // x86 has ABI bugs that show up with optimizations. This should be partially fixed with
-        // the compiler-builtins update. <https://github.com/rust-lang/rust/issues/123885>
-        ("x86" | "x86_64", _) => false,
+        // Apple has a special ABI for `f16` that we do not yet support
+        // FIXME(builtins): fixed by <https://github.com/rust-lang/compiler-builtins/pull/675>
+        ("x86" | "x86_64", _) if target_vendor == "apple" => false,
         // Missing `__gnu_h2f_ieee` and `__gnu_f2h_ieee`
         ("powerpc" | "powerpc64", _) => false,
         // Missing `__gnu_h2f_ieee` and `__gnu_f2h_ieee`
@@ -140,17 +140,17 @@ fn main() {
         _ => false,
     };
 
-    // These are currently empty, but will fill up as some platforms move from completely
-    // unreliable to reliable basics but unreliable math.
+    // Configure platforms that have reliable basics but may have unreliable math.
 
     // LLVM is currenlty adding missing routines, <https://github.com/llvm/llvm-project/issues/93566>
     let has_reliable_f16_math = has_reliable_f16
         && match (target_arch.as_str(), target_os.as_str()) {
             // FIXME: Disabled on Miri as the intrinsics are not implemented yet.
             _ if is_miri => false,
-            // Currently nothing special. Hooray!
-            // This will change as platforms gain better better support for standard ops but math
-            // lags behind.
+            // x86 has a crash for `powi`: <https://github.com/llvm/llvm-project/issues/105747>
+            ("x86" | "x86_64", _) => false,
+            // Assume that working `f16` means working `f16` math for most platforms, since
+            // operations just go through `f32`.
             _ => true,
         };