summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZack Welch <zwelch@gentoo.org>2003-02-22 07:52:32 +0000
committerZack Welch <zwelch@gentoo.org>2003-02-22 07:52:32 +0000
commit7ee1958161cb0d5db64182b0242f38dd0a61e0e3 (patch)
tree261ef89144bdebd3c7737679344d3d51e91f5c56 /sys-devel
parentadd arm keyword (diff)
downloadgentoo-2-7ee1958161cb0d5db64182b0242f38dd0a61e0e3.tar.gz
gentoo-2-7ee1958161cb0d5db64182b0242f38dd0a61e0e3.tar.bz2
gentoo-2-7ee1958161cb0d5db64182b0242f38dd0a61e0e3.zip
add arm patch to fix gcc from generating incorrect code
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/gcc/ChangeLog5
-rw-r--r--sys-devel/gcc/files/3.2.1/gcc32-arm-reload1-fix.patch21
-rw-r--r--sys-devel/gcc/gcc-3.2.2.ebuild7
3 files changed, 31 insertions, 2 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index 481a6e7cddbe..9d3613587259 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,9 +1,12 @@
# ChangeLog for sys-devel/gcc
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.67 2003/02/21 21:23:24 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.68 2003/02/22 07:52:32 zwelch Exp $
*gcc-3.2.2 (06 Feb 2003)
+ 21 Feb 2003; Zach Welch <zwelch@gentoo.org> gcc-3.2.2.ebuild :
+ Added patch for arm to fix incorrect code generation
+
21 Feb 2003; Aron Griffis <agriffis@gentoo.org> gcc-3.2.2.ebuild :
Mark 3.2.2 stable on alpha -- it's the best we've got so far!
diff --git a/sys-devel/gcc/files/3.2.1/gcc32-arm-reload1-fix.patch b/sys-devel/gcc/files/3.2.1/gcc32-arm-reload1-fix.patch
new file mode 100644
index 000000000000..0d5588e3c0f9
--- /dev/null
+++ b/sys-devel/gcc/files/3.2.1/gcc32-arm-reload1-fix.patch
@@ -0,0 +1,21 @@
+--- gcc-3.2.1/gcc/reload1.c.orig 2002-10-10 09:40:20.000000000 -0600
++++ gcc-3.2.1/gcc/reload1.c 2003-01-30 12:15:05.000000000 -0700
+@@ -8674,7 +8674,9 @@
+ ... (MEM (PLUS (REGZ) (REGY)))... .
+
+ First, check that we have (set (REGX) (PLUS (REGX) (REGY)))
+- and that we know all uses of REGX before it dies. */
++ and that we know all uses of REGX before it dies.
++ Also, explicitly check that REGX != REGY; our life information
++ does not yet show whether REGY changes in this insn. */
+ set = single_set (insn);
+ if (set != NULL_RTX
+ && GET_CODE (SET_DEST (set)) == REG
+@@ -8684,6 +8686,7 @@
+ && GET_CODE (SET_SRC (set)) == PLUS
+ && GET_CODE (XEXP (SET_SRC (set), 1)) == REG
+ && rtx_equal_p (XEXP (SET_SRC (set), 0), SET_DEST (set))
++ && !rtx_equal_p (XEXP (SET_SRC (set), 1), SET_DEST (set))
+ && last_label_ruid < reg_state[REGNO (SET_DEST (set))].use_ruid)
+ {
+ rtx reg = SET_DEST (set);
diff --git a/sys-devel/gcc/gcc-3.2.2.ebuild b/sys-devel/gcc/gcc-3.2.2.ebuild
index 97af68240f2f..2d5caab3e4b5 100644
--- a/sys-devel/gcc/gcc-3.2.2.ebuild
+++ b/sys-devel/gcc/gcc-3.2.2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.2.2.ebuild,v 1.5 2003/02/21 21:23:24 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.2.2.ebuild,v 1.6 2003/02/22 07:52:32 zwelch Exp $
IUSE="static nls bootstrap java build"
@@ -157,6 +157,11 @@ src_unpack() {
epatch ${FILESDIR}/3.2.1/gcc32-strip-dotdot.patch
epatch ${FILESDIR}/3.2.1/gcc32-athlon-alignment.patch
+ # Patches from debian-arm
+ if [ "${ARCH}" = "arm" ]; then
+ epatch ${FILESDIR}/3.2.1/gcc32-arm-reload1-fix.patch
+ fi
+
# Install our pre generated manpages if we do not have perl ...
# if [ ! -x /usr/bin/perl ]
# then