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.

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)
 

Reply via email to