summaryrefslogtreecommitdiff
path: root/multilib/gcc-multilib
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-12-09 23:14:52 +0000
committerroot <root@rshg054.dnsready.net>2011-12-09 23:14:52 +0000
commitd22b68a6758c4f29a8e50a7be467374a53c68415 (patch)
tree019c8b74603792b4b8f08d6815438654a64d0e38 /multilib/gcc-multilib
parent707457876743e969be9eb163c36928978df245cd (diff)
Fri Dec 9 23:14:52 UTC 2011
Diffstat (limited to 'multilib/gcc-multilib')
-rw-r--r--multilib/gcc-multilib/PKGBUILD27
-rw-r--r--multilib/gcc-multilib/gcc-pr49720.patch26
2 files changed, 42 insertions, 11 deletions
diff --git a/multilib/gcc-multilib/PKGBUILD b/multilib/gcc-multilib/PKGBUILD
index 4b2f0c3b7..27d180609 100644
--- a/multilib/gcc-multilib/PKGBUILD
+++ b/multilib/gcc-multilib/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 57525 2011-10-30 06:48:49Z allan $
+# $Id: PKGBUILD 60283 2011-12-08 22:16:27Z heftig $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Allan McRae <allan@archlinux.org>
@@ -8,26 +8,28 @@
pkgbase='gcc-multilib'
pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
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 for multilib"
arch=('x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
-makedepends=('binutils-multilib>=2.21.1' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib'
+makedepends=('binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib'
'lib32-glibc>=2.14')
checkdepends=('dejagnu')
options=('!libtool' '!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
+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}"
@@ -47,6 +49,9 @@ build() {
patch -Np1 -i ${srcdir}/gcc_pure64.patch
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}
@@ -65,7 +70,7 @@ build() {
--enable-lto --enable-gold --enable-ld=default \
--enable-plugin --with-plugin-ld=ld.gold \
--enable-multilib --disable-libssp --disable-libstdcxx-pch \
- --enable-checking=release
+ --enable-checking=release --with-fpmath=sse
make
}
@@ -148,7 +153,7 @@ package_lib32-gcc-libs()
package_gcc-multilib()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
- depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.21.1' 'libmpc' 'cloog' 'ppl')
+ depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl')
groups=('multilib-devel')
provides=("gcc=$pkgver-$pkgrel")
conflicts=('gcc')
diff --git a/multilib/gcc-multilib/gcc-pr49720.patch b/multilib/gcc-multilib/gcc-pr49720.patch
new file mode 100644
index 000000000..8f50c4120
--- /dev/null
+++ b/multilib/gcc-multilib/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