Hello!
This patch enables support for the __float128 (TFmode) IEEE quad type in
libgcc on cygwin. It uses the same approach as for IA-32 on darwin.
With this patch the tests gcc.dg/torture/fp-int-convert-float128*.c pass
on cygwin. Previously the tests failed to link. See:
- http://gcc.gnu.org/ml/gcc-patches/2009-05/msg00959.html
- http://gcc.gnu.org/ml/gcc-patches/2009-05/msg01028.html
soft-fp is added for other x86 targets in "miscellaneous part" of
config.gcc. Assuming that soft-fp also works for mingw (it is trivial to
add soft-fp nowadays ;), we can simply add:
i[34567]86-*-pe | i[34567]86-*-cygwin* | i[34567]86-*-mingw* |
x86_64-*-mingw*)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
to the "miscellaneous part" of config.gcc.
i386/32/t-fprules-softfp actually filters out TImode conversions that
are not valid on x86_32. Please note, that there is no
i386/64/t-fprules-softp.
+ ;;
+i[34567]86-*-mingw*)
+ extra_parts="crtbegin.o crtend.o crtfastmath.o"
tmake_file="i386/t-cygming i386/t-crtfm"
;;
x86_64-*-mingw*)
Please add windows targets to existing target groups. It will just work
out-of-the-box.
I have attached (untested) patch that implements suggested approaches.
I'm not able to test it on windows targets. If it bootstraps OK for you,
then it is OK for mainline SVN. Technically, testsuite failures are all
regressions, but this patch enables new functionality on cygwin targets,
so you will have to discuss backport to 4.4 with cygwin maintainers.