summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorFantix King2014-05-13 12:24:36 +0800
committerFantix King2015-11-08 20:40:43 +0800
commit0f8e5cf32ce9b70cece9ecc41f0cecd85a2486f4 (patch)
tree2b0deedb206fb3548acb951e22d54e9efc1d559f
parent2637ad8c9f7b478c866fda372de79d97dcdde838 (diff)
downloadaur-0f8e5cf32ce9b70cece9ecc41f0cecd85a2486f4.tar.gz
4.9.0_2-1
-rw-r--r--.SRCINFO38
-rw-r--r--PKGBUILD57
-rw-r--r--gcc-4.9-tree-ssa-threadedge.patch38
3 files changed, 100 insertions, 33 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c5df4be59208..4d447b4eed89 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = gcc-multilib-x32
pkgdesc = The GNU Compiler Collection for multilib with x32 ABI support
- pkgver = 4.9.0_1
+ pkgver = 4.9.0_2
pkgrel = 1
url = http://gcc.gnu.org
arch = x86_64
@@ -18,21 +18,23 @@ pkgbase = gcc-multilib-x32
makedepends = lib32-glibc>=2.19
makedepends = libx32-glibc>=2.19
options = !emptydirs
- source = ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.0/gcc-4.9.0.tar.bz2
+ source = ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20140507/gcc-4.9-20140507.tar.bz2
source = gcc-4.8-filename-output.patch
- md5sums = 9709b49ae0e904cbb0a6a1b62853b556
+ source = gcc-4.9-tree-ssa-threadedge.patch
+ md5sums = 47dc2b91d2876daff53c20c30164c38f
md5sums = 40cb437805e2f7a006aa0d0c3098ab0f
+ md5sums = 311ece7f5446d550e84e28692d2fb823
pkgname = gcc-multilib-x32
pkgdesc = The GNU Compiler Collection - C and C++ frontends for multilib with x32 ABI support
install = gcc.install
groups = x32-devel
- depends = gcc-libs-multilib-x32=4.9.0_1-1
+ depends = gcc-libs-multilib-x32=4.9.0_2-1
depends = binutils>=2.24
depends = libmpc
depends = cloog
- provides = gcc=4.9.0-1
- provides = gcc-multilib=4.9.0-1
+ provides = gcc=4.9.0-2
+ provides = gcc-multilib=4.9.0-2
conflicts = gcc
conflicts = gcc-x32-seed
conflicts = gcc-multilib
@@ -42,10 +44,10 @@ pkgname = gcc-libs-multilib-x32
pkgdesc = Runtime libraries shipped by GCC for multilib with x32 ABI support
install = gcc-libs.install
depends = glibc>=2.19
- depends = lib32-gcc-libs=4.9.0-1
- depends = libx32-gcc-libs=4.9.0_1-1
- provides = gcc-libs=4.9.0-1
- provides = gcc-libs-multilib=4.9.0-1
+ depends = lib32-gcc-libs=4.9.0-2
+ depends = libx32-gcc-libs=4.9.0_2-1
+ provides = gcc-libs=4.9.0-2
+ provides = gcc-libs-multilib=4.9.0-2
conflicts = gcc-libs
options = !emptydirs
@@ -57,23 +59,23 @@ pkgname = libx32-gcc-libs
pkgname = gcc-fortran-multilib-x32
pkgdesc = Fortran front-end for GCC for multilib with x32 ABI support
install = gcc-fortran.install
- depends = gcc-multilib-x32=4.9.0_1-1
- provides = gcc-fortran=4.9.0-1
+ depends = gcc-multilib-x32=4.9.0_2-1
+ provides = gcc-fortran=4.9.0-2
conflicts = gcc-fortran
options = staticlibs
options = !emptydirs
pkgname = gcc-objc-multilib-x32
pkgdesc = Objective-C front-end for GCC for multilib with x32 ABI support
- depends = gcc-multilib-x32=4.9.0_1-1
- provides = gcc-objc=4.9.0-1
+ depends = gcc-multilib-x32=4.9.0_2-1
+ provides = gcc-objc=4.9.0-2
conflicts = gcc-objc
pkgname = gcc-ada-multilib-x32
pkgdesc = Ada front-end for GCC (GNAT) for multilib with x32 ABI support
install = gcc-ada.install
- depends = gcc-multilib-x32=4.9.0_1-1
- provides = gcc-ada=4.9.0-1
+ depends = gcc-multilib-x32=4.9.0_2-1
+ provides = gcc-ada=4.9.0-2
conflicts = gcc-ada
options = staticlibs
options = !emptydirs
@@ -81,8 +83,8 @@ pkgname = gcc-ada-multilib-x32
pkgname = gcc-go-multilib-x32
pkgdesc = Go front-end for GCC for multilib with x32 ABI support
install = gcc-go.install
- depends = gcc-multilib-x32=4.9.0_1-1
- provides = gcc-go=4.9.0-1
+ depends = gcc-multilib-x32=4.9.0_2-1
+ provides = gcc-go=4.9.0-2
conflicts = gcc-go
options = staticlibs
options = !emptydirs
diff --git a/PKGBUILD b/PKGBUILD
index f80dde4ce220..d83e87cb1f44 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 110035 2014-04-23 13:58:04Z heftig $
+# $Id: PKGBUILD 110942 2014-05-10 09:33:56Z lcarlier $
# Maintainer: Fantix King <fantix.king@gmail.com>
# Upstream Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Allan McRae <allan@archlinux.org>
@@ -8,10 +8,10 @@
pkgname='gcc-multilib-x32'
true && pkgname=('gcc-multilib-x32' 'gcc-libs-multilib-x32' 'libx32-gcc-libs' 'gcc-fortran-multilib-x32' 'gcc-objc-multilib-x32' 'gcc-ada-multilib-x32' 'gcc-go-multilib-x32')
-pkgver=4.9.0_1
+pkgver=4.9.0_2
_pkgver=4.9
pkgrel=1
-#_snapshot=4.9.0-RC-20140411
+_snapshot=4.9-20140507
pkgdesc="The GNU Compiler Collection for multilib with x32 ABI support"
arch=('x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
@@ -20,11 +20,13 @@ makedepends=('binutils>=2.24' 'libmpc' 'cloog' 'gcc-ada-multilib' 'doxygen'
'lib32-glibc>=2.19' 'libx32-glibc>=2.19')
checkdepends=('dejagnu' 'inetutils')
options=('!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
- gcc-4.8-filename-output.patch)
-md5sums=('9709b49ae0e904cbb0a6a1b62853b556'
- '40cb437805e2f7a006aa0d0c3098ab0f')
+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
+ gcc-4.8-filename-output.patch
+ gcc-4.9-tree-ssa-threadedge.patch)
+md5sums=('47dc2b91d2876daff53c20c30164c38f'
+ '40cb437805e2f7a006aa0d0c3098ab0f'
+ '311ece7f5446d550e84e28692d2fb823')
if [ -n "${_snapshot}" ]; then
@@ -36,6 +38,13 @@ fi
_libdir="usr/lib/gcc/$CHOST/${pkgver%_*}"
prepare() {
+ if [ ! `zgrep CONFIG_X86_X32=y /proc/config.gz` ]; then
+ error "Your current kernel doesn't support X32 ABI!"
+ msg2 "You need to install a kernel with CONFIG_X86_X32=y"
+ msg2 "linux-pf from AUR for example supports X32 ABI"
+ exit 1
+ fi
+
cd ${srcdir}/${_basedir}
# Do not run fixincludes
@@ -52,6 +61,9 @@ prepare() {
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653
patch -p0 -i ${srcdir}/gcc-4.8-filename-output.patch
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60902
+ patch -p1 -i ${srcdir}/gcc-4.9-tree-ssa-threadedge.patch
+
mkdir ${srcdir}/gcc-build
}
@@ -240,6 +252,9 @@ package_gcc-multilib-x32()
make -C $CHOST/x32/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
make -C libiberty DESTDIR=${pkgdir} install
+ # install PIC version of libiberty
+ install -m644 ${srcdir}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/usr/lib
+
make -C gcc DESTDIR=${pkgdir} install-man install-info
rm ${pkgdir}/usr/share/man/man1/{gccgo,gfortran}.1
@@ -248,7 +263,7 @@ package_gcc-multilib-x32()
make -C libcpp DESTDIR=${pkgdir} install
make -C gcc DESTDIR=${pkgdir} install-po
- # many packages expect this symlinks
+ # many packages expect this symlink
ln -s gcc ${pkgdir}/usr/bin/cc
# POSIX conformance launcher scripts for c89 and c99
@@ -292,13 +307,14 @@ package_gcc-fortran-multilib-x32()
{
pkgdesc="Fortran front-end for GCC for multilib with x32 ABI support"
depends=("gcc-multilib-x32=$pkgver-$pkgrel")
- provides=("gcc-fortran=${pkgver//_/-}")
+ provides=("gcc-fortran=${pkgver//_/-}" "gcc-fortran-multilib=${pkgver//_/-}")
conflicts=('gcc-fortran')
options=('staticlibs' '!emptydirs')
install=gcc-fortran.install
cd ${srcdir}/gcc-build
make -C $CHOST/libgfortran DESTDIR=$pkgdir install-{{caf,my}execlibLTLIBRARIES,toolexeclibDATA}
+ make -C $CHOST/32/libgfortran DESTDIR=$pkgdir install-{{caf,my}execlibLTLIBRARIES,toolexeclibDATA}
make -C $CHOST/x32/libgfortran DESTDIR=$pkgdir install-{{caf,my}execlibLTLIBRARIES,toolexeclibDATA}
make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
make -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
@@ -315,7 +331,7 @@ package_gcc-objc-multilib-x32()
{
pkgdesc="Objective-C front-end for GCC for multilib with x32 ABI support"
depends=("gcc-multilib-x32=$pkgver-$pkgrel")
- provides=("gcc-objc=${pkgver//_/-}")
+ provides=("gcc-objc=${pkgver//_/-}" "gcc-objc-multilib=${pkgver//_/-}")
conflicts=('gcc-objc')
cd ${srcdir}/gcc-build
@@ -332,7 +348,7 @@ package_gcc-ada-multilib-x32()
{
pkgdesc="Ada front-end for GCC (GNAT) for multilib with x32 ABI support"
depends=("gcc-multilib-x32=$pkgver-$pkgrel")
- provides=("gcc-ada=${pkgver//_/-}")
+ provides=("gcc-ada=${pkgver//_/-}" "gcc-ada-multilib=${pkgver//_/-}")
conflicts=('gcc-ada')
options=('staticlibs' '!emptydirs')
install=gcc-ada.install
@@ -341,7 +357,11 @@ package_gcc-ada-multilib-x32()
make DESTDIR=$pkgdir ada.install-{common,info}
install -m755 gnat1 $pkgdir/${_libdir}
- cd ../$CHOST/x32/libada
+ cd ${srcdir}/gcc-build/$CHOST/32/libada
+ make DESTDIR=${pkgdir} INSTALL="install" \
+ INSTALL_DATA="install -m644" install-gnatlib
+
+ cd ${srcdir}/gcc-build/$CHOST/x32/libada
make DESTDIR=${pkgdir} INSTALL="install" \
INSTALL_DATA="install -m644" install-gnatlib
@@ -353,6 +373,12 @@ package_gcc-ada-multilib-x32()
ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib/libgnat.so
rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}.so
+ install -d ${pkgdir}/usr/lib32/
+ mv ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib32
+ ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib32/libgnarl.so
+ ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib32/libgnat.so
+ rm ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}.so
+
install -d ${pkgdir}/usr/libx32/
mv ${pkgdir}/${_libdir}/x32/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/libx32
ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/libx32/libgnarl.so
@@ -368,18 +394,19 @@ package_gcc-go-multilib-x32()
{
pkgdesc="Go front-end for GCC for multilib with x32 ABI support"
depends=("gcc-multilib-x32=$pkgver-$pkgrel")
- provides=("gcc-go=${pkgver//_/-}")
+ provides=("gcc-go=${pkgver//_/-}" "gcc-go-multilib=${pkgver//_/-}")
conflicts=('gcc-go')
options=('staticlibs' '!emptydirs')
install=gcc-go.install
cd ${srcdir}/gcc-build
make -C $CHOST/libgo DESTDIR=$pkgdir install-exec-am
+ make -C $CHOST/32/libgo DESTDIR=$pkgdir install-exec-am
make -C $CHOST/x32/libgo DESTDIR=$pkgdir install-exec-am
make -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1
- rm $pkgdir/usr/lib{,x32}/libgo.a
+ rm $pkgdir/usr/lib{,32,x32}/libgo.a
# Install Runtime Library Exception
install -d ${pkgdir}/usr/share/licenses/gcc-go-multilib-x32/
diff --git a/gcc-4.9-tree-ssa-threadedge.patch b/gcc-4.9-tree-ssa-threadedge.patch
new file mode 100644
index 000000000000..8827427e4d60
--- /dev/null
+++ b/gcc-4.9-tree-ssa-threadedge.patch
@@ -0,0 +1,38 @@
+--- trunk/gcc/tree-ssa-threadedge.c 2014/04/23 17:53:56 209715
++++ trunk/gcc/tree-ssa-threadedge.c 2014/04/23 18:04:46 209716
+@@ -387,7 +387,34 @@
+ && (gimple_code (stmt) != GIMPLE_CALL
+ || gimple_call_lhs (stmt) == NULL_TREE
+ || TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME))
+- continue;
++ {
++ /* STMT might still have DEFS and we need to invalidate any known
++ equivalences for them.
++
++ Consider if STMT is a GIMPLE_ASM with one or more outputs that
++ feeds a conditional inside a loop. We might derive an equivalence
++ due to the conditional. */
++ tree op;
++ ssa_op_iter iter;
++
++ if (backedge_seen)
++ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
++ {
++ /* This call only invalidates equivalences created by
++ PHI nodes. This is by design to keep the cost of
++ of invalidation reasonable. */
++ invalidate_equivalences (op, stack, src_map, dst_map);
++
++ /* However, conditionals can imply values for real
++ operands as well. And those won't be recorded in the
++ maps. In fact, those equivalences may be recorded totally
++ outside the threading code. We can just create a new
++ temporary NULL equivalence here. */
++ record_temporary_equivalence (op, NULL_TREE, stack);
++ }
++
++ continue;
++ }
+
+ /* The result of __builtin_object_size depends on all the arguments
+ of a phi node. Temporarily using only one edge produces invalid