| ... | ... | @@ -6639,6 +6639,19 @@ pub fn addCCArgs( |
| 6639 | 6639 | } |
| 6640 | 6640 | } |
| 6641 | 6641 | |
| 6642 | if (target.cpu.arch.isPowerPC()) { |
| 6643 | // We do not -- and probably never will -- support the IBM 128-bit `long double` format. |
| 6644 | // LLVM and Clang also do not have complete support for it, producing wrong values in some |
| 6645 | // cases. So just enforce IEEE `long double` everywhere - either binary64 or binary128 |
| 6646 | // depending on what the OS/ABI requires. |
| 6647 | try argv.appendSlice(&.{ |
| 6648 | "-mabi=ieeelongdouble", |
| 6649 | // Clang has some truly goofy logic for emitting warnings about the |
| 6650 | // "current library" not supporting IEEE `long double`. |
| 6651 | "-Wno-unsupported-abi", |
| 6652 | }); |
| 6653 | } |
| 6654 | |
| 6642 | 6655 | // We might want to support -mfloat-abi=softfp for Arm and CSKY here in the future. |
| 6643 | 6656 | if (target_util.clangSupportsFloatAbiArg(target)) { |
| 6644 | 6657 | const fabi = @tagName(target.abi.float()); |