Skip to content

Commit

Permalink
Auto merge of rust-lang#130959 - tgross35:f16-f128-only-disable-win-g…
Browse files Browse the repository at this point in the history
…nu, r=<try>

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
  • Loading branch information
bors committed Sep 27, 2024
2 parents fa724e5 + 83d56df commit ee9a311
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions library/std/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,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,
// 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,
Expand All @@ -116,10 +116,9 @@ fn main() {
("riscv32" | "riscv64", _) => false,
// Most OSs are missing `__extendhfsf` and `__truncsfhf`
(_, "linux" | "macos") => true,
// Almost all OSs besides Linux and MacOS are missing symbols until compiler-builtins can
// be updated. <https://github.com/rust-lang/rust/pull/125016> will get some of these, the
// next CB update should get the rest.
_ => false,
// todo: only for testing, this line will wind up changed as part of
// <https://github.com/rust-lang/rust/pull/129385>.
_ => true,
};

let has_reliable_f128 = match (target_arch.as_str(), target_os.as_str()) {
Expand All @@ -135,10 +134,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,
};

Expand Down

0 comments on commit ee9a311

Please sign in to comment.