Ian Lance Taylor <i...@google.com> writes: > The bug report http://golang.org/issue/7074 shows that math.Log2(1) > produces the wrong result on Aarch64, because the Go math package is > compiled to use a fused multiply-add instruction. This patch to the > libgo configure script will use -ffp-contract=off when compiling the > math package on processors other than x86. Bootstrapped and ran Go > testsuite on x86_64-unknown-linux-gnu, not that that tests much. > Committed to mainline.
Thanks for this! If you are willing to go into battle enough to argue that libgcc should also be compiled with -ffp-contract=off (I did not have the stomach for that fight) then we'll be down to 1 check-go failure on aarch64 (which is peano -- due to the absence of split/copyable stacks and should probably xfail). Cheers, mwh > Ian > > diff -r 76dbb6f77e3d libgo/configure.ac > --- a/libgo/configure.ac Tue Mar 11 12:53:06 2014 -0700 > +++ b/libgo/configure.ac Tue Mar 11 21:26:35 2014 -0700 > @@ -620,6 +620,8 @@ > MATH_FLAG= > if test "$libgo_cv_c_fancymath" = yes; then > MATH_FLAG="-mfancy-math-387 -funsafe-math-optimizations" > +else > + MATH_FLAG="-ffp-contract=off" > fi > AC_SUBST(MATH_FLAG) >