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 <evgeny.karpov@arm.com>
return default_decimal_float_supported_p ();
if (mode == TFmode)
- return true;
+ return TARGET_LONG_DOUBLE_128 != 0;
return ((mode == HFmode || mode == BFmode)
? true
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"