diff options
Diffstat (limited to 'cross')
-rw-r--r-- | cross/cross-gcc/PKGBUILD | 91 | ||||
-rw-r--r-- | cross/cross-gcc/gcc-4.8-filename-output.patch | 17 | ||||
-rw-r--r-- | cross/cross-gcc/gcc-4.9-isl-0.13-hack.patch | 71 | ||||
-rw-r--r-- | cross/cross-gcc/pr65882.patch | 66 | ||||
-rw-r--r-- | cross/cross-gcc/pr66035.patch | 48 |
5 files changed, 158 insertions, 135 deletions
diff --git a/cross/cross-gcc/PKGBUILD b/cross/cross-gcc/PKGBUILD index 051cd64b3..3b9e5c4d3 100644 --- a/cross/cross-gcc/PKGBUILD +++ b/cross/cross-gcc/PKGBUILD @@ -1,5 +1,5 @@ -# Maintainer (Arch): Allan McRae <allan@archlinux.org> # Maintainer: Márcio Silva (Parabola) <coadde@parabola.nu> +# Maintainer (Arch): Allan McRae <allan@archlinux.org> # toolchain build order: {kernel}-api-headers->glibc->binutils->gcc->binutils->glibc @@ -122,30 +122,29 @@ fi _pkgname=gcc pkgname=$_target-$_pkgname -pkgver=4.9.2 -_pkgver=4.9 -_islver=0.12.2 -_cloogver=0.18.1 -pkgrel=1 -#_snapshot=4.9-20140903 +pkgver=5.1.0 +_pkgver=5 +_islver=0.14.1 +pkgrel=4 +_snapshot=5-20150519 pkgdesc="The GNU Compiler Collection" -arch=('i686' 'x86_64' 'mips64el') +arch=('i686' 'x86_64' 'armv7h' 'aarch64' 'mips64el') license=('GPL' 'LGPL' 'FDL' 'custom') url="http://$_pkgname.gnu.org" -makedepends=('binutils>=2.24' 'libmpc' 'doxygen') +makedepends=('binutils>=2.25' 'libmpc' 'doxygen') checkdepends=('dejagnu' 'inetutils') options=('!emptydirs') -source=(ftp://$_pkgname.gnu.org/pub/$_pkgname/releases/$_pkgname-${pkgver}/$_pkgname-${pkgver}.tar.bz2 - #ftp://$_pkgname.gnu.org/pub/$_pkgname/snapshots/${_snapshot}/$_pkgname-${_snapshot}.tar.bz2 +source=(#ftp://$_pkgname.gnu.org/pub/$_pkgname/releases/$_pkgname-${pkgver}/$_pkgname-${pkgver}.tar.bz2 + ftp://$_pkgname.gnu.org/pub/$_pkgname/snapshots/${_snapshot}/$_pkgname-${_snapshot}.tar.bz2 http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2 - http://www.bastoul.net/cloog/pages/download/cloog-${_cloogver}.tar.gz - $_pkgname-4.8-filename-output.patch + pr65882.patch + pr66035.patch $_pkgname-xtensa.patch::https://raw.githubusercontent.com/qca/open-ath9k-htc-firmware/1.3.2/local/patches/$_pkgname.patch mips-kfreebsd-gnu.patch) -md5sums=('4df8ee253b7f3863ad0b86359cd39c43' - 'e039bfcfb6c2ab039b8ee69bf883e824' - 'e34fca0540d840e5d0f6427e98c92252' - '6810bb9b2252f03e6c98d9a671d94589' +md5sums=('84f261b2f23e154ec6d9bd4149851a21' + '118d1a379abf7606a3334c98a8411c79' + '9a9cc98e916fd37c7b3dad50f29d2f48' + '5b980076cd5fcbc3aff6014f306282dd' '81372ee980289a9f6df01dad31c64a63' '43282cddb2080b1180f7b76d3a8a832c') @@ -160,9 +159,8 @@ _libdir="usr/lib/$_pkgname/$_target/$pkgver" prepare() { cd ${srcdir}/${_basedir} - # link isl/cloog for in-tree builds + # link isl for in-tree build ln -s ../isl-${_islver} isl - ln -s ../cloog-${_cloogver} cloog # Do not run fixincludes sed -i 's@\./fixinc\.sh@-c true@' $_pkgname/Makefile.in @@ -175,9 +173,11 @@ prepare() { # hack! - some configure tests for header files using "$CPP $CPPFLAGS" sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,$_pkgname}/configure - # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653 - # https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=9140d56f - patch -p1 -i ${srcdir}/$_pkgname-4.8-filename-output.patch + # https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01558.html + patch -p1 -i ${srcdir}/pr65882.patch + + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66035 + patch -p1 -i ${srcdir}/pr66035.patch # open-ath9k-htc-firmware patch on xtensa-unknown-elf [[ $_target == xtensa-unknown-elf ]] && patch -p1 -i ${srcdir}/$_pkgname-xtensa.patch @@ -199,29 +199,28 @@ build() { ${srcdir}/${_basedir}/configure --prefix=/usr \ --libdir=/usr/lib --libexecdir=/usr/lib \ - --mandir=/usr/share/man --infodir=/usr/share/info \ + --mandir=/usr/share/man \ --with-bugurl=https://labs.parabola.nu/ \ - --enable-languages=c,c++,lto --disable-static \ - --enable-shared --enable-threads=posix \ - --with-system-zlib --enable-__cxa_atexit \ + --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-cloog-backend=isl \ --enable-lto --enable-plugin --enable-install-libiberty \ - --with-linker-hash-style=gnu \ + --with-linker-hash-style=gnu --enable-gnu-indirect-function \ --disable-multilib --disable-werror \ - --enable-checking=release --target=$_target --program-prefix=$_target- + --enable-checking=release \ + --with-default-libstdcxx-abi=c++98 --disable-nls \ + --target=$_target make all-$_pkgname } package() { pkgdesc="The GNU Compiler Collection - C and C++ frontends" - depends=("$_target-binutils>=2.24" 'libmpc') + depends=("$_target-binutils>=2.25" 'libmpc') groups=('cross-devel') options=('staticlibs') - provides=("$_pkgname=$pkgver") - conflicts=("$_pkgname" "$_pkgname-ada" "$_pkgname-fortran" "$_pkgname-go" "$_pkgname-objc") install=$_pkgname.install cd ${srcdir}/$_pkgname-build @@ -229,27 +228,23 @@ package() { make -C $_pkgname DESTDIR=${pkgdir} install-driver install-cpp install-$_pkgname-ar \ c++.install-common install-headers install-plugin install-lto-wrapper - install -m755 $_pkgname/gcov $pkgdir/usr/bin/ + install -m755 $_pkgname/gcov $pkgdir/usr/bin/$_target-gcov install -m755 -t $pkgdir/${_libdir}/ $_pkgname/{cc1,cc1plus,collect2,lto1} make DESTDIR=${pkgdir} install-fixincludes make -C $_pkgname DESTDIR=${pkgdir} install-mkheaders make -C lto-plugin DESTDIR=${pkgdir} install - make -C libiberty DESTDIR=${pkgdir} install - # install PIC version of libiberty - install -m644 ${srcdir}/$_pkgname-build/libiberty/pic/libiberty.a ${pkgdir}/usr/lib - - make -C $_pkgname DESTDIR=${pkgdir} install-man install-info + make -C $_pkgname DESTDIR=${pkgdir} install-man make -C libcpp DESTDIR=${pkgdir} install make -C $_pkgname DESTDIR=${pkgdir} install-po # many packages expect this symlink - ln -s $_pkgname ${pkgdir}/usr/bin/cc + ln -s $_target-$_pkgname ${pkgdir}/usr/bin/$_target-cc # POSIX conformance launcher scripts for c89 and c99 - cat > $pkgdir/usr/bin/c89 <<"EOF" + cat > $pkgdir/usr/bin/$_target-c89 <<"EOF" #!/bin/sh fl="-std=c89" for opt; do @@ -261,8 +256,9 @@ for opt; do done exec gcc $fl ${1+"$@"} EOF +sed -i "s|exec gcc|exec $_target-gcc|" $pkgdir/usr/bin/$_target-c89 - cat > $pkgdir/usr/bin/c99 <<"EOF" + cat > $pkgdir/usr/bin/$_target-c99 <<"EOF" #!/bin/sh fl="-std=c99" for opt; do @@ -274,12 +270,13 @@ for opt; do done exec gcc $fl ${1+"$@"} EOF +sed -i "s|exec gcc|exec $_target-gcc|" $pkgdir/usr/bin/$_target-c99 + + chmod 755 $pkgdir/usr/bin/$_target-c{8,9}9 - chmod 755 $pkgdir/usr/bin/c{8,9}9 + # Remove man documents that conflict with host version + rm -rf ${pkgdir}/usr/share/man/man7 - # link files - for bin2 in c++ cpp g++ gcc gcc-ar gcc-nm gcc-ranlib; do - ln -s $_target-$bin2 $pkgdir/usr/bin/$bin2; done - for man in $(ls -1 $pkgdir/usr/share/man/man1); do - ln -s $man $pkgdir/usr/share/man/man1/${man#$_target-}; done + # Remove unused dirs + rmdir ${pkgdir}/usr/{include,share/info} } diff --git a/cross/cross-gcc/gcc-4.8-filename-output.patch b/cross/cross-gcc/gcc-4.8-filename-output.patch deleted file mode 100644 index 7c2ee0aa5..000000000 --- a/cross/cross-gcc/gcc-4.8-filename-output.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c -index 968b703..3f8e6e6 100644 ---- a/gcc/c-family/c-opts.c -+++ b/gcc/c-family/c-opts.c -@@ -1438,6 +1438,12 @@ c_finish_options (void) - static void - push_command_line_include (void) - { -+ /* This can happen if disabled by -imacros for example. -+ Punt so that we don't set "<command-line>" as the filename for -+ the header. */ -+ if (include_cursor > deferred_count) -+ return; -+ - if (!done_preinclude) - { - done_preinclude = true; diff --git a/cross/cross-gcc/gcc-4.9-isl-0.13-hack.patch b/cross/cross-gcc/gcc-4.9-isl-0.13-hack.patch deleted file mode 100644 index c2b95d952..000000000 --- a/cross/cross-gcc/gcc-4.9-isl-0.13-hack.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff -Naur gcc-4.9-20140604-old/gcc/graphite-clast-to-gimple.c gcc-4.9-20140604/gcc/graphite-clast-to-gimple.c ---- gcc-4.9-20140604-old/gcc/graphite-clast-to-gimple.c 2014-03-03 21:39:22.000000000 +1000 -+++ gcc-4.9-20140604/gcc/graphite-clast-to-gimple.c 2014-06-25 15:07:57.958697105 +1000 -@@ -28,6 +28,8 @@ - #include <isl/constraint.h> - #include <isl/ilp.h> - #include <isl/aff.h> -+#include <isl/deprecated/int.h> -+#include <isl/deprecated/ilp_int.h> - #include <cloog/cloog.h> - #include <cloog/isl/domain.h> - #endif -diff -Naur gcc-4.9-20140604-old/gcc/graphite-interchange.c gcc-4.9-20140604/gcc/graphite-interchange.c ---- gcc-4.9-20140604-old/gcc/graphite-interchange.c 2014-01-03 08:23:26.000000000 +1000 -+++ gcc-4.9-20140604/gcc/graphite-interchange.c 2014-06-25 15:10:06.882899243 +1000 -@@ -29,6 +29,9 @@ - #include <isl/map.h> - #include <isl/union_map.h> - #include <isl/ilp.h> -+#include <isl/deprecated/int.h> -+#include <isl/deprecated/ilp_int.h> -+#include <isl/deprecated/constraint_int.h> - #include <cloog/cloog.h> - #include <cloog/isl/domain.h> - #endif -diff -Naur gcc-4.9-20140604-old/gcc/graphite-optimize-isl.c gcc-4.9-20140604/gcc/graphite-optimize-isl.c ---- gcc-4.9-20140604-old/gcc/graphite-optimize-isl.c 2014-01-03 08:23:26.000000000 +1000 -+++ gcc-4.9-20140604/gcc/graphite-optimize-isl.c 2014-06-25 15:16:57.038386166 +1000 -@@ -28,6 +28,8 @@ - #include <isl/band.h> - #include <isl/aff.h> - #include <isl/options.h> -+#include <isl/deprecated/int.h> -+#include <isl/deprecated/aff_int.h> - #endif - - #include "system.h" -@@ -373,7 +375,7 @@ - { - for (i = ScheduleDimensions - 1 ; i >= 0 ; i--) - { -- if (isl_band_member_is_zero_distance (Band, i)) -+ if (isl_band_member_is_coincident (Band, i)) - { - isl_map *TileMap; - isl_union_map *TileUMap; -diff -Naur gcc-4.9-20140604-old/gcc/graphite-poly.c gcc-4.9-20140604/gcc/graphite-poly.c ---- gcc-4.9-20140604-old/gcc/graphite-poly.c 2014-01-03 08:23:26.000000000 +1000 -+++ gcc-4.9-20140604/gcc/graphite-poly.c 2014-06-25 15:18:01.207157796 +1000 -@@ -28,6 +28,8 @@ - #include <isl/constraint.h> - #include <isl/ilp.h> - #include <isl/aff.h> -+#include <isl/deprecated/int.h> -+#include <isl/deprecated/ilp_int.h> - #include <cloog/cloog.h> - #include <cloog/isl/domain.h> - #endif -diff -Naur gcc-4.9-20140604-old/gcc/graphite-sese-to-poly.c gcc-4.9-20140604/gcc/graphite-sese-to-poly.c ---- gcc-4.9-20140604-old/gcc/graphite-sese-to-poly.c 2014-04-08 20:59:40.000000000 +1000 -+++ gcc-4.9-20140604/gcc/graphite-sese-to-poly.c 2014-06-25 15:19:46.575140398 +1000 -@@ -26,6 +26,9 @@ - #include <isl/union_map.h> - #include <isl/constraint.h> - #include <isl/aff.h> -+#include <isl/deprecated/int.h> -+#include <isl/deprecated/aff_int.h> -+#include <isl/deprecated/constraint_int.h> - #include <cloog/cloog.h> - #include <cloog/cloog.h> - #include <cloog/isl/domain.h> diff --git a/cross/cross-gcc/pr65882.patch b/cross/cross-gcc/pr65882.patch new file mode 100644 index 000000000..673712b2b --- /dev/null +++ b/cross/cross-gcc/pr65882.patch @@ -0,0 +1,66 @@ +diff --git a/gcc/cp/call.c b/gcc/cp/call.c +index 7bdf236..689d542 100644 +--- a/gcc/cp/call.c ++++ b/gcc/cp/call.c +@@ -5677,8 +5677,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1, + 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: +@@ -5686,8 +5687,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1, + 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/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C +new file mode 100644 +index 0000000..5655eb4 +--- /dev/null ++++ b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C +@@ -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<typename> ++struct type_function { ++ static constexpr bool value = false; ++}; ++ ++template<bool> ++struct dependent_type { ++ typedef int type; ++}; ++ ++template<typename T> ++typename dependent_type<(5 > type_function<T>::value)>::type ++bar(); ++ ++template<typename T> ++typename dependent_type<(5 > type_function<T>::value)>::type ++foo() ++{ ++ return bar<int>(); ++} ++ ++int main() ++{ ++ foo<int>(); ++} diff --git a/cross/cross-gcc/pr66035.patch b/cross/cross-gcc/pr66035.patch new file mode 100644 index 000000000..c51822ca1 --- /dev/null +++ b/cross/cross-gcc/pr66035.patch @@ -0,0 +1,48 @@ +--- a/gcc/fortran/trans-expr.c ++++ a/gcc/fortran/trans-expr.c +@@ -6897,6 +6897,30 @@ alloc_scalar_allocatable_for_subcomponent_assignment (stmtblock_t *block, + TREE_TYPE (tmp), tmp, + fold_convert (TREE_TYPE (tmp), size)); + } ++ else if (cm->ts.type == BT_CLASS) ++ { ++ gcc_assert (expr2->ts.type == BT_CLASS || expr2->ts.type == BT_DERIVED); ++ if (expr2->ts.type == BT_DERIVED) ++ { ++ tmp = gfc_get_symbol_decl (gfc_find_vtab (&expr2->ts)); ++ tmp = gfc_build_addr_expr (NULL_TREE, tmp); ++ size = fold_convert (size_type_node, gfc_vptr_size_get (tmp)); ++ } ++ else ++ { ++ gfc_expr *e2vtab; ++ gfc_se se; ++ e2vtab = gfc_find_and_cut_at_last_class_ref (expr2); ++ gfc_add_vptr_component (e2vtab); ++ gfc_add_size_component (e2vtab); ++ gfc_init_se (&se, NULL); ++ gfc_conv_expr (&se, e2vtab); ++ gfc_add_block_to_block (block, &se.pre); ++ size = fold_convert (size_type_node, se.expr); ++ gfc_free_expr (e2vtab); ++ } ++ size_in_bytes = size; ++ } + else + { + /* Otherwise use the length in bytes of the rhs. */ +@@ -7068,6 +7092,14 @@ gfc_trans_subcomponent_assign (tree dest, gfc_component * cm, gfc_expr * expr, + tmp = gfc_build_memcpy_call (tmp, se.expr, size); + gfc_add_expr_to_block (&block, tmp); + } ++ else if (cm->ts.type == BT_CLASS && expr->ts.type == BT_CLASS) ++ { ++ tmp = gfc_copy_class_to_class (se.expr, dest, integer_one_node, ++ CLASS_DATA (cm)->attr.unlimited_polymorphic); ++ gfc_add_expr_to_block (&block, tmp); ++ gfc_add_modify (&block, gfc_class_vptr_get (dest), ++ gfc_class_vptr_get (se.expr)); ++ } + else + gfc_add_modify (&block, tmp, + fold_convert (TREE_TYPE (tmp), se.expr)); |