This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Extend powerpc-nofpu -fno-builtin-fabsl workaround to more files
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Cc: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- Date: Thu, 10 Oct 2013 17:25:28 +0000
- Subject: Extend powerpc-nofpu -fno-builtin-fabsl workaround to more files
- Authentication-results: sourceware.org; auth=none
For powerpc-nofpu, several libm files are built with
-fno-builtin-fabsl because of a GCC bug where a generic inline
expansion of fabsl, involving comparison with 0, is incorrect for -0.
The same GCC bug also affects quiet NaN arguments: by doing an ordered
comparison with 0, exceptions are raised (whereas fabsl maps to IEEE
754 abs, which should never raise exceptions even for signaling NaNs).
This is covered up by bug 14910, but becomes visible with my patch
<https://sourceware.org/ml/libc-alpha/2013-10/msg00365.html> to fix
that bug. This patch extends the workaround to the extra files
needing it once that bug is fixed.
Tested for powerpc-nofpu.
2013-10-10 Joseph Myers <joseph@codsourcery.com>
* sysdeps/powerpc/nofpu/Makefile [$(subdir) = math]
(CFLAGS-e_hypotl.c): Add -fno-builtin-fabsl.
[$(subdir) = math] (CFLAGS-w_acosl.c): Likewise.
[$(subdir) = math] (CFLAGS-w_asinl.c): Likewise.
[$(subdir) = math] (CFLAGS-w_atanhl.c): Likewise.
[$(subdir) = math] (CFLAGS-w_j0l.c): Likewise.
[$(subdir) = math] (CFLAGS-w_j1l.c): Likewise.
diff --git a/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile
index 6bdff45..b9cbf80 100644
--- a/sysdeps/powerpc/nofpu/Makefile
+++ b/sysdeps/powerpc/nofpu/Makefile
@@ -14,6 +14,7 @@ CPPFLAGS += -I../soft-fp/
# gcc-4.1.1 and may be too late for gcc-4.2. So we need these flags
# until the fix in a gcc release and glibc drops support for earlier
# versions of gcc.
+CFLAGS-e_hypotl.c += -fno-builtin-fabsl
CFLAGS-e_powl.c += -fno-builtin-fabsl
CFLAGS-s_ccoshl.c += -fno-builtin-fabsl
CFLAGS-s_csinhl.c += -fno-builtin-fabsl
@@ -21,4 +22,9 @@ CFLAGS-s_clogl.c += -fno-builtin-fabsl
CFLAGS-s_clog10l.c += -fno-builtin-fabsl
CFLAGS-s_csinl.c += -fno-builtin-fabsl
CFLAGS-s_csqrtl.c += -fno-builtin-fabsl
+CFLAGS-w_acosl.c += -fno-builtin-fabsl
+CFLAGS-w_asinl.c += -fno-builtin-fabsl
+CFLAGS-w_atanhl.c += -fno-builtin-fabsl
+CFLAGS-w_j0l.c += -fno-builtin-fabsl
+CFLAGS-w_j1l.c += -fno-builtin-fabsl
endif
--
Joseph S. Myers
joseph@codesourcery.com