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

Allan McRae allan at archlinux.org
Fri Jun 11 13:12:16 UTC 2010


    Date: Friday, June 11, 2010 @ 09:12:15
  Author: allan
Revision: 82472

upgpkg: gcc 4.5.0-6
apply upstream patch to fix khtml/chromium building

Added:
  gcc/trunk/r160561.patch
Modified:
  gcc/trunk/PKGBUILD

---------------+
 PKGBUILD      |   11 +++++++--
 r160561.patch |   64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 72 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-06-11 12:02:04 UTC (rev 82471)
+++ PKGBUILD	2010-06-11 13:12:15 UTC (rev 82472)
@@ -7,7 +7,7 @@
 
 pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada')
 pkgver=4.5.0
-pkgrel=5
+pkgrel=6
 _snapshot=4.5-20100610
 _libstdcppmanver=20100312	# Note: check source directory name when updating this
 pkgdesc="The GNU Compiler Collection"
@@ -20,7 +20,8 @@
 	ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada}-${_snapshot}.tar.bz2
 	ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.${_libstdcppmanver}.tar.bz2
 	gcc_pure64.patch
-	gcc-hash-style-both.patch)
+	gcc-hash-style-both.patch
+	r160561.patch)
 md5sums=('d0c6573f18e61d0a6c6fe742066346cd'
          '4c5369d27b8cb4c4e447553f064d0f16'
          '2c191ab600e600c774a65674c542e210'
@@ -28,7 +29,8 @@
          'a7527896c33759ccc40bb82173f8f27f'
          'f9a21b9dfc174f49a09ddaacfd3ac78f'
          '4030ee1c08dd1e843c0225b772360e76'
-         '6fd395bacbd7b6e47c7b74854b478363')
+         '6fd395bacbd7b6e47c7b74854b478363'
+         '79cb26e66eb2502171ef69438fa8666d')
 
 if [ -n "${_snapshot}" ]; then
   _basedir="${srcdir}/gcc-${_snapshot}"
@@ -55,6 +57,9 @@
   fi
   patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch || return 1
 
+  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44258
+  patch -Np1 -i ${srcdir}/r160561.patch || return 1
+
   echo ${pkgver} > gcc/BASE-VER
 
   mkdir build && cd build      

Added: r160561.patch
===================================================================
--- r160561.patch	                        (rev 0)
+++ r160561.patch	2010-06-11 13:12:15 UTC (rev 82472)
@@ -0,0 +1,64 @@
+--- trunk/gcc/tree-sra.c	2010/06/10 16:44:04	160560
++++ trunk/gcc/tree-sra.c	2010/06/10 16:49:09	160561
+@@ -1689,9 +1689,10 @@
+ 
+ /* Build a subtree of accesses rooted in *ACCESS, and move the pointer in the
+    linked list along the way.  Stop when *ACCESS is NULL or the access pointed
+-   to it is not "within" the root.  */
++   to it is not "within" the root.  Return false iff some accesses partially
++   overlap.  */
+ 
+-static void
++static bool
+ build_access_subtree (struct access **access)
+ {
+   struct access *root = *access, *last_child = NULL;
+@@ -1706,24 +1707,32 @@
+ 	last_child->next_sibling = *access;
+       last_child = *access;
+ 
+-      build_access_subtree (access);
++      if (!build_access_subtree (access))
++	return false;
+     }
++
++  if (*access && (*access)->offset < limit)
++    return false;
++
++  return true;
+ }
+ 
+ /* Build a tree of access representatives, ACCESS is the pointer to the first
+-   one, others are linked in a list by the next_grp field.  Decide about scalar
+-   replacements on the way, return true iff any are to be created.  */
++   one, others are linked in a list by the next_grp field.  Return false iff
++   some accesses partially overlap.  */
+ 
+-static void
++static bool
+ build_access_trees (struct access *access)
+ {
+   while (access)
+     {
+       struct access *root = access;
+ 
+-      build_access_subtree (&access);
++      if (!build_access_subtree (&access))
++	return false;
+       root->next_grp = access;
+     }
++  return true;
+ }
+ 
+ /* Return true if expr contains some ARRAY_REFs into a variable bounded
+@@ -2062,9 +2071,7 @@
+       struct access *access;
+ 
+       access = sort_and_splice_var_accesses (var);
+-      if (access)
+-	build_access_trees (access);
+-      else
++      if (!access || !build_access_trees (access))
+ 	disqualify_candidate (var,
+ 			      "No or inhibitingly overlapping accesses.");
+     }




More information about the arch-commits mailing list