[arch-commits] Commit in gcc-multilib/trunk (2 files)

Laurent Carlier lcarlier at nymeria.archlinux.org
Sat May 10 09:33:56 UTC 2014


    Date: Saturday, May 10, 2014 @ 11:33:56
  Author: lcarlier
Revision: 110942

upgpkg: gcc-multilib 4.9.0-2

gcc-4.9.0-2

Added:
  gcc-multilib/trunk/gcc-4.9-tree-ssa-threadedge.patch
Modified:
  gcc-multilib/trunk/PKGBUILD

-----------------------------------+
 PKGBUILD                          |   24 +++++++++++++++-------
 gcc-4.9-tree-ssa-threadedge.patch |   38 ++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+), 8 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-05-10 09:27:38 UTC (rev 110941)
+++ PKGBUILD	2014-05-10 09:33:56 UTC (rev 110942)
@@ -8,8 +8,8 @@
 pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
 pkgver=4.9.0
 _pkgver=4.9
-pkgrel=1
-#_snapshot=4.9.0-RC-20140411
+pkgrel=2
+_snapshot=4.9-20140507
 pkgdesc="The GNU Compiler Collection for multilib"
 arch=('x86_64')
 license=('GPL' 'LGPL' 'FDL' 'custom')
@@ -18,11 +18,13 @@
              'lib32-glibc>=2.19')
 checkdepends=('dejagnu' 'inetutils')
 options=('!emptydirs')
-source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
-        #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
-        gcc-4.8-filename-output.patch)
-md5sums=('9709b49ae0e904cbb0a6a1b62853b556'
-         '40cb437805e2f7a006aa0d0c3098ab0f')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
+        ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
+        gcc-4.8-filename-output.patch
+	gcc-4.9-tree-ssa-threadedge.patch)
+md5sums=('47dc2b91d2876daff53c20c30164c38f'
+         '40cb437805e2f7a006aa0d0c3098ab0f'
+         '311ece7f5446d550e84e28692d2fb823')
 
 
 if [ -n "${_snapshot}" ]; then
@@ -50,6 +52,9 @@
   # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653
   patch -p0 -i ${srcdir}/gcc-4.8-filename-output.patch
 
+  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60902
+  patch -p1 -i ${srcdir}/gcc-4.9-tree-ssa-threadedge.patch
+
   mkdir ${srcdir}/gcc-build
 }
 
@@ -228,7 +233,10 @@
   make -C $CHOST/32/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
 
   make -C libiberty DESTDIR=${pkgdir} install
+  # install PIC version of libiberty
+  install -m644 ${srcdir}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/usr/lib
 
+
   make -C gcc DESTDIR=${pkgdir} install-man install-info
   rm ${pkgdir}/usr/share/man/man1/{gccgo,gfortran}.1
   rm ${pkgdir}/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info
@@ -236,7 +244,7 @@
   make -C libcpp DESTDIR=${pkgdir} install
   make -C gcc DESTDIR=${pkgdir} install-po
 
-  # many packages expect this symlinks
+  # many packages expect this symlink
   ln -s gcc ${pkgdir}/usr/bin/cc
 
   # POSIX conformance launcher scripts for c89 and c99

Added: gcc-4.9-tree-ssa-threadedge.patch
===================================================================
--- gcc-4.9-tree-ssa-threadedge.patch	                        (rev 0)
+++ gcc-4.9-tree-ssa-threadedge.patch	2014-05-10 09:33:56 UTC (rev 110942)
@@ -0,0 +1,38 @@
+--- trunk/gcc/tree-ssa-threadedge.c	2014/04/23 17:53:56	209715
++++ trunk/gcc/tree-ssa-threadedge.c	2014/04/23 18:04:46	209716
+@@ -387,7 +387,34 @@
+           && (gimple_code (stmt) != GIMPLE_CALL
+               || gimple_call_lhs (stmt) == NULL_TREE
+               || TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME))
+-	continue;
++	{
++	  /* STMT might still have DEFS and we need to invalidate any known
++	     equivalences for them.
++
++	     Consider if STMT is a GIMPLE_ASM with one or more outputs that
++	     feeds a conditional inside a loop.  We might derive an equivalence
++	     due to the conditional.  */
++	  tree op;
++	  ssa_op_iter iter;
++
++	  if (backedge_seen)
++	    FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
++	      {
++		/* This call only invalidates equivalences created by
++		   PHI nodes.  This is by design to keep the cost of
++		   of invalidation reasonable.  */
++		invalidate_equivalences (op, stack, src_map, dst_map);
++
++		/* However, conditionals can imply values for real
++		   operands as well.  And those won't be recorded in the
++		   maps.  In fact, those equivalences may be recorded totally
++		   outside the threading code.  We can just create a new
++		   temporary NULL equivalence here.  */
++	        record_temporary_equivalence (op, NULL_TREE, stack);
++	      }
++
++	  continue;
++	}
+ 
+       /* The result of __builtin_object_size depends on all the arguments
+ 	 of a phi node. Temporarily using only one edge produces invalid




More information about the arch-commits mailing list