diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD index 1cfe75e3b..c7681eed7 100644 --- a/core/gcc/PKGBUILD +++ b/core/gcc/PKGBUILD @@ -15,11 +15,11 @@ noautobuild=1 pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-go') -pkgver=5.1.0 +pkgver=5.2.0 _pkgver=5 _islver=0.14.1 -pkgrel=5 -_snapshot=5-20150623 +pkgrel=1 +#_snapshot=5-20150623 pkgdesc="The GNU Compiler Collection" arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'FDL' 'custom') @@ -27,17 +27,13 @@ url="http://gcc.gnu.org" makedepends=('binutils>=2.25' 'libmpc' 'doxygen') checkdepends=('dejagnu' 'inetutils') options=('!emptydirs' '!distcc') -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 +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 http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2 - pr65882.patch - pr66647.patch pr66035.patch 0001-ARMv5-disable-LDRD-STRD.patch) -md5sums=('69432bf92cb6cdc8399c1bfc28c4f801' +md5sums=('a51bcfeb3da7dd4c623e27207ed43467' '118d1a379abf7606a3334c98a8411c79' - 'f64c1781d8bcac1ea168c2b7091ca2bd' - '720df658a726b6e0e541c58296bd5672' '5b980076cd5fcbc3aff6014f306282dd' '924a9bcdd7852410667f04ce18c305d7') @@ -66,12 +62,6 @@ prepare() { # hack! - some configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65882 - patch -p0 -i ${srcdir}/pr65882.patch - - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66647 - patch -p0 -i ${srcdir}/pr66647.patch - # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035 patch -p1 -i ${srcdir}/pr66035.patch @@ -109,7 +99,7 @@ build() { --with-linker-hash-style=gnu --enable-gnu-indirect-function \ --disable-multilib --disable-werror \ --enable-checking=release \ - --with-default-libstdcxx-abi=c++98 \ + --with-default-libstdcxx-abi=gcc4-compatible \ $CONFIGFLAG make diff --git a/core/gcc/pr65882.patch b/core/gcc/pr65882.patch deleted file mode 100644 index d5e64b9a2..000000000 --- a/core/gcc/pr65882.patch +++ /dev/null @@ -1,106 +0,0 @@ -Index: gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C -=================================================================== ---- gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C (revision 0) -+++ gcc/testsuite/g++.dg/diagnostic/inhibit-warn-1.C (revision 224864) -@@ -0,0 +1,32 @@ -+// PR c++/65882 -+// { dg-do compile { target c++11 } } -+// { dg-options "-Wbool-compare" } -+ -+// Check that we don't ICE because of reentering error reporting routines while -+// evaluating template parameters -+ -+template -+struct type_function { -+ static constexpr bool value = false; -+}; -+ -+template -+struct dependent_type { -+ typedef int type; -+}; -+ -+template -+typename dependent_type<(5 > type_function::value)>::type -+bar(); -+ -+template -+typename dependent_type<(5 > type_function::value)>::type -+foo() -+{ -+ return bar(); -+} -+ -+int main() -+{ -+ foo(); -+} -Index: gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C -=================================================================== ---- gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C (revision 0) -+++ gcc/testsuite/g++.dg/diagnostic/inhibit-warn-2.C (revision 224864) -@@ -0,0 +1,36 @@ -+// PR c++/65882 -+// PR c++/66467 -+// { dg-do compile } -+ -+template -+struct A -+{ -+ typedef int type; -+}; -+ -+struct B -+{ -+ static const int value = 0; -+}; -+ -+template -+struct C -+{ -+ typedef int type; -+}; -+ -+template -+struct F : B {}; -+ -+class D -+{ -+ template -+ typename A::type>::value || B::value>::type -+ operator=(Expr); // { dg-message "declared" } -+}; -+ -+void fn1() -+{ -+ D opt; -+ opt = 0; // { dg-error "private" } -+} -Index: gcc/cp/call.c -=================================================================== ---- gcc/cp/call.c (revision 224863) -+++ gcc/cp/call.c (revision 224864) -@@ -5687,8 +5687,9 @@ - case TRUTH_ORIF_EXPR: - case TRUTH_AND_EXPR: - case TRUTH_OR_EXPR: -- warn_logical_operator (loc, code, boolean_type_node, -- code_orig_arg1, arg1, code_orig_arg2, arg2); -+ if (complain & tf_warning) -+ warn_logical_operator (loc, code, boolean_type_node, -+ code_orig_arg1, arg1, code_orig_arg2, arg2); - /* Fall through. */ - case GT_EXPR: - case LT_EXPR: -@@ -5696,8 +5697,9 @@ - case LE_EXPR: - case EQ_EXPR: - case NE_EXPR: -- if ((code_orig_arg1 == BOOLEAN_TYPE) -- ^ (code_orig_arg2 == BOOLEAN_TYPE)) -+ if ((complain & tf_warning) -+ && ((code_orig_arg1 == BOOLEAN_TYPE) -+ ^ (code_orig_arg2 == BOOLEAN_TYPE))) - maybe_warn_bool_compare (loc, code, arg1, arg2); - /* Fall through. */ - case PLUS_EXPR: diff --git a/core/gcc/pr66647.patch b/core/gcc/pr66647.patch deleted file mode 100644 index 9552922f5..000000000 --- a/core/gcc/pr66647.patch +++ /dev/null @@ -1,87 +0,0 @@ -Index: gcc/testsuite/g++.dg/cpp0x/alias-decl-49.C -=================================================================== ---- gcc/testsuite/g++.dg/cpp0x/alias-decl-49.C (revision 0) -+++ gcc/testsuite/g++.dg/cpp0x/alias-decl-49.C (revision 224921) -@@ -0,0 +1,54 @@ -+// PR c++/66647 -+// { dg-do compile { target c++11 } } -+ -+template struct A -+{ -+ static constexpr _Tp value = 1; -+}; -+template class B -+{ -+public: -+ template struct rebind -+ { -+ }; -+}; -+ -+template class C -+{ -+ template -+ static A _S_chk (typename _Alloc2::template rebind<_Tp2> *); -+ -+public: -+ using __type = decltype (_S_chk<_Alloc, _Tp> (0)); -+}; -+ -+template ::__type::value> -+struct D; -+template struct D<_Alloc, _Tp, 1> -+{ -+ typedef typename _Alloc::template rebind<_Tp> __type; -+}; -+template struct F -+{ -+ template using rebind_alloc = typename D<_Alloc, _Tp>::__type; -+}; -+template struct __alloc_traits -+{ -+ template struct rebind -+ { -+ typedef typename F<_Alloc>::template rebind_alloc other; -+ }; -+}; -+template struct G -+{ -+ typename __alloc_traits<_Alloc>::template rebind::other _Tp_alloc_type; -+}; -+template > class vector : G<_Alloc> -+{ -+}; -+ -+template using tfuncptr = void(); -+template struct H -+{ -+ vector > funcs; -+}; -Index: gcc/cp/pt.c -=================================================================== ---- gcc/cp/pt.c (revision 224920) -+++ gcc/cp/pt.c (revision 224921) -@@ -20975,6 +20975,12 @@ - names a dependent type. */ - if (TREE_CODE (type) == TYPENAME_TYPE) - return true; -+ -+ /* An alias template specialization can be dependent even if the -+ resulting type is not. */ -+ if (dependent_alias_template_spec_p (type)) -+ return true; -+ - /* -- a cv-qualified type where the cv-unqualified type is - dependent. - No code is necessary for this bullet; the code below handles -@@ -21026,10 +21032,6 @@ - && (any_dependent_template_arguments_p - (INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (type))))) - return true; -- /* For an alias template specialization, check the arguments both to the -- class template and the alias template. */ -- else if (dependent_alias_template_spec_p (type)) -- return true; - - /* All TYPEOF_TYPEs, DECLTYPE_TYPEs, and UNDERLYING_TYPEs are - dependent; if the argument of the `typeof' expression is not