https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123202
--- Comment #14 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- > --- Comment #11 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot > Uni-Bielefeld.DE> --- >> --- Comment #8 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot >> Uni-Bielefeld.DE> --- > >>> We can skip on unsupported and !hard_float targets then. >> >> Good: I'll see if I can implement IeeeFlagsSupport on SPARC for real >> if/when I get to it. > > I've got something that works on Linux/sparc64, so that part seems to be > reasonable. However, the std_math_hardware.d test FAILs on > Solaris/SPARC. The same is true for Solaris/x86, so something else is > amiss. Any suggestion where to look? I think I've got it, as in the attached patch. It fixes libphobos.phobos/std_math_hardware.d on 32 and 64-bit Solaris/SPARC, and also on 32 and 64-bit Linux/sparc64. The 32-bit Linux test encounters another issue, though: reported as PR d/123288. It took me a bit of wrapping my head around this, but here it goes. It has the nice side effect of also fixing the failure on Solaris/x86. Both architectures have the same issue: unlike Linux, the FE_INEXACT etc. values in <fenv.h> don't match the hardware bits, and neither do the FE_TONEAREST etc. ones. Once this is fixed, the Solaris/x86 test PASSes. The resulting patch is on top of your previous one, re-enabling libphobos.phobos/std_math_hardware.d testing on SPARC. I'll run full Solaris and Linux/sparc64 bootstraps tonight, but am reasonably confident that those will pass, too.
