From: Saurabh Jha Date: Mon, 9 Mar 2026 19:54:48 +0000 (+0000) Subject: aarch64: mingw: Disable _Float128 emulation X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b95bfa1ff2cf4ae625955fe230f16a2ee55270a2;p=thirdparty%2Fgcc.git aarch64: mingw: Disable _Float128 emulation The Windows ABI doesn't support _Float128: https://learn.microsoft.com/en-us/cpp/build/ieee-floating-point-representation. While it can be emulated for this target, the current implementation prevents fortran from being built with this emulation. This patch disables _Float128 emulation for aarch64-w64-mingw32 target. This enables fortran to be built with no additional changes. gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_scalar_mode_supported_p): Only return true on TFmode if TARGET_LONG_DOUBLE_128 is set. libgcc/ChangeLog: * config.host: Disable soft floating point. Co-Authored-By: Evgeny Karpov --- diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 1902a4ee9fa..197d4f27269 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -30400,7 +30400,7 @@ aarch64_scalar_mode_supported_p (scalar_mode mode) return default_decimal_float_supported_p (); if (mode == TFmode) - return true; + return TARGET_LONG_DOUBLE_128 != 0; return ((mode == HFmode || mode == BFmode) ? true diff --git a/libgcc/config.host b/libgcc/config.host index 7e5c99420f8..ac10ccc4340 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -468,7 +468,7 @@ aarch64-*-mingw*) tmake_file="${tmake_file} ${cpu_type}/t-aarch64" tmake_file="${tmake_file} ${cpu_type}/t-mingw" tmake_file="${tmake_file} ${cpu_type}/t-lse" - tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm" + tmake_file="${tmake_file} t-crtfm" ;; alpha*-*-linux*) tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm alpha/t-linux"