core/gcc to 4.6.2-3

This commit is contained in:
Kevin Mihelich 2011-12-09 15:41:44 -05:00
parent 3e1a0780eb
commit 3b7bdfba5f
2 changed files with 40 additions and 9 deletions

View file

@ -15,25 +15,27 @@ noautobuild=1
pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc')
pkgver=4.6.2
pkgrel=1
#_snapshot=4.6-20110819
pkgrel=3
_snapshot=4.6-20111125
_libstdcppmanver=20110814 # Note: check source directory name when updating this
pkgdesc="The GNU Compiler Collection"
arch=('i686' 'x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
makedepends=('binutils>=2.21-9' 'libmpc' 'cloog' 'ppl')
makedepends=('binutils>=2.22' 'libmpc' 'cloog' 'ppl')
checkdepends=('dejagnu')
options=('!libtool' '!emptydirs' '!distcc' '!ccache')
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
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
ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
gcc_pure64.patch
gcc-hash-style-both.patch)
md5sums=('028115c4fbfb6cfd75d6369f4a90d87e'
gcc-hash-style-both.patch
gcc-pr49720.patch)
md5sums=('922b0ee688669c188d237bbd21d42d07'
'ce920d2550ff7e042b9f091d27764d8f'
'4030ee1c08dd1e843c0225b772360e76'
'4df25b623799b148a0703eaeec8fdf3f')
'4df25b623799b148a0703eaeec8fdf3f'
'f9d7e5b792c59175f3da3f8421447512')
if [ -n "${_snapshot}" ]; then
_basedir="${srcdir}/gcc-${_snapshot}"
@ -55,6 +57,9 @@ build() {
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
# ALARM: Specify build host types
@ -126,7 +131,7 @@ package_gcc-libs()
package_gcc()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends"
depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.21.1' 'libmpc' 'cloog' 'ppl')
depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.22' 'libmpc' 'cloog' 'ppl')
groups=('base-devel')
install=gcc.install

View file

@ -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