summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2016-07-08 11:24:34 +0200
committerAurelien Jarno <aurelien@aurel32.net>2016-07-08 11:24:34 +0200
commit6bcc7ced4fd417e8f65b9b8f50ad7010c3549d9f (patch)
tree3adeafb02060d25533a1c1256367cd09014839fd
parentd461c9682d4954076f9ee9e07be903c2eef8e73b (diff)
downloadglibc-6bcc7ced4fd417e8f65b9b8f50ad7010c3549d9f.tar.gz
ppc: Fix modf (sNaN) for pre-POWER5+ CPU (bug 20240).
Commit a6a4395d fixed modf implementation by compiling s_modf.c and s_modff.c with -fsignaling-nans. However these files are also included from the pre-POWER5+ implementation, and thus these files should also be compiled with -fsignaling-nans. Changelog: [BZ #20240] * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile (CFLAGS-s_modf-ppc32.c): New variable. (CFLAGS-s_modff-ppc32.c): Likewise. * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (CFLAGS-s_modf-ppc64.c): Likewise. (CFLAGS-s_modff-ppc64.c): Likewise.
-rw-r--r--ChangeLog10
-rw-r--r--sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile5
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile5
3 files changed, 20 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e2258407d..a7a875cf18 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2016-07-08 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #20240]
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (CFLAGS-s_modf-ppc32.c): New variable.
+ (CFLAGS-s_modff-ppc32.c): Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (CFLAGS-s_modf-ppc64.c): Likewise.
+ (CFLAGS-s_modff-ppc64.c): Likewise.
+
2016-07-07 Andreas Schwab <schwab@suse.de>
[BZ #20263]
diff --git a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
index 590a8eba05..804e7dc095 100644
--- a/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
@@ -34,4 +34,9 @@ CFLAGS-s_logb-power7.c = -mcpu=power7
CFLAGS-s_logbf-power7.c = -mcpu=power7
CFLAGS-e_hypot-power7.c = -mcpu=power7
CFLAGS-e_hypotf-power7.c = -mcpu=power7
+
+# These files quiet sNaNs in a way that is optimized away without
+# -fsignaling-nans.
+CFLAGS-s_modf-ppc32.c += -fsignaling-nans
+CFLAGS-s_modff-ppc32.c += -fsignaling-nans
endif
diff --git a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile b/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
index add1fb85f0..ff4228825e 100644
--- a/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
@@ -35,4 +35,9 @@ CFLAGS-s_modf-power5+.c = -mcpu=power5+
CFLAGS-s_modff-power5+.c = -mcpu=power5+
CFLAGS-e_hypot-power7.c = -mcpu=power7
CFLAGS-e_hypotf-power7.c = -mcpu=power7
+
+# These files quiet sNaNs in a way that is optimized away without
+# -fsignaling-nans.
+CFLAGS-s_modf-ppc64.c += -fsignaling-nans
+CFLAGS-s_modff-ppc64.c += -fsignaling-nans
endif