Extend powerpc-nofpu -fno-builtin-fabsl workaround to more files

Joseph S. Myers joseph@codesourcery.com
Thu Oct 10 17:25:00 GMT 2013


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



More information about the Libc-alpha mailing list