https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78478
--- Comment #15 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Joel Sherrill from comment #14) > (In reply to H.J. Lu from comment #13) > > The problem is config/i386/rtemself.h has > > > > #define LONG_DOUBLE_TYPE_SIZE (TARGET_80387 ? 80 : 64) > > > > XFmode isn't available with -msoft-float even when -mlong-double-80 is used. > > IA MCU defaults long double to double and XFmode is available with > > -mlong-double-80. > > I had no idea how that got there so did a git blame. > > 8a3edb334 (uros 2013-11-05 16:08:30 +0000 31) > 8a3edb334 (uros 2013-11-05 16:08:30 +0000 32) #undef LONG_DOUBLE_TYPE_SIZE > 8a3edb334 (uros 2013-11-05 16:08:30 +0000 33) #define > LONG_DOUBLE_TYPE_SIZE (TARGET_80387 ? 80 : 64) I don't remember the reason, but the patch was proposed in [1] [1] https://gcc.gnu.org/ml/gcc-patches/2013-11/msg00426.html > Anyway, removing that let it get to libgfortran for i386-rtems and fail with > this: You need to edit libgfortran/configure.host to prevent # x86 asm should be used instead of glibc, since glibc doesn't support # the x86 denormal exception. case "${host_cpu}" in i?86 | x86_64) fpu_host='fpu-387' ieee_support='yes' ;; esac from redefining default fpu_host='fpu-generic' and ieee_support='no'.