Hi Collin, you wrote on 2025-04-25: > > But that mingw change is likely to not work at all. Because gcc can > > emit instructions that use the old i386/387 unit: > > (a) When the program uses 'long double' values, > > (b) When the option -mfpmath=387 is used, cf. > > https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html > > > > So, the first thing is to try out some uses of <fenv.h> with (a) or (b), > > and see whether that works. > > I'll have a look. Thanks!
On the GitHub CI machines, I now see compilation failures on mingw: In file included from ../../gllib/fenv-env.c:26: ../../gllib/fenv-env.c: In function 'rpl_fegetenv': ../../gllib/verify.h:215:41: error: static assertion failed: "verify (sizeof (fenv_t) >= sizeof (x86_387_fenv_t))" 215 | # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) | ^~~~~~~~~~~~~~ ../../gllib/verify.h:348:20: note: in expansion of macro '_GL_VERIFY' 348 | # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) | ^~~~~~~~~~ ../../gllib/fenv-env.c:172:3: note: in expansion of macro 'verify' 172 | verify (sizeof (fenv_t) >= sizeof (x86_387_fenv_t)); | ^~~~~~ ../../gllib/fenv-env.c: In function 'rpl_fesetenv': ../../gllib/verify.h:215:41: error: static assertion failed: "verify (sizeof (fenv_t) >= sizeof (x86_387_fenv_t))" 215 | # define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) | ^~~~~~~~~~~~~~ ../../gllib/verify.h:348:20: note: in expansion of macro '_GL_VERIFY' 348 | # define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) | ^~~~~~~~~~ ../../gllib/fenv-env.c:301:3: note: in expansion of macro 'verify' 301 | verify (sizeof (fenv_t) >= sizeof (x86_387_fenv_t)); | ^~~~~~ make[4]: *** [Makefile:12062: fenv-env.o] Error 1 This means that the mingw people made a release with that change included, and it is active in the GitHub CI environments. I want to get this fixed ASAP, but I don't want to duplicate work that you already did. How far did you get on this topic? Bruno