[arch-commits] Commit in gcc/trunk (PKGBUILD gcc-pr49720.patch)

Allan McRae allan at archlinux.org
Sun Dec 4 02:38:33 UTC 2011


    Date: Saturday, December 3, 2011 @ 21:38:32
  Author: allan
Revision: 144106

upgpkg: gcc 4.6.2-3

patch to stop segfault when running binutils testsuite

Added:
  gcc/trunk/gcc-pr49720.patch
Modified:
  gcc/trunk/PKGBUILD

-------------------+
 PKGBUILD          |   11 ++++++++---
 gcc-pr49720.patch |   26 ++++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2011-12-04 01:21:03 UTC (rev 144105)
+++ PKGBUILD	2011-12-04 02:38:32 UTC (rev 144106)
@@ -6,7 +6,7 @@
 
 pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
 pkgver=4.6.2
-pkgrel=2
+pkgrel=3
 _snapshot=4.6-20111125
 _libstdcppmanver=20110814		# Note: check source directory name when updating this
 pkgdesc="The GNU Compiler Collection"
@@ -20,11 +20,13 @@
 	ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
 	ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
 	gcc_pure64.patch
-	gcc-hash-style-both.patch)
+	gcc-hash-style-both.patch
+	gcc-pr49720.patch)
 md5sums=('922b0ee688669c188d237bbd21d42d07'
          'ce920d2550ff7e042b9f091d27764d8f'
          '4030ee1c08dd1e843c0225b772360e76'
-         '4df25b623799b148a0703eaeec8fdf3f')
+         '4df25b623799b148a0703eaeec8fdf3f'
+         'f9d7e5b792c59175f3da3f8421447512')
 
 if [ -n "${_snapshot}" ]; then
   _basedir="${srcdir}/gcc-${_snapshot}"
@@ -46,6 +48,9 @@
   fi
   patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
 
+  # fix compiler segfault in binutils testsuite
+  patch -Np1 -i ${srcdir}/gcc-pr49720.patch
+
   echo ${pkgver} > gcc/BASE-VER
 
   cd ${srcdir}

Added: gcc-pr49720.patch
===================================================================
--- gcc-pr49720.patch	                        (rev 0)
+++ gcc-pr49720.patch	2011-12-04 02:38:32 UTC (rev 144106)
@@ -0,0 +1,26 @@
+--- trunk/gcc/simplify-rtx.c	2011/10/28 05:55:10	180603
++++ trunk/gcc/simplify-rtx.c	2011/10/28 06:35:31	180604
+@@ -4352,10 +4352,20 @@
+     {
+       rtx x = XEXP (op0, 0);
+       rtx c = XEXP (op0, 1);
++      enum rtx_code invcode = op0code == PLUS ? MINUS : PLUS;
++      rtx tem = simplify_gen_binary (invcode, cmp_mode, op1, c);
+ 
+-      c = simplify_gen_binary (op0code == PLUS ? MINUS : PLUS,
+-			       cmp_mode, op1, c);
+-      return simplify_gen_relational (code, mode, cmp_mode, x, c);
++      /* Detect an infinite recursive condition, where we oscillate at this
++	 simplification case between:
++	    A + B == C  <--->  C - B == A,
++	 where A, B, and C are all constants with non-simplifiable expressions,
++	 usually SYMBOL_REFs.  */
++      if (GET_CODE (tem) == invcode
++	  && CONSTANT_P (x)
++	  && rtx_equal_p (c, XEXP (tem, 1)))
++	return NULL_RTX;
++
++      return simplify_gen_relational (code, mode, cmp_mode, x, tem);
+     }
+ 
+   /* (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))) is




More information about the arch-commits mailing list