about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-10-01 10:48:29 +0000
committerbors <bors@rust-lang.org>2024-10-01 10:48:29 +0000
commitc4f7176501a7d3c19c230b8c9111b2d39142f83a (patch)
tree74caf8f608b31680c791e08858002fdac7c1c7ca
parent21aa500bb050a6aca30d80b1eeb0cb4e1974d57d (diff)
parent6b09a93566cc891a56a8f9bb68a25d16ca4d91d3 (diff)
downloadrust-c4f7176501a7d3c19c230b8c9111b2d39142f83a.tar.gz
rust-c4f7176501a7d3c19c230b8c9111b2d39142f83a.zip
Auto merge of #130959 - tgross35:f16-f128-only-disable-win-gnu, r=joboet
Enable `f16` tests on non-GNU Windows

There is a MinGW ABI bug that prevents `f16` and `f128` from being usable on `windows-gnu` targets. This does not affect MSVC; however, we have `f16` and `f128` tests disabled on all Windows targets.

Update the gating to only affect `windows-gnu`, which means `f16` tests will be enabled. There is no effect for `f128` since the default fallback is `false`.

try-job: x86_64-msvc
try-job: i686-msvc
-rw-r--r--library/std/build.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/library/std/build.rs b/library/std/build.rs
index 5da470c6462..7d37d4e9d7d 100644
--- a/library/std/build.rs
+++ b/library/std/build.rs
@@ -101,7 +101,7 @@ fn main() {
         // Unsupported <https://github.com/llvm/llvm-project/issues/94434>
         ("arm64ec", _) => false,
         // MinGW ABI bugs <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054>
-        ("x86_64", "windows") => false,
+        ("x86_64", "windows") if target_env == "gnu" => false,
         // Infinite recursion <https://github.com/llvm/llvm-project/issues/97981>
         ("csky", _) => false,
         ("hexagon", _) => false,
@@ -129,10 +129,10 @@ fn main() {
         // ABI unsupported  <https://github.com/llvm/llvm-project/issues/41838>
         ("sparc", _) => false,
         // MinGW ABI bugs <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115054>
-        ("x86_64", "windows") => false,
+        ("x86_64", "windows") if target_env == "gnu" => false,
         // 64-bit Linux is about the only platform to have f128 symbols by default
         (_, "linux") if target_pointer_width == 64 => true,
-        // Same as for f16, except MacOS is also missing f128 symbols.
+        // Almost all OSs are missing symbol. compiler-builtins will have to add them.
         _ => false,
     };