Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Dec 2010 00:05:49 +0000 (UTC)
From:      David Schultz <das@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r216137 - head/lib/msun
Message-ID:  <201012030005.oB305n9a038509@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: das
Date: Fri Dec  3 00:05:49 2010
New Revision: 216137
URL: http://svn.freebsd.org/changeset/base/216137

Log:
  Disable gcc's built-in rint() function when compiling s_nearbyint.c.
  It results in incorrect optimizations that break nearbyint().
  
  PR:		143358
  Reviewed by:	bde

Modified:
  head/lib/msun/Makefile

Modified: head/lib/msun/Makefile
==============================================================================
--- head/lib/msun/Makefile	Thu Dec  2 22:37:50 2010	(r216136)
+++ head/lib/msun/Makefile	Fri Dec  3 00:05:49 2010	(r216137)
@@ -113,6 +113,12 @@ COMMON_SRCS:=  ${COMMON_SRCS:N${i:R}.c}
 .endfor
 .endif
 
+# Some files need certain gcc built-in functions to be disabled, since gcc's
+# model of the functions bogusly assumes -fno-trapping-math.
+XRINT_CFLAGS=	-fno-builtin-rint -fno-builtin-rintf -fno-builtin-rintl
+CFLAGS+=	${XRINT_CFLAGS}
+XRINT_CFLAGS:=	${.IMPSRC:M*/s_nearbyint.c:C/^.+$/${XRINT_CFLAGS}/:C/^$//}
+
 SRCS=	${COMMON_SRCS} ${ARCH_SRCS}
 
 INCS=	fenv.h math.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201012030005.oB305n9a038509>