Date: Sunday, March 24, 2019 @ 18:22:17 Author: kgizdov Revision: 443358
archrelease: copy trunk to community-testing-x86_64 Added: gcc7/repos/community-testing-x86_64/ gcc7/repos/community-testing-x86_64/PKGBUILD (from rev 443357, gcc7/trunk/PKGBUILD) gcc7/repos/community-testing-x86_64/bz84080.patch (from rev 443357, gcc7/trunk/bz84080.patch) gcc7/repos/community-testing-x86_64/deprecate_ustat_syscall_interface.patch (from rev 443357, gcc7/trunk/deprecate_ustat_syscall_interface.patch) -----------------------------------------+ PKGBUILD | 218 ++++++++++++++++++++++++++++++ bz84080.patch | 27 +++ deprecate_ustat_syscall_interface.patch | 31 ++++ 3 files changed, 276 insertions(+) Copied: gcc7/repos/community-testing-x86_64/PKGBUILD (from rev 443357, gcc7/trunk/PKGBUILD) =================================================================== --- community-testing-x86_64/PKGBUILD (rev 0) +++ community-testing-x86_64/PKGBUILD 2019-03-24 18:22:17 UTC (rev 443358) @@ -0,0 +1,218 @@ +# 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.2.1+20180116 +_pkgver=7 +_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 + deprecate_ustat_syscall_interface.patch) +validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrow...@archlinux.org + 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guent...@gmail.com + 8FC15A064950A99DD1BD14DD39E4B877E62EB915) # svenst...@gmail.com +sha256sums=('7757097376a0766bbbeed8c90ee08cab93b33d89f3e72358c8bf984401bf69d9' + 'SKIP' + '6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b' + 'bce05807443558db55f0d6b4dae37a678ea1bb3388b541c876fe3d110e3717e7' + 'd18faec408d2e6503e6e8fbdd76c30da4d1657bd2dfd75320dcb011473568b75') + +_svnref=256757 +_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 -Np0 -i "${srcdir}/bz84080.patch" + + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85835 + patch -Np0 -i "${srcdir}/deprecate_ustat_syscall_interface.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 \ + --disable-multilib \ + --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-testing-x86_64/bz84080.patch (from rev 443357, gcc7/trunk/bz84080.patch) =================================================================== --- community-testing-x86_64/bz84080.patch (rev 0) +++ community-testing-x86_64/bz84080.patch 2019-03-24 18:22:17 UTC (rev 443358) @@ -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)) Copied: gcc7/repos/community-testing-x86_64/deprecate_ustat_syscall_interface.patch (from rev 443357, gcc7/trunk/deprecate_ustat_syscall_interface.patch) =================================================================== --- community-testing-x86_64/deprecate_ustat_syscall_interface.patch (rev 0) +++ community-testing-x86_64/deprecate_ustat_syscall_interface.patch 2019-03-24 18:22:17 UTC (rev 443358) @@ -0,0 +1,31 @@ +--- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018/05/24 20:07:25 260687 ++++ libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2018/05/24 20:21:54 260688 +@@ -154,7 +154,6 @@ typedef struct user_fpregs elf_fpregset_ + # include <sys/procfs.h> + #endif + #include <sys/user.h> +-#include <sys/ustat.h> + #include <linux/cyclades.h> + #include <linux/if_eql.h> + #include <linux/if_plip.h> +@@ -247,7 +246,19 @@ namespace __sanitizer { + #endif // SANITIZER_LINUX || SANITIZER_FREEBSD + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned struct_ustat_sz = sizeof(struct ustat); ++ // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which ++ // has been removed from glibc 2.28. ++#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \ ++ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \ ++ || defined(__x86_64__) ++#define SIZEOF_STRUCT_USTAT 32 ++#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \ ++ || defined(__powerpc__) || defined(__s390__) ++#define SIZEOF_STRUCT_USTAT 20 ++#else ++#error Unknown size of struct ustat ++#endif ++ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; + unsigned struct_rlimit64_sz = sizeof(struct rlimit64); + unsigned struct_statvfs64_sz = sizeof(struct statvfs64); + #endif // SANITIZER_LINUX && !SANITIZER_ANDROID