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.

Reply via email to