[oe-commits] org.oe.dev gcc 4.2.1: Fix ICE that occurs with AVR32 gcc, especially when compiling OpenSSH.

gwossum commit oe at amethyst.openembedded.net
Wed Mar 26 18:55:45 UTC 2008


gcc 4.2.1: Fix ICE that occurs with AVR32 gcc, especially when compiling OpenSSH.

Mainly just applies patch for gcc pr32889.

Since this ICE was first reported on the debian-gcc list
(see http://lists.debian.org/debian-gcc/2007/10/msg00306.html), and was
actually report for the HPPA, this patch might be desireable for other
architectures.  This patch showed in mainline gcc 4.2.3

See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32889 for mor info

Author: gwossum at acm.org
Branch: org.openembedded.dev
Revision: 1438a702b5d85e3ee6fa00b844a0c18cad10bdc9
ViewMTN: http://monotone.openembedded.org/revision/info/1438a702b5d85e3ee6fa00b844a0c18cad10bdc9
Files:
1
packages/gcc/gcc-4.2.1/gcc-pr32889.patch
packages/gcc/gcc-4.2.1.inc
packages/gcc/gcc-cross_4.2.1.bb
packages/gcc/gcc_4.2.1.bb
Diffs:

#
# mt diff -r3197ebcd4ab946d62de31dd9c786d0852f28288b -r1438a702b5d85e3ee6fa00b844a0c18cad10bdc9
#
#
#
# add_file "packages/gcc/gcc-4.2.1/gcc-pr32889.patch"
#  content [eb45ab7284e91a16c80214a334307325bfd20674]
# 
# patch "packages/gcc/gcc-4.2.1.inc"
#  from [b0978a7a2aa142fbad18b0986a5ae5f04f9befc5]
#    to [59197ed463d5f91c6d514c6e90a471ba0d2fd799]
# 
# patch "packages/gcc/gcc-cross_4.2.1.bb"
#  from [b9af3bf259095ef8cf6f60cd84b98a4e7e3a3354]
#    to [3cf868edf7b8d5f366fdd72bcdd3af04261368fe]
# 
# patch "packages/gcc/gcc_4.2.1.bb"
#  from [55051148fc35d4a5bd8c74f59d021f395d5ac029]
#    to [62da9aa64bad2c95a9e38612cc77cd891da0b2f0]
#
============================================================
--- packages/gcc/gcc-4.2.1/gcc-pr32889.patch	eb45ab7284e91a16c80214a334307325bfd20674
+++ packages/gcc/gcc-4.2.1/gcc-pr32889.patch	eb45ab7284e91a16c80214a334307325bfd20674
@@ -0,0 +1,57 @@
+diff -urNp --exclude '*.swp' --exclude DEV-PHASE gcc-orig/gcc/reload.c gcc/gcc/reload.c
+--- gcc-orig/gcc/reload.c	2008-02-18 09:59:15.000000000 -0800
++++ gcc/gcc/reload.c	2008-02-18 10:05:47.000000000 -0800
+@@ -4574,7 +4574,7 @@ find_reloads_toplev (rtx x, int opnum, e
+ 	      x = mem;
+ 	      i = find_reloads_address (GET_MODE (x), &x, XEXP (x, 0), &XEXP (x, 0),
+ 					opnum, type, ind_levels, insn);
+-	      if (x != mem)
++	      if (!rtx_equal_p (x, mem))
+ 		push_reg_equiv_alt_mem (regno, x);
+ 	      if (address_reloaded)
+ 		*address_reloaded = i;
+@@ -4789,7 +4789,7 @@ find_reloads_address (enum machine_mode 
+ 		  find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0),
+ 					&XEXP (tem, 0), opnum,
+ 					ADDR_TYPE (type), ind_levels, insn);
+-		  if (tem != orig)
++	          if (!rtx_equal_p (tem, orig))
+ 		    push_reg_equiv_alt_mem (regno, tem);
+ 		}
+ 	      /* We can avoid a reload if the register's equivalent memory
+@@ -5589,7 +5589,7 @@ find_reloads_address_1 (enum machine_mod
+ 				      RELOAD_OTHER,
+ 				      ind_levels, insn);
+ 
+-		if (tem != orig)
++	        if (!rtx_equal_p (tem, orig))
+ 		  push_reg_equiv_alt_mem (regno, tem);
+ 
+ 		/* Then reload the memory location into a base
+@@ -5656,7 +5656,7 @@ find_reloads_address_1 (enum machine_mod
+ 		  find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0),
+ 					&XEXP (tem, 0), opnum, type,
+ 					ind_levels, insn);
+-		  if (tem != orig)
++	          if (!rtx_equal_p (tem, orig))
+ 		    push_reg_equiv_alt_mem (regno, tem);
+ 		  /* Put this inside a new increment-expression.  */
+ 		  x = gen_rtx_fmt_e (GET_CODE (x), GET_MODE (x), tem);
+@@ -5848,7 +5848,7 @@ find_reloads_address_1 (enum machine_mod
+ 		find_reloads_address (GET_MODE (x), &x, XEXP (x, 0),
+ 				      &XEXP (x, 0), opnum, ADDR_TYPE (type),
+ 				      ind_levels, insn);
+-		if (x != tem)
++	        if (!rtx_equal_p (x, tem))
+ 		  push_reg_equiv_alt_mem (regno, x);
+ 	      }
+ 	  }
+@@ -6076,7 +6076,7 @@ find_reloads_subreg_address (rtx x, int 
+ 					       XEXP (tem, 0), &XEXP (tem, 0),
+ 					       opnum, type, ind_levels, insn);
+ 	      /* ??? Do we need to handle nonzero offsets somehow?  */
+-	      if (!offset && tem != orig)
++	      if (!offset && !rtx_equal_p (tem, orig))
+ 		push_reg_equiv_alt_mem (regno, tem);
+ 
+ 	      /* For some processors an address may be valid in the
============================================================
--- packages/gcc/gcc-4.2.1.inc	b0978a7a2aa142fbad18b0986a5ae5f04f9befc5
+++ packages/gcc/gcc-4.2.1.inc	59197ed463d5f91c6d514c6e90a471ba0d2fd799
@@ -37,6 +37,7 @@ SRC_URI_avr32 = " http://ewi546.ewi.utwe
 "
 
 SRC_URI_avr32 = " http://ewi546.ewi.utwente.nl/tmp/avr32-gcc-4.2.1-atmel.1.0.3.tar.gz \
+        file://gcc-pr32889.patch;patch=1 \
         file://100-uclibc-conf.patch;patch=1 \
         file://103-uclibc-conf-noupstream.patch;patch=1 \
         file://200-uclibc-locale.patch;patch=1 \
============================================================
--- packages/gcc/gcc-cross_4.2.1.bb	b9af3bf259095ef8cf6f60cd84b98a4e7e3a3354
+++ packages/gcc/gcc-cross_4.2.1.bb	3cf868edf7b8d5f366fdd72bcdd3af04261368fe
@@ -1,4 +1,4 @@
-PR = "r13"
+PR = "r14"
 
 require gcc-${PV}.inc
 require gcc-cross4.inc
============================================================
--- packages/gcc/gcc_4.2.1.bb	55051148fc35d4a5bd8c74f59d021f395d5ac029
+++ packages/gcc/gcc_4.2.1.bb	62da9aa64bad2c95a9e38612cc77cd891da0b2f0
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
 
 require gcc-${PV}.inc
 require gcc-configure-target.inc






More information about the Openembedded-commits mailing list