From 392d2d86b3657d90c3954a44dd6e3e5a4d12d455 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 4 Dec 2011 23:14:51 +0000 Subject: Sun Dec 4 23:14:51 UTC 2011 --- testing/gcc/PKGBUILD | 13 +++++++++---- testing/gcc/gcc-pr49720.patch | 26 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 testing/gcc/gcc-pr49720.patch (limited to 'testing/gcc') diff --git a/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD index 4c4cec15d..d57464ec6 100644 --- a/testing/gcc/PKGBUILD +++ b/testing/gcc/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 144071 2011-12-02 21:13:00Z allan $ +# $Id: PKGBUILD 144107 2011-12-04 02:41:48Z allan $ # Maintainer: Allan McRae # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc @@ -6,7 +6,7 @@ pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go') pkgver=4.6.2 -pkgrel=2 +pkgrel=3 _snapshot=4.6-20111125 _libstdcppmanver=20110814 # Note: check source directory name when updating this pkgdesc="The GNU Compiler Collection" @@ -20,11 +20,13 @@ 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) + gcc-hash-style-both.patch + gcc-pr49720.patch) md5sums=('922b0ee688669c188d237bbd21d42d07' 'ce920d2550ff7e042b9f091d27764d8f' '4030ee1c08dd1e843c0225b772360e76' - '4df25b623799b148a0703eaeec8fdf3f') + '4df25b623799b148a0703eaeec8fdf3f' + 'f9d7e5b792c59175f3da3f8421447512') if [ -n "${_snapshot}" ]; then _basedir="${srcdir}/gcc-${_snapshot}" @@ -46,6 +48,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 cd ${srcdir} diff --git a/testing/gcc/gcc-pr49720.patch b/testing/gcc/gcc-pr49720.patch new file mode 100644 index 000000000..8f50c4120 --- /dev/null +++ b/testing/gcc/gcc-pr49720.patch @@ -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 -- cgit v1.2.3-54-g00ecf