Module Name:    src
Committed By:   jdc
Date:           Sat Nov 24 19:02:14 UTC 2012

Modified Files:
        src/doc [netbsd-6-0]: HACKS
        src/lib/libc/softfloat [netbsd-6-0]: Makefile.inc

Log Message:
Pull up revisions:
  src/lib/libc/softfloat/Makefile.inc         1.11-1.12 via patch
  src/doc/HACKS                               1.124 via patch
(requested by msaitoh in ticket #703).

For arm, add -fno-tree-vrp to COPTS when compiling softfloat.c.
Without -fno-tree-vrp, -INF + -INF returns 0 by adddf3.
Fixes PR#46953.


To generate a diff of this commit:
cvs rdiff -u -r1.122.2.1 -r1.122.2.1.4.1 src/doc/HACKS
cvs rdiff -u -r1.10 -r1.10.10.1 src/lib/libc/softfloat/Makefile.inc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/doc/HACKS
diff -u src/doc/HACKS:1.122.2.1 src/doc/HACKS:1.122.2.1.4.1
--- src/doc/HACKS:1.122.2.1	Mon Mar  5 20:59:25 2012
+++ src/doc/HACKS	Sat Nov 24 19:02:14 2012
@@ -1,4 +1,4 @@
-# $NetBSD: HACKS,v 1.122.2.1 2012/03/05 20:59:25 sborrill Exp $
+# $NetBSD: HACKS,v 1.122.2.1.4.1 2012/11/24 19:02:14 jdc Exp $
 #
 # This file is intended to document workarounds for currently unsolved
 # (mostly) compiler bugs.
@@ -554,6 +554,24 @@ port	arm
 		http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48863#c4
 	kcah
 
+	hack	gcc-4.5 arm without -fno-tree-vrp generate broken code
+	cdate	Wed Nov 14 13:02:02 JST 2012
+	who	msaitoh
+	file	lib/libc/softfloat/Makefile.inc
+	pr	46953
+	regress	src/tests/lib/libm/t_cbrt
+	regress	src/tests/lib/libm/t_ceil
+	regress	src/tests/lib/libm/t_exp
+	regress	src/tests/lib/libm/t_log
+	regress	src/tests/lib/libm/t_scalbn
+	regress	src/tests/lib/libm/t_sinh
+	regress	src/tests/lib/libm/t_sqrt
+	descr	Gcc has a bug in tree optimization. For adddf3,
+		-INF + -INF returns 0 without -fno-tree-vrp.
+		Debugging with -fdump-tree-all shows that
+		softfloat.c.021t.cleanup_cfg is ok but softfloat.c.023t.ssa
+		is broken.
+	kcah
 
 port	sh3
 

Index: src/lib/libc/softfloat/Makefile.inc
diff -u src/lib/libc/softfloat/Makefile.inc:1.10 src/lib/libc/softfloat/Makefile.inc:1.10.10.1
--- src/lib/libc/softfloat/Makefile.inc:1.10	Mon Jul  4 02:53:15 2011
+++ src/lib/libc/softfloat/Makefile.inc	Sat Nov 24 19:02:14 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile.inc,v 1.10 2011/07/04 02:53:15 mrg Exp $
+#	$NetBSD: Makefile.inc,v 1.10.10.1 2012/11/24 19:02:14 jdc Exp $
 
 SOFTFLOAT_BITS?=64
 .PATH:		${ARCHDIR}/softfloat \
@@ -20,9 +20,12 @@ SRCS.softfloat+=eqsf2.c nesf2.c gtsf2.c 
 SRCS+=		${SRCS.softfloat}
 
 # XXX
-.if defined(HAVE_GCC) && ${HAVE_GCC} >= 45 && \
-    (${MACHINE_CPU} == "arm" || \
-     ${MACHINE_CPU} == "mips" || \
+.if defined(HAVE_GCC) && ${HAVE_GCC} >= 45
+.if (${MACHINE_CPU} == "arm")
+# See doc/HACKS for more information.
+COPTS.softfloat.c+=	-Wno-enum-compare -fno-tree-vrp
+.elif (${MACHINE_CPU} == "mips" || \
      ${MACHINE_CPU} == "sh3")
 COPTS.softfloat.c+=	-Wno-enum-compare
 .endif
+.endif

Reply via email to