diff options
-rw-r--r-- | libgo/Makefile.am | 1 | ||||
-rw-r--r-- | libgo/Makefile.in | 1 | ||||
-rwxr-xr-x | libgo/configure | 5 | ||||
-rw-r--r-- | libgo/configure.ac | 8 | ||||
-rw-r--r-- | libgo/go/math/all_test.go | 10 |
5 files changed, 12 insertions, 13 deletions
diff --git a/libgo/Makefile.am b/libgo/Makefile.am index 88be5db..531f8f0 100644 --- a/libgo/Makefile.am +++ b/libgo/Makefile.am @@ -1138,6 +1138,7 @@ $(foreach package,$(GOTOOL_PACKAGES),$(eval $(call PACKAGE_template,$(package))) # Pass -ffp-contract=off, or 386-specific options, when building the # math package. MATH_FLAG is defined in configure.ac. math_lo_GOCFLAGS = $(MATH_FLAG) +math_check_GOCFLAGS = $(MATH_FLAG) # Add the generated file runtime_sysinfo.go to the runtime package. extra_go_files_runtime = runtime_sysinfo.go sigtab.go diff --git a/libgo/Makefile.in b/libgo/Makefile.in index 471a047..fbca83e 100644 --- a/libgo/Makefile.in +++ b/libgo/Makefile.in @@ -1175,6 +1175,7 @@ CHECK_DEPS = $(toolexeclibgo_DATA) $(toolexeclibgoarchive_DATA) \ # Pass -ffp-contract=off, or 386-specific options, when building the # math package. MATH_FLAG is defined in configure.ac. math_lo_GOCFLAGS = $(MATH_FLAG) +math_check_GOCFLAGS = $(MATH_FLAG) # Add the generated file runtime_sysinfo.go to the runtime package. extra_go_files_runtime = runtime_sysinfo.go sigtab.go diff --git a/libgo/configure b/libgo/configure index d0550c3..aba4dc3 100755 --- a/libgo/configure +++ b/libgo/configure @@ -15076,10 +15076,9 @@ fi $as_echo "$libgo_cv_c_fancymath" >&6; } MATH_FLAG= if test "$libgo_cv_c_fancymath" = yes; then - MATH_FLAG="-mfancy-math-387 -funsafe-math-optimizations -fno-math-errno" -else - MATH_FLAG="-ffp-contract=off" + MATH_FLAG="-mfancy-math-387" fi +MATH_FLAG="${MATH_FLAG} -ffp-contract=off -fno-math-errno -fno-trapping-math" CFLAGS_hold=$CFLAGS diff --git a/libgo/configure.ac b/libgo/configure.ac index c497e78..1264a1d 100644 --- a/libgo/configure.ac +++ b/libgo/configure.ac @@ -649,8 +649,7 @@ fi AC_SUBST(STRINGOPS_FLAG) dnl For x86 we want to compile the math library with -mfancy-math-387 -dnl -funsafe-math-optimizations so that we can use the builtin -dnl instructions directly. +dnl so that we can use the builtin instructions directly. AC_CACHE_CHECK([whether compiler supports -mfancy-math-387], [libgo_cv_c_fancymath], [CFLAGS_hold=$CFLAGS @@ -661,10 +660,9 @@ AC_COMPILE_IFELSE([int i;], CFLAGS=$CFLAGS_hold]) MATH_FLAG= if test "$libgo_cv_c_fancymath" = yes; then - MATH_FLAG="-mfancy-math-387 -funsafe-math-optimizations -fno-math-errno" -else - MATH_FLAG="-ffp-contract=off" + MATH_FLAG="-mfancy-math-387" fi +MATH_FLAG="${MATH_FLAG} -ffp-contract=off -fno-math-errno -fno-trapping-math" AC_SUBST(MATH_FLAG) CFLAGS_hold=$CFLAGS diff --git a/libgo/go/math/all_test.go b/libgo/go/math/all_test.go index 6682395..98437b0 100644 --- a/libgo/go/math/all_test.go +++ b/libgo/go/math/all_test.go @@ -128,7 +128,7 @@ var cbrt = []float64{ var ceil = []float64{ 5.0000000000000000e+00, 8.0000000000000000e+00, - 0.0000000000000000e+00, + Copysign(0, -1), -5.0000000000000000e+00, 1.0000000000000000e+01, 3.0000000000000000e+00, @@ -644,7 +644,7 @@ var tanh = []float64{ var trunc = []float64{ 4.0000000000000000e+00, 7.0000000000000000e+00, - -0.0000000000000000e+00, + Copysign(0, -1), -5.0000000000000000e+00, 9.0000000000000000e+00, 2.0000000000000000e+00, @@ -2134,7 +2134,7 @@ func TestCbrt(t *testing.T) { func TestCeil(t *testing.T) { for i := 0; i < len(vf); i++ { - if f := Ceil(vf[i]); ceil[i] != f { + if f := Ceil(vf[i]); !alike(ceil[i], f) { t.Errorf("Ceil(%g) = %g, want %g", vf[i], f, ceil[i]) } } @@ -2361,7 +2361,7 @@ func TestDim(t *testing.T) { func TestFloor(t *testing.T) { for i := 0; i < len(vf); i++ { - if f := Floor(vf[i]); floor[i] != f { + if f := Floor(vf[i]); !alike(floor[i], f) { t.Errorf("Floor(%g) = %g, want %g", vf[i], f, floor[i]) } } @@ -2884,7 +2884,7 @@ func TestTanh(t *testing.T) { func TestTrunc(t *testing.T) { for i := 0; i < len(vf); i++ { - if f := Trunc(vf[i]); trunc[i] != f { + if f := Trunc(vf[i]); !alike(trunc[i], f) { t.Errorf("Trunc(%g) = %g, want %g", vf[i], f, trunc[i]) } } |