aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgo/Makefile.am1
-rw-r--r--libgo/Makefile.in1
-rwxr-xr-xlibgo/configure5
-rw-r--r--libgo/configure.ac8
-rw-r--r--libgo/go/math/all_test.go10
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])
}
}