diff options
author | Fantix King | 2012-09-22 18:09:32 +0800 |
---|---|---|
committer | Fantix King | 2015-11-08 20:36:45 +0800 |
commit | 79635d5a7c8a23847d9f93356d19645ff5d12c4f (patch) | |
tree | 76e0f84092214a9db4d1eb8bb3e08632249f46ac | |
parent | 47edaa40a24592dd22721132333df90e0c5e201f (diff) | |
download | aur-79635d5a7c8a23847d9f93356d19645ff5d12c4f.tar.gz |
4.7.1-6.1
-rw-r--r-- | .SRCINFO | 74 | ||||
-rw-r--r-- | 189626.patch | 14 | ||||
-rw-r--r-- | PKGBUILD | 135 | ||||
-rw-r--r-- | gcc_pure64-multilib.patch | 3 |
4 files changed, 127 insertions, 99 deletions
@@ -1,7 +1,7 @@ -pkgbase = gcc-multilib - pkgdesc = The GNU Compiler Collection for multilib +pkgbase = gcc-multilib-x32 + pkgdesc = The GNU Compiler Collection for multilib with x32 ABI support pkgver = 4.7.1 - pkgrel = 5 + pkgrel = 6.1 url = http://gcc.gnu.org arch = x86_64 license = GPL @@ -13,70 +13,70 @@ pkgbase = gcc-multilib makedepends = libmpc makedepends = cloog makedepends = ppl - makedepends = gcc-ada-multilib makedepends = lib32-glibc>=2.16 + makedepends = libx32-glibc>=2.16 options = !libtool options = !emptydirs source = ftp://gcc.gnu.org/pub/gcc/snapshots/4.7-20120721/gcc-4.7-20120721.tar.bz2 - source = ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.20120605.man.tar.bz2 + source = ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.20120725.man.tar.bz2 source = gcc_pure64-multilib.patch source = gcc-4.7.1-libada-pic.patch source = gcc-4.7.1-libgo-write.patch + source = 189626.patch md5sums = a1a53fda426bc6809cede8e85bbaf2a3 - md5sums = 767c62f9a047c4434f2345decf1d0819 - md5sums = ec24c32d3d1030c2bc8cb2ad2d1dc629 + md5sums = 79c4381f983b71868c02da3379e1e8a2 + md5sums = 55818c34a79ec90913ef7778e17ea6b6 md5sums = 2acbc9d35cc9d72329dc71d6b1f162ef md5sums = df82dd175ac566c8a6d46b11ac21f14c + md5sums = e01126c78cefe99498ff1e04fa728a2b -pkgname = gcc-multilib - pkgdesc = The GNU Compiler Collection - C and C++ frontends for multilib +pkgname = gcc-multilib-x32 + pkgdesc = The GNU Compiler Collection - C and C++ frontends for multilib with x32 ABI support install = gcc.install groups = multilib-devel - depends = gcc-libs-multilib=4.7.1-5 + depends = gcc-libs-multilib-x32=4.7.1-6.1 depends = binutils-multilib>=2.22 depends = libmpc depends = cloog depends = ppl - provides = gcc=4.7.1-5 + provides = gcc=4.7.1-6 + provides = gcc-multilib=4.7.1-6 + provides = gcc-x32-seed=4.7.1-6 conflicts = gcc + conflicts = gcc-x32-seed -pkgname = gcc-libs-multilib - pkgdesc = Runtime libraries shipped by GCC for multilib +pkgname = gcc-libs-multilib-x32 + pkgdesc = Runtime libraries shipped by GCC for multilib with x32 ABI support install = gcc-libs.install depends = glibc>=2.16 - depends = lib32-gcc-libs=4.7.1-5 - provides = gcc-libs=4.7.1-5 + depends = lib32-gcc-libs=4.7.1-6 + depends = libx32-gcc-libs=4.7.1-6.1 + provides = gcc-libs=4.7.1-6 + provides = gcc-libs-multilib=4.7.1-6 conflicts = gcc-libs -pkgname = lib32-gcc-libs - pkgdesc = Runtime libraries shipped by GCC (32-bit) - depends = lib32-glibc>=2.16 +pkgname = libx32-gcc-libs + pkgdesc = Runtime libraries shipped by GCC (x32 ABI) + depends = libx32-glibc>=2.16 depends = gcc-libs>=4.7.1 -pkgname = gcc-fortran-multilib - pkgdesc = Fortran front-end for GCC for multilib +pkgname = gcc-fortran-multilib-x32 + pkgdesc = Fortran front-end for GCC for multilib with x32 ABI support install = gcc-fortran.install - depends = gcc-multilib=4.7.1-5 - provides = gcc-fortran=4.7.1-5 + depends = gcc-multilib-x32=4.7.1-6.1 + provides = gcc-fortran=4.7.1-6 conflicts = gcc-fortran -pkgname = gcc-objc-multilib - pkgdesc = Objective-C front-end for GCC for multilib - depends = gcc-multilib=4.7.1-5 - provides = gcc-objc=4.7.1-5 +pkgname = gcc-objc-multilib-x32 + pkgdesc = Objective-C front-end for GCC for multilib with x32 ABI support + depends = gcc-multilib-x32=4.7.1-6.1 + provides = gcc-objc=4.7.1-6 conflicts = gcc-objc -pkgname = gcc-ada-multilib - pkgdesc = Ada front-end for GCC (GNAT) for multilib - install = gcc-ada.install - depends = gcc-multilib=4.7.1-5 - provides = gcc-ada=4.7.1-5 - conflicts = gcc-ada - -pkgname = gcc-go-multilib - pkgdesc = Go front-end for GCC for multilib +pkgname = gcc-go-multilib-x32 + pkgdesc = Go front-end for GCC for multilib with x32 ABI support install = gcc-go.install - depends = gcc-multilib=4.7.1-5 - provides = gcc-go=4.7.1-5 + depends = gcc-multilib-x32=4.7.1-6.1 + provides = gcc-go=4.7.1-6 conflicts = gcc-go diff --git a/189626.patch b/189626.patch new file mode 100644 index 000000000000..d85a64f24357 --- /dev/null +++ b/189626.patch @@ -0,0 +1,14 @@ +--- trunk/libffi/src/x86/ffitarget.h 2012/07/18 19:00:33 189625 ++++ trunk/libffi/src/x86/ffitarget.h 2012/07/18 19:19:34 189626 +@@ -61,8 +61,9 @@ + typedef long long ffi_sarg; + #endif + #else +-#if defined __x86_64__ && !defined __LP64__ ++#if defined __x86_64__ && defined __ILP32__ + #define FFI_SIZEOF_ARG 8 ++#define FFI_SIZEOF_JAVA_RAW 4 + typedef unsigned long long ffi_arg; + typedef long long ffi_sarg; + #else + @@ -1,22 +1,24 @@ -# $Id: PKGBUILD 74164 2012-07-22 14:59:12Z heftig $ +# $Id: PKGBUILD 74996 2012-08-11 10:05:23Z heftig $ # Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Allan McRae <allan@archlinux.org> # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc # NOTE: libtool requires rebuilt with each new gcc version -pkgbase='gcc-multilib' -pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib') +pkgbase='gcc-multilib-x32' +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-go-multilib-x32') pkgver=4.7.1 -pkgrel=5 +pkgrel=6.1 +_origrel=6 _snapshot=4.7-20120721 -_libstdcppmanver=20120605 # Note: check source directory name when updating this -pkgdesc="The GNU Compiler Collection for multilib" +_libstdcppmanver=20120725 # Note: check source directory name when updating this +pkgdesc="The GNU Compiler Collection for multilib with x32 ABI support" arch=('x86_64') license=('GPL' 'LGPL' 'FDL' 'custom') url="http://gcc.gnu.org" -makedepends=('binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib' - 'lib32-glibc>=2.16') +makedepends=('binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl' + 'lib32-glibc>=2.16' 'libx32-glibc>=2.16') checkdepends=('dejagnu') options=('!libtool' '!emptydirs') source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 @@ -24,13 +26,14 @@ source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2 ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2 gcc_pure64-multilib.patch gcc-4.7.1-libada-pic.patch - gcc-4.7.1-libgo-write.patch) + gcc-4.7.1-libgo-write.patch + 189626.patch) md5sums=('a1a53fda426bc6809cede8e85bbaf2a3' - '767c62f9a047c4434f2345decf1d0819' - 'ec24c32d3d1030c2bc8cb2ad2d1dc629' + '79c4381f983b71868c02da3379e1e8a2' + '55818c34a79ec90913ef7778e17ea6b6' '2acbc9d35cc9d72329dc71d6b1f162ef' - 'df82dd175ac566c8a6d46b11ac21f14c') - + 'df82dd175ac566c8a6d46b11ac21f14c' + 'e01126c78cefe99498ff1e04fa728a2b') if [ -n "${_snapshot}" ]; then _basedir="${srcdir}/gcc-${_snapshot}" @@ -55,6 +58,10 @@ build() { # bug to file... patch -p1 -i ${srcdir}/gcc-4.7.1-libada-pic.patch + # http://gcc.1065356.n5.nabble.com/Bug-java-53982-New-gij-built-for-x32-can-t-run-a-simple-Hello-World-class-td452375.html + # not yet ready for GCC 4.8 + #patch -p1 -i ${srcdir}/189626.patch + echo ${pkgver} > gcc/BASE-VER cd ${srcdir} @@ -64,7 +71,7 @@ build() { --libdir=/usr/lib --libexecdir=/usr/lib \ --mandir=/usr/share/man --infodir=/usr/share/info \ --with-bugurl=https://bugs.archlinux.org/ \ - --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \ + --enable-languages=c,c++,fortran,go,lto,objc,obj-c++ \ --enable-shared --enable-threads=posix \ --with-system-zlib --enable-__cxa_atexit \ --disable-libunwind-exceptions --enable-clocale=gnu \ @@ -75,7 +82,8 @@ build() { --enable-lto --enable-gold --enable-ld=default \ --enable-plugin --with-plugin-ld=ld.gold \ --with-linker-hash-style=gnu \ - --enable-multilib --disable-libssp \ + --enable-multilib --with-multilib-list=m32,m64,mx32 \ + --disable-libssp \ --disable-build-with-cxx --disable-build-poststage1-with-cxx \ --enable-checking=release make @@ -93,11 +101,11 @@ check() { ${_basedir}/contrib/test_summary } -package_gcc-libs-multilib() +package_gcc-libs-multilib-x32() { - pkgdesc="Runtime libraries shipped by GCC for multilib" - depends=('glibc>=2.16' "lib32-gcc-libs=$pkgver-$pkgrel") - provides=("gcc-libs=$pkgver-$pkgrel") + pkgdesc="Runtime libraries shipped by GCC for multilib with x32 ABI support" + depends=('glibc>=2.16' "lib32-gcc-libs=$pkgver-$_origrel" "libx32-gcc-libs=$pkgver-$pkgrel") + provides=("gcc-libs=$pkgver-$_origrel" "gcc-libs-multilib=$pkgver-$_origrel") conflicts=('gcc-libs') install=gcc-libs.install @@ -119,6 +127,7 @@ package_gcc-libs-multilib() # remove stuff in lib32-gcc-libs rm -r ${pkgdir}/usr/lib32 + rm -r ${pkgdir}/usr/libx32 # remove static libraries find ${pkgdir} -name *.a -delete @@ -128,15 +137,15 @@ package_gcc-libs-multilib() ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION } -package_lib32-gcc-libs() +package_libx32-gcc-libs() { - pkgdesc="Runtime libraries shipped by GCC (32-bit)" - depends=('lib32-glibc>=2.16' "gcc-libs>=$pkgver") + pkgdesc="Runtime libraries shipped by GCC (x32 ABI)" + depends=('libx32-glibc>=2.16' "gcc-libs>=$pkgver") cd gcc-build - make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared + make -j1 -C $CHOST/x32/libgcc DESTDIR=${pkgdir} install-shared for lib in libmudflap libgomp libstdc++-v3/src libitm; do - make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES + make -j1 -C $CHOST/x32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES done make -j1 DESTDIR=${pkgdir} install-target-libquadmath @@ -144,10 +153,11 @@ package_lib32-gcc-libs() make -j1 DESTDIR=${pkgdir} install-target-libobjc # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc} - rm ${pkgdir}/usr/lib32/libgfortran.spec + rm ${pkgdir}/usr/libx32/libgfortran.spec # remove stuff in gcc-libs-multilib rm -r ${pkgdir}/usr/lib + rm -r ${pkgdir}/usr/lib32 rm -r ${pkgdir}/usr/share/info # remove static libraries @@ -155,16 +165,15 @@ package_lib32-gcc-libs() # Install Runtime Library Exception install -Dm644 ${_basedir}/COPYING.RUNTIME \ - ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION + ${pkgdir}/usr/share/licenses/libx32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION } - -package_gcc-multilib() +package_gcc-multilib-x32() { - pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib" - depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl') + pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib with x32 ABI support" + depends=("gcc-libs-multilib-x32=$pkgver-$pkgrel" 'binutils-multilib>=2.22' 'libmpc' 'cloog' 'ppl') groups=('multilib-devel') - provides=("gcc=$pkgver-$pkgrel") - conflicts=('gcc') + provides=("gcc=$pkgver-$_origrel" "gcc-multilib=$pkgver-$_origrel" "gcc-x32-seed=$pkgver-$_origrel") + conflicts=('gcc' 'gcc-x32-seed') install=gcc.install cd gcc-build @@ -175,22 +184,21 @@ package_gcc-multilib() mv $pkgdir{,/usr/share/gdb/auto-load}/usr/lib/libstdc++.so.6.0.17-gdb.py # unfortunately it is much, much easier to install the lot and clean-up the mess... - rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*} - rm $pkgdir/usr/lib{,32}/*.so* - rm $pkgdir/usr/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a - rm $pkgdir/usr/lib{,32}/libgfortran.spec - rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc} + rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*} || true + rm $pkgdir/usr/lib{,32,x32}/*.so* + rm $pkgdir/usr/lib{,32,x32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a + rm $pkgdir/usr/lib{,32,x32}/libgfortran.spec + rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/,x32/}ada{include,lib},finclude,include/objc} || true rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h} - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1} - rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{,32/}{libcaf_single,libgfortranbegin}.a - rm -r $pkgdir/usr/lib{,32}/go - rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath,libitm}.info + rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1} || true + rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{,32/,x32/}{libcaf_single,libgfortranbegin}.a + rm -r $pkgdir/usr/lib{,32,x32}/go + rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath,libitm}.info || true rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1 rm $pkgdir/usr/share/man/man3/ffi* - # many packages require these symlinks - ln -s /usr/bin/cpp ${pkgdir}/usr/lib/cpp + # many packages expect this symlinks ln -s gcc ${pkgdir}/usr/bin/cc # POSIX conformance launcher scripts for c89 and c99 @@ -232,11 +240,11 @@ EOF ${pkgdir}/usr/share/licenses/gcc-multilib/RUNTIME.LIBRARY.EXCEPTION } -package_gcc-fortran-multilib() +package_gcc-fortran-multilib-x32() { - pkgdesc="Fortran front-end for GCC for multilib" - depends=("gcc-multilib=$pkgver-$pkgrel") - provides=("gcc-fortran=$pkgver-$pkgrel") + pkgdesc="Fortran front-end for GCC for multilib with x32 ABI support" + depends=("gcc-multilib-x32=$pkgver-$pkgrel") + provides=("gcc-fortran=$pkgver-$_origrel") conflicts=('gcc-fortran') install=gcc-fortran.install @@ -248,7 +256,7 @@ package_gcc-fortran-multilib() install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951 # remove libraries included in gcc-libs - rm ${pkgdir}/usr/lib{,32}/lib{gfortran,quadmath}.so* + rm ${pkgdir}/usr/lib{,32,x32}/lib{gfortran,quadmath}.so* rm ${pkgdir}/usr/share/info/libquadmath.info ln -s gfortran ${pkgdir}/usr/bin/f95 @@ -258,11 +266,11 @@ package_gcc-fortran-multilib() ${pkgdir}/usr/share/licenses/gcc-fortran-multilib/RUNTIME.LIBRARY.EXCEPTION } -package_gcc-objc-multilib() +package_gcc-objc-multilib-x32() { - pkgdesc="Objective-C front-end for GCC for multilib" - depends=("gcc-multilib=$pkgver-$pkgrel") - provides=("gcc-objc=$pkgver-$pkgrel") + pkgdesc="Objective-C front-end for GCC for multilib with x32 ABI support" + depends=("gcc-multilib-x32=$pkgver-$pkgrel") + provides=("gcc-objc=$pkgver-$_origrel") conflicts=('gcc-objc') cd gcc-build @@ -271,18 +279,18 @@ package_gcc-objc-multilib() install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/ # remove libraries included in gcc-libs - rm ${pkgdir}/usr/lib{,32}/libobjc.so* + rm ${pkgdir}/usr/lib{,32,x32}/libobjc.so* # Install Runtime Library Exception install -Dm644 ${_basedir}/COPYING.RUNTIME \ ${pkgdir}/usr/share/licenses/gcc-objc-multilib/RUNTIME.LIBRARY.EXCEPTION } -package_gcc-ada-multilib() +package_gcc-ada-multilib-x32() { - pkgdesc="Ada front-end for GCC (GNAT) for multilib" - depends=("gcc-multilib=$pkgver-$pkgrel") - provides=("gcc-ada=$pkgver-$pkgrel") + pkgdesc="Ada front-end for GCC (GNAT) for multilib with x32 ABI support" + depends=("gcc-multilib-x32=$pkgver-$pkgrel") + provides=("gcc-ada=$pkgver-$_origrel") conflicts=('gcc-ada') install=gcc-ada.install @@ -294,6 +302,10 @@ package_gcc-ada-multilib() make -j1 DESTDIR=${pkgdir} INSTALL="install" \ INSTALL_DATA="install -m644" install-gnatlib + cd ../$CHOST/x32/libada + make -j1 DESTDIR=${pkgdir} INSTALL="install" \ + INSTALL_DATA="install -m644" install-gnatlib + ln -s gcc ${pkgdir}/usr/bin/gnatgcc # Install Runtime Library Exception @@ -301,11 +313,11 @@ package_gcc-ada-multilib() ${pkgdir}/usr/share/licenses/gcc-ada-multilib/RUNTIME.LIBRARY.EXCEPTION } -package_gcc-go-multilib() +package_gcc-go-multilib-x32() { - pkgdesc="Go front-end for GCC for multilib" - depends=("gcc-multilib=$pkgver-$pkgrel") - provides=("gcc-go=$pkgver-$pkgrel") + pkgdesc="Go front-end for GCC for multilib with x32 ABI support" + depends=("gcc-multilib-x32=$pkgver-$pkgrel") + provides=("gcc-go=$pkgver-$_origrel") conflicts=('gcc-go') install=gcc-go.install @@ -318,3 +330,4 @@ package_gcc-go-multilib() install -Dm644 ${_basedir}/COPYING.RUNTIME \ ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION } +pkgdesc="The GNU Compiler Collection for multilib with x32 ABI support" diff --git a/gcc_pure64-multilib.patch b/gcc_pure64-multilib.patch index b5576ae0e2f8..038aad06e76d 100644 --- a/gcc_pure64-multilib.patch +++ b/gcc_pure64-multilib.patch @@ -6,8 +6,9 @@ diff -u -r gcc-4.7.0/gcc/config/i386/linux64.h gcc-4.7.0-pure64/gcc/config/i386/ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" -#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" +-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" +#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" - #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" ++#define GLIBC_DYNAMIC_LINKERX32 "/lib/ld-linux-x32.so.2" diff -u -r gcc-4.7.0/gcc/config/i386/t-linux64 gcc-4.7.0-pure64/gcc/config/i386/t-linux64 --- gcc-4.7.0/gcc/config/i386/t-linux64 2011-11-02 16:23:48.000000000 +0100 +++ gcc-4.7.0-pure64/gcc/config/i386/t-linux64 2012-03-24 11:52:44.119651885 +0100 |