diff options
author | Joey Dumont | 2017-08-02 13:40:29 -0400 |
---|---|---|
committer | Joey Dumont | 2017-08-02 13:40:29 -0400 |
commit | edcbf23d7ef66e3cc4fc9b3081ba547894f46249 (patch) | |
tree | afea817fdbf263834103a7a87e6a33c5d9264014 /PKGBUILD | |
parent | 9c4766bf83b15d744c45de052a58c73438131a67 (diff) | |
download | aur-edcbf23d7ef66e3cc4fc9b3081ba547894f46249.tar.gz |
Working version of gcc and gcc-gcj.
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 202 |
1 files changed, 121 insertions, 81 deletions
@@ -9,32 +9,25 @@ pkgbase=gcc6 _ver=6 pkgname=('gcc6' 'gcc6-libs' 'gcc6-fortran' 'gcc6-objc' 'gcc6-ada' 'gcc6-go' 'gcc6-gcj') pkgver=6.4.0 -pkgrel=1 +pkgrel=2 _islver=0.17 _cloogver=0.18.4 _commit=45dd06cef49fe00a7839d7dff312b09e88910a51 -pkgdesc="The GNU Compiler for Java" +pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64') -license=('GPL' 'LGPL') +license=('GPL' 'LGPL' 'FDL' 'custom') url="http://gcc.gnu.org" -depends=('gtk2' 'libxtst' 'alsa-lib' 'libmpc>=0.8.1' 'classpath') -makedepends=('binutils>=2.28' 'mpfr>=2.4.2' 'elfutils' 'jack' 'zip' 'libart-lgpl' 'gcc-ada' 'gcc-objc' 'gcc-go' 'gcc-fortran' 'git') -optdepends=('python2: for running /usr/bin/aot-compile' - 'java-environment: for runnig some jars') -options=('!libtool' '!makeflags') -source=("https://github.com/gcc-mirror/gcc/archive/${_commit}.tar.gz" - "http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2" - "http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz") -sha512sums=('cfe9a009580c4043ea365155012104f73281778f9a79b8a596289d0344fedb808648a9ffd9d48687ad45b43c0ecb029d59cee789d58c17da3bd92db4554c5d46' - '8a2a51d8acbf966c37868fd714ee46cf0b87e1f9d8d9d3148eb2c4b331b7170916d7392fee7fa0af73988a3b8583a6e937dd643b5a574b7e61a09c5bc3347c27' - 'd35d67b08ffe13c1a010b65bfe4dd02b0ae013d5b489e330dc950bd3514defca8f734bd37781856dcedf0491ff6122c34eecb4b0fe32a22d7e6bdadea98c8c23') - -if [ "${CARCH}" = "x86_64" ]; then - export CHOST=x86_64-pc-linux-gnu -elif [ "${CARCH}" = "i686" ]; then - export CHOST=i686-pc-linux-gnu -fi -export _libdir="/usr/lib/gcc/$CHOST/$pkgver" +makedepends=('binutils>=2.28' 'libmpc' 'doxygen') +checkdepends=('dejagnu' 'inetutils') +options=(!emptydirs) +source=(https://github.com/gcc-mirror/gcc/archive/${_commit}.tar.gz + http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2 + http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz) +sha1sums=('07d9f8b6ab556745733c15da16778036cfd007c7' + '6243384d1b1d4b3043037698485a468a485b111a' + '8f7568ca1873f8d55bb694c8b9b83f7f4c6c1aa5') + +_libdir="/usr/lib/gcc/$CHOST/$pkgver" prepare() { cd "$srcdir"/gcc-${_commit}/ @@ -46,73 +39,103 @@ prepare() { # Do not run fixincludes sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in - # hack! - some configure tests for header files using "$CPP $CPPFLAGS" - sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure - # Arch Linux installs x86_64 libraries /lib [[ $CARCH == "x86_64" ]] && sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64 - # Arch uses python version 3 as default python + # hack! - some configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure + + # Arch uses python version 3 as default python (for gcc6-gcj). sed -i '1s+python+python2+' libjava/contrib/aot-compile.in - [ -d gcc-build ] || mkdir gcc-build + mkdir -p ${srcdir}/gcc-${_commit}/gcc-build } build() { - # Configure and build gcc-gcj. + # Configure and build gcc. cd ${srcdir}/gcc-${_commit}/gcc-build + # using -pipe causes spurious test-suite failures + # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565 + CFLAGS=${CFLAGS/-pipe/} + CXXFLAGS=${CXXFLAGS/-pipe/} + ../configure \ --prefix=/usr \ - --enable-shared \ - --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,java \ - --enable-threads=posix \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ + --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,java \ + --enable-shared \ + --enable-threads=posix \ + --enable-libmpx \ + --with-system-zlib \ + --with-isl \ --enable-__cxa_atexit \ - --disable-multilib \ - --libdir=/usr/lib \ - --libexecdir=/usr/lib \ + --disable-libunwind-exceptions \ --enable-clocale=gnu \ --disable-libstdcxx-pch \ - --with-tune=generic \ + --disable-libssp \ + --enable-gnu-unique-object \ + --enable-linker-build-id \ + --enable-lto \ + --enable-plugin \ + --with-linker-hash-style=gnu \ + --enable-gnu-indirect-function \ + --disable-multilib \ + --disable-werror \ + --enable-checking=release \ --enable-java-awt=gtk \ --with-java-home="$JAVA_HOME" \ --enable-libgcj-multifile \ - --disable-plugin \ - --with-system-zlib \ - --enable-cloog-backend=isl \ - --enable-install-libiberty \ --enable-version-specific-runtime-libs \ --program-suffix=-${_ver} \ --build="${CHOST}" make + + # make documentation + make -C ${CHOST}/libstdc++-v3/doc doc-man-doxygen } +#check() { +# cd ${srcdir}/gcc-${_commit}/gcc-build +# +# # increase stack size to prevent test failures +# # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827 +# ulimit -s 32768 + +# # do not abort on error as some are "expected" +# make -k check || true +# ${srcdir}/gcc/contrib/test_summary +#} + + package_gcc6-libs() { pkgdesc="Runtime libraries shipped by GCC" depends=('glibc>=2.25') options=('!emptydirs' '!strip') - cd ${srcdir}/gcc-${_commit}/gcc-build - - make -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared - rm ${pkgdir}/${_libdir}/libgcc_eh.a - - for lib in libatomic \ - libcilkrts \ - libgfortran \ - libgo \ - libgomp \ - libitm \ - libquadmath \ - libsanitizer/{a,l,ub}san \ - libstdc++-v3/src \ - libvtv; do + cd ${srcdir}/gcc-${_commit}/gcc-build + + make -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared + rm ${pkgdir}/${_libdir}/libgcc_eh.a + + for lib in libatomic \ + libcilkrts \ + libjava \ + libgfortran \ + libgo \ + libgomp \ + libitm \ + libquadmath \ + libsanitizer/{a,l,ub}san \ + libstdc++-v3/src \ + libvtv; do make -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES done @@ -126,8 +149,8 @@ package_gcc6-libs() { make -C $CHOST/libmpx DESTDIR=${pkgdir} install rm ${pkgdir}/${_libdir}/libmpx.spec - for lib in libgomp \ - libitm \ + for lib in libgomp \ + libitm \ libquadmath; do make -C $CHOST/$lib DESTDIR=${pkgdir} install-info done @@ -156,7 +179,7 @@ package_gcc6() for _i in gcov gcov-dump gcov-tool collect2 collect-ld lto1 do - install -Dm755 gcc/$_i $pkgdir/usr/bin/${_i}-6 + install -Dm755 gcc/$_i $pkgdir/usr/bin/${_i}-${_ver} done make -C $CHOST/libgcc DESTDIR=${pkgdir} install @@ -166,10 +189,12 @@ package_gcc6() make -C $CHOST/libstdc++-v3/include DESTDIR=${pkgdir} install make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install make -C $CHOST/libstdc++-v3/python DESTDIR=${pkgdir} install - rm ${pkgdir}/${_libdir}/libstdc++.so* make DESTDIR=${pkgdir} install-libcc1 install -d $pkgdir/usr/share/gdb/auto-load/usr/lib + #mv ${pkgdir}/${_libdir}/libstdc++.so.6.*-gdb.py \ + # ${pkgdir}/usr/share/gdb/auto-load/{_libdir}/ + rm ${pkgdir}/${_libdir}/libstdc++.so* make DESTDIR=${pkgdir} install-fixincludes make -C gcc DESTDIR=${pkgdir} install-mkheaders @@ -189,14 +214,22 @@ package_gcc6() make -C $CHOST/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS make -C $CHOST/libmpx DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS + #make -C libiberty DESTDIR=${pkgdir} install + # install PIC version of libiberty + #install -m644 ${srcdir}/gcc-${_commit}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/${_libdir}/ + + make -C gcc DESTDIR=${pkgdir} install-man install-info + rm ${pkgdir}/usr/share/man/man1/{gccgo-${_ver},gfortran-${_ver}}.1 + rm ${pkgdir}/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info + make -C libcpp DESTDIR=${pkgdir} install make -C gcc DESTDIR=${pkgdir} install-po # many packages expect this symlink - ln -s gcc-6 ${pkgdir}/usr/bin/cc-6 + ln -s gcc-${_ver} ${pkgdir}/usr/bin/cc-${_ver} # POSIX conformance launcher scripts for c89 and c99 - cat > $pkgdir/usr/bin/c89-6 <<"EOF" + cat > $pkgdir/usr/bin/c89-${_ver} <<"EOF" #!/bin/sh fl="-std=c89" for opt; do @@ -206,10 +239,10 @@ for opt; do exit 1;; esac done -exec gcc-6 $fl ${1+"$@"} +exec gcc-${_ver} $fl ${1+"$@"} EOF - cat > $pkgdir/usr/bin/c99-6 <<"EOF" + cat > $pkgdir/usr/bin/c99-${_ver} <<"EOF" #!/bin/sh fl="-std=c99" for opt; do @@ -219,10 +252,10 @@ for opt; do exit 1;; esac done -exec gcc-6 $fl ${1+"$@"} +exec gcc-${_ver} $fl ${1+"$@"} EOF - chmod 755 $pkgdir/usr/bin/c{8,9}9-6 + chmod 755 $pkgdir/usr/bin/c{8,9}9-${_ver} # Install Runtime Library Exception install -d ${pkgdir}/usr/share/licenses/$pkgname/ @@ -234,15 +267,16 @@ EOF # Move potentially conflicting stuff to version specific subdirectory #[[ -d ${pkgdir}/usr/lib/gcc/${CHOST}/lib/ ]] && mv ${pkgdir}/usr/lib/gcc/${CHOST}/lib/lib* \ # ${pkgdir}/usr/lib/gcc/${CHOST}/${pkgver}/ - mv $pkgdir/usr/lib/bfd-plugins/liblto_plugin.so ${pkgdir}/usr/lib/bfd-plugins/liblto_plugin-6.so - install -Dm755 gcc/cc1 ${pkgdir}/${_libdir}/${pkgver}/cc1 - install -Dm755 gcc/cc1plus ${pkgdir}/${_libdir}/${pkgver}/cc1plus + mv $pkgdir/usr/lib/bfd-plugins/liblto_plugin.so ${pkgdir}/usr/lib/bfd-plugins/liblto_plugin-${_ver}.so + mv ${pkgdir}/usr/lib/*.so* ${pkgdir}/${_libdir}/ + install -Dm755 gcc/cc1 ${pkgdir}/${_libdir}/cc1 + install -Dm755 gcc/cc1plus ${pkgdir}/${_libdir}/cc1plus } package_gcc6-fortran() { pkgdesc="Fortran front-end for GCC" - depends=("gcc6") + depends=("gcc6=$pkgver-$pkgrel") options=('!emptydirs') cd ${srcdir}/gcc-${_commit}/gcc-build @@ -250,8 +284,9 @@ package_gcc6-fortran() install-{toolexeclibDATA,nodist_fincludeHEADERS} make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS make -C gcc DESTDIR=$pkgdir fortran.install-common - install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951-6 - ln -s gfortran-6 ${pkgdir}/usr/bin/f95-6 + install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951-${_ver} + + ln -s gfortran-6 ${pkgdir}/usr/bin/f95-${_ver} # Install Runtime Library Exception install -d ${pkgdir}/usr/share/licenses/$pkgname @@ -261,13 +296,13 @@ package_gcc6-fortran() package_gcc6-objc() { pkgdesc="Objective-C front-end for GCC" - depends=("gcc6") + depends=("gcc6=$pkgver-$pkgrel") cd ${srcdir}/gcc-${_commit}/gcc-build make DESTDIR=$pkgdir -C $CHOST/libobjc install-headers install -dm755 $pkgdir/${_libdir} - install -m755 gcc/cc1obj $pkgdir/${_libdir}/cc1obj-6 - install -m755 gcc/cc1objplus $pkgdir/${_libdir}/cc1objplus-6 + install -m755 gcc/cc1obj $pkgdir/${_libdir}/cc1obj-${_ver} + install -m755 gcc/cc1objplus $pkgdir/${_libdir}/cc1objplus-${_ver} # Install Runtime Library Exception install -d ${pkgdir}/usr/share/licenses/$pkgname/ @@ -277,18 +312,20 @@ package_gcc6-objc() package_gcc6-ada() { pkgdesc="Ada front-end for GCC (GNAT)" - depends=("gcc6") + depends=("gcc6=$pkgver-$pkgrel") options=('staticlibs' '!emptydirs') - _pkgver=${pkgver:0:1} + cd ${srcdir}/gcc-${_commit}/gcc-build/gcc make DESTDIR=$pkgdir ada.install-common - install -m755 gnat1 $pkgdir/${_libdir}/gnat1-6 + install -m755 gnat1 $pkgdir/${_libdir}/gnat1-${_ver} - ln -s gcc-6 ${pkgdir}/usr/bin/gnatgcc-6 + ln -s gcc-${_ver} ${pkgdir}/usr/bin/gnatgcc-${_ver} # insist on dynamic linking, but keep static libraries because gnatmake complains - mv ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib - rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}.so + mv ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_ver}.so ${pkgdir}/usr/lib + ln -s libgnarl-${_ver}.so ${pkgdir}/${_libdir}/libgnarl.so + ln -s libgnat-${_ver}.so ${pkgdir}/${_libdir}/libgnat.so + #rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_ver}.so # Install Runtime Library Exception install -d ${pkgdir}/usr/share/licenses/$pkgname/ @@ -298,14 +335,16 @@ package_gcc6-ada() package_gcc6-go() { pkgdesc="Go front-end for GCC" - depends=("gcc6") + depends=("gcc6=$pkgver-$pkgrel") conflicts=('go') options=('!emptydirs') cd ${srcdir}/gcc-${_commit}/gcc-build/ make -C $CHOST/libgo DESTDIR=$pkgdir install-exec-am - install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1-6 + rm ${pkgdir}/${_libdir}/libgo.so* + make -C gcc DESTDIR=$pkgdir go.install-common + install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1-${_ver} make DESTDIR=${pkgdir} install-gotools @@ -316,7 +355,7 @@ package_gcc6-go() package_gcc6-gcj() { pkgdesc="Java front-end for GCC" - depends=("gcc6") + depends=("gcc6=$pkgver-$pkgrel") replaces=('gcc-gcj') options=('!emptydirs') @@ -333,6 +372,7 @@ package_gcc6-gcj() { # Remove conflicting files. rm ${pkgdir}/usr/lib/gcc/${CHOST}/lib/libgcc_s.so* + rm ${pkgdir}/${_libdir}/libg{cj,ij}*.so* # Rename two files to not conflict to classpath mv ${pkgdir}/usr/share/info/cp-tools.info ${pkgdir}/usr/share/info/cp-tools-gcj.info |