Date: Saturday, December 8, 2018 @ 15:18:11 Author: svenstaro Revision: 412441
archrelease: copy trunk to community-staging-x86_64 Added: gcc7/repos/community-staging-x86_64/ gcc7/repos/community-staging-x86_64/PKGBUILD (from rev 412440, gcc7/trunk/PKGBUILD) gcc7/repos/community-staging-x86_64/bz84080.patch (from rev 412440, gcc7/trunk/bz84080.patch) ---------------+ PKGBUILD | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bz84080.patch | 27 +++++++ 2 files changed, 239 insertions(+) Copied: gcc7/repos/community-staging-x86_64/PKGBUILD (from rev 412440, gcc7/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2018-12-08 15:18:11 UTC (rev 412441) @@ -0,0 +1,212 @@ +# Maintainer: Sven-Hendrik Haase <svenst...@gmail.com> +# Contributor: Bartłomiej Piotrowski <bpiotrow...@archlinux.org> +# Contributor: Allan McRae <al...@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc +# NOTE: libtool requires rebuilt with each new gcc version + +pkgname=(gcc7 gcc7-libs) +pkgver=7.4.1+20181207 +_pkgver=1 +_majorver=${pkgver:0:1} +_islver=0.18 +pkgrel=1 +pkgdesc='The GNU Compiler Collection (7.x.x)' +arch=(x86_64) +license=(GPL LGPL FDL custom) +url='http://gcc.gnu.org' +makedepends=(binutils libmpc doxygen python) +checkdepends=(dejagnu inetutils) +options=(!emptydirs) +source=(https://sources.archlinux.org/other/gcc/gcc-${pkgver/+/-}.tar.xz{,.sig} + http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2 + bz84080.patch) +validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrow...@archlinux.org + 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guent...@gmail.com + 8FC15A064950A99DD1BD14DD39E4B877E62EB915) # svenst...@gmail.com +sha256sums=('7686fdae9dd09ad38a2c93374396eec4eaadb7df4960f9401d1f544162fd094f' + 'SKIP' + '6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b' + 'bce05807443558db55f0d6b4dae37a678ea1bb3388b541c876fe3d110e3717e7') + +_svnrev=266882 +_svnurl=svn://gcc.gnu.org/svn/gcc/branches/gcc-${_majorver}-branch +_libdir=usr/lib/gcc/$CHOST/${pkgver%%+*} + +snapshot() { + svn export -r${_svnrev} ${_svnurl} gcc-r${_svnrev} + + local datestamp basever _pkgver + basever=$(< gcc-r${_svnrev}/gcc/BASE-VER) + datestamp=$(< gcc-r${_svnrev}/gcc/DATESTAMP) + _pkgver=${basever}-${datestamp} + + mv gcc-r${_svnrev} gcc-${_pkgver} + tar cf - gcc-${_pkgver} | xz > gcc-${_pkgver}.tar.xz + rm -rf gcc-${_pkgver} + gpg -b gcc-${_pkgver}.tar.xz + scp gcc-${_pkgver}.tar.xz{,.sig} sources.archlinux.org:/srv/ftp/other/gcc/ + + echo + echo "pkgver=${_pkgver/-/+}" +} + +prepare() { + [[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc + cd gcc + + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84080 + patch -p0 -i "$srcdir/bz84080.patch" + + # link isl for in-tree build + ln -s ../isl-${_islver} isl + + # Do not run fixincludes + sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in + + # Arch Linux installs x86_64 libraries /lib + sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64 + + # hack! - some configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure + + mkdir -p "$srcdir/gcc-build" +} + +build() { + cd 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/} + + "$srcdir/gcc/configure" --prefix=/usr \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --with-bugurl=https://bugs.archlinux.org/ \ + --enable-languages=c,c++,lto \ + --enable-shared \ + --enable-threads=posix \ + --enable-libmpx \ + --with-system-zlib \ + --with-isl \ + --enable-__cxa_atexit \ + --disable-libunwind-exceptions \ + --enable-clocale=gnu \ + --disable-libstdcxx-pch \ + --disable-libssp \ + --enable-gnu-unique-object \ + --enable-linker-build-id \ + --enable-lto \ + --enable-plugin \ + --enable-install-libiberty \ + --with-linker-hash-style=gnu \ + --enable-gnu-indirect-function \ + --disable-werror \ + --enable-checking=release \ + --enable-default-pie \ + --enable-default-ssp \ + --program-suffix=-${_pkgver} \ + --enable-version-specific-runtime-libs + + make + + # make documentation + make -C $CHOST/libstdc++-v3/doc doc-man-doxygen +} + +check() { + cd gcc-build + + # do not abort on error as some are "expected" + make -k check || true + "$srcdir/gcc/contrib/test_summary" +} + +package_gcc7-libs() { + pkgdesc='Runtime libraries shipped by GCC (7.x.x)' + depends=('glibc>=2.27') + options+=(!strip) + + cd gcc-build + make -C $CHOST/libgcc DESTDIR="$pkgdir" install-shared + rm -f "$pkgdir/$_libdir/libgcc_eh.a" + mv "$pkgdir"/usr/lib/gcc/$CHOST/lib/libgcc_s.so* "$pkgdir"/$_libdir + + for lib in libatomic \ + libcilkrts \ + libgomp \ + libitm \ + libquadmath \ + libsanitizer/{a,l,ub,t}san \ + libstdc++-v3/src \ + libvtv; do + make -C $CHOST/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES + done + + make -C $CHOST/libmpx DESTDIR="$pkgdir" install + rm -f "$pkgdir"/$_libdir/libmpx.spec + + # Install Runtime Library Exception + install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \ + "$pkgdir/usr/share/licenses/gcc7-libs/RUNTIME.LIBRARY.EXCEPTION" +} + +package_gcc7() { + pkgdesc="The GNU Compiler Collection - C and C++ frontends (7.x.x)" + depends=("gcc7-libs=$pkgver-$pkgrel" 'binutils>=2.28' libmpc) + options+=(staticlibs) + + cd gcc-build + + make -C gcc DESTDIR="$pkgdir" install-driver install-cpp install-gcc-ar \ + c++.install-common install-headers install-plugin install-lto-wrapper + + install -m755 -t "$pkgdir/${_libdir}/" gcc/{cc1,cc1plus,collect2,lto1} + + make -C $CHOST/libgcc DESTDIR="$pkgdir" install + rm -rf "$pkgdir"/usr/lib/gcc/$CHOST/lib* + + make -C $CHOST/libstdc++-v3/src DESTDIR="$pkgdir" install + 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 + + make DESTDIR="$pkgdir" install-libcc1 + mv "$pkgdir"/usr/lib/libcc1.so* "$pkgdir"/${_libdir} + rm -f "$pkgdir"/${_libdir}/libstdc++.so* + + make DESTDIR="$pkgdir" install-fixincludes + make -C gcc DESTDIR="$pkgdir" install-mkheaders + make -C lto-plugin DESTDIR="$pkgdir" install + + make -C $CHOST/libcilkrts DESTDIR="$pkgdir" install-nodist_{toolexeclib,cilkinclude}HEADERS + make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_{libsubinclude,toolexeclib}HEADERS + make -C $CHOST/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS + make -C $CHOST/libquadmath DESTDIR="$pkgdir" install-nodist_libsubincludeHEADERS + make -C $CHOST/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS + make -C $CHOST/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS + make -C $CHOST/libmpx DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS + + make -C libcpp DESTDIR="$pkgdir" install + + # many packages expect this symlink + ln -s gcc-7 "$pkgdir"/usr/bin/cc-7 + + rm -f "$pkgdir"/$_libdir/lib{stdc++,gcc_s}.so + + # byte-compile python libraries + python -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/" + python -O -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/" + + # Install Runtime Library Exception + install -d "$pkgdir/usr/share/licenses/$pkgname/" + ln -s /usr/share/licenses/gcc7-libs/RUNTIME.LIBRARY.EXCEPTION \ + "$pkgdir/usr/share/licenses/$pkgname/" + + # Remove conflicting files + rm -rf "$pkgdir"/usr/share/locale +} Copied: gcc7/repos/community-staging-x86_64/bz84080.patch (from rev 412440, gcc7/trunk/bz84080.patch) =================================================================== --- community-staging-x86_64/bz84080.patch (rev 0) +++ community-staging-x86_64/bz84080.patch 2018-12-08 15:18:11 UTC (rev 412441) @@ -0,0 +1,27 @@ +Index: gcc/testsuite/g++.dg/cpp1y/auto-fn47.C +=================================================================== +--- gcc/testsuite/g++.dg/cpp1y/auto-fn47.C (nonexistent) ++++ gcc/testsuite/g++.dg/cpp1y/auto-fn47.C (revision 257630) +@@ -0,0 +1,6 @@ ++// PR c++/84080 ++// { dg-do compile { target c++14 } } ++ ++template <int i, typename T> T foo(); ++ ++template <> auto foo<0>() { return 42; } // { dg-error "does not match" } +Index: gcc/cp/pt.c +=================================================================== +--- gcc/cp/pt.c (revision 257629) ++++ gcc/cp/pt.c (revision 257630) +@@ -2203,6 +2203,11 @@ + specialize TMPL will produce DECL. */ + continue; + ++ if (uses_template_parms (targs)) ++ /* We deduced something involving 'auto', which isn't a valid ++ template argument. */ ++ continue; ++ + /* Remove, from the set of candidates, all those functions + whose constraints are not satisfied. */ + if (flag_concepts && !constraints_satisfied_p (fn, targs))