diff --git a/.gitignore b/.gitignore index 287760c..247ca7b 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ /gcc-4.9.1-20140801.tar.bz2 /gcc-4.9.1-20140807.tar.bz2 /gcc-4.9.1-20140813.tar.bz2 +/gcc-4.9.1-20140815.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 6e5f9fa..d614517 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20140813 -%global SVNREV 213898 +%global DATE 20140815 +%global SVNREV 214009 %global gcc_version 4.9.1 # Note, gcc_release must be integer, if you want to add suffixes to # %{release}, append them after %{gcc_release} on Release: line. -%global gcc_release 7 +%global gcc_release 8 %global _unpackaged_files_terminate_build 0 %global _performance_build 1 %global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64 @@ -105,7 +105,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Need binutils which support %gnu_unique_object >= 2.19.51.0.14 # Need binutils which support .cfi_sections >= 2.19.51.0.14-33 # Need binutils which support --no-add-needed >= 2.20.51.0.2-12 -BuildRequires: binutils >= 2.20.51.0.2-12 +# Need binutils which support -plugin +BuildRequires: binutils >= 2.24 # While gcc doesn't include statically linked binaries, during testing # -static is used several times. BuildRequires: glibc-static @@ -156,7 +157,8 @@ Requires: cpp = %{version}-%{release} # Need binutils that support %gnu_unique_object # Need binutils that support .cfi_sections # Need binutils that support --no-add-needed -Requires: binutils >= 2.20.51.0.2-12 +# Need binutils that support -plugin +Requires: binutils >= 2.24 # Make sure gdb will understand DW_FORM_strp Conflicts: gdb < 5.1-2 Requires: glibc-devel >= 2.2.90-12 @@ -199,9 +201,8 @@ Patch16: gcc49-libgo-p224.patch Patch17: gcc49-aarch64-async-unw-tables.patch Patch18: gcc49-aarch64-unwind-opt.patch Patch19: gcc49-pr62098.patch -Patch20: gcc49-pr62103.patch -Patch21: gcc49-pr62025.patch -Patch22: gcc49-pr62073.patch +Patch20: gcc49-pr62025.patch +Patch21: gcc49-pr62131.patch Patch1100: cloog-%{cloog_version}-ppc64le-config.patch @@ -731,9 +732,8 @@ rm -f libgo/go/crypto/elliptic/p224{,_test}.go %patch17 -p0 -b .aarch64-async-unw-tables~ %patch18 -p0 -b .aarch64-unwind-opt~ %patch19 -p0 -b .pr62098~ -%patch20 -p0 -b .pr62103~ -%patch21 -p0 -b .pr62025~ -%patch22 -p0 -b .pr62073~ +%patch20 -p0 -b .pr62025~ +%patch21 -p0 -b .pr62131~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -2806,6 +2806,14 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Fri Aug 15 2014 Jakub Jelinek 4.9.1-8 +- update from the 4.9 branch + - PRs fortran/62076, fortran/62107, lto/62032, middle-end/62092, + target/61713 +- allow elements/components of allocatables in !$omp atomic + (PR fortran/62131) +- require/build require >= 2.24 binutils + * Thu Aug 14 2014 Jakub Jelinek 4.9.1-7 - fix up scheduler deps handling fix (PR target/62025) - vectorization fix (PR tree-optimization/62073) diff --git a/gcc49-pr62073.patch b/gcc49-pr62073.patch deleted file mode 100644 index c89c4d6..0000000 --- a/gcc49-pr62073.patch +++ /dev/null @@ -1,63 +0,0 @@ -2014-08-12 Felix Yang - - PR tree-optimization/62073 - * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has - a basic block. - - * gcc.dg/vect/pr62073.c: New test. - ---- gcc/tree-vect-loop.c (revision 213900) -+++ gcc/tree-vect-loop.c (revision 213901) -@@ -2321,7 +2321,8 @@ vect_is_simple_reduction_1 (loop_vec_inf - } - - def1 = SSA_NAME_DEF_STMT (op1); -- if (flow_bb_inside_loop_p (loop, gimple_bb (def_stmt)) -+ if (gimple_bb (def1) -+ && flow_bb_inside_loop_p (loop, gimple_bb (def_stmt)) - && loop->inner - && flow_bb_inside_loop_p (loop->inner, gimple_bb (def1)) - && is_gimple_assign (def1)) ---- gcc/testsuite/gcc.dg/vect/pr62073.c (revision 0) -+++ gcc/testsuite/gcc.dg/vect/pr62073.c (revision 213901) -@@ -0,0 +1,40 @@ -+/* { dg-do compile } */ -+/* { dg-additional-options "-O1" } */ -+ -+struct S0 -+{ -+ int f7; -+}; -+struct S0 g_50; -+int g_70; -+int g_76; -+ -+int foo (long long p_56, int * p_57) -+{ -+ int *l_77; -+ int l_101; -+ -+ for (; g_70;) -+ { -+ int **l_78 = &l_77; -+ if (g_50.f7) -+ continue; -+ *l_78 = 0; -+ } -+ for (g_76 = 1; g_76 >= 0; g_76--) -+ { -+ int *l_90; -+ for (l_101 = 4; l_101 >= 0; l_101--) -+ if (l_101) -+ *l_90 = 0; -+ else -+ { -+ int **l_113 = &l_77; -+ *l_113 = p_57; -+ } -+ } -+ -+ return *l_77; -+} -+ -+/* { dg-final { cleanup-tree-dump "vect" } } */ diff --git a/gcc49-pr62103.patch b/gcc49-pr62103.patch deleted file mode 100644 index b381e78..0000000 --- a/gcc49-pr62103.patch +++ /dev/null @@ -1,50 +0,0 @@ -2014-08-12 Thomas Preud'homme - - PR middle-end/62103 - * gimple-fold.c (fold_ctor_reference): Don't fold in presence of - bitfields, that is when size doesn't match the size of type or the - size of the constructor. - - * gcc.c-torture/execute/bitfld-6.c: New test. - ---- gcc/gimple-fold.c (revision 213845) -+++ gcc/gimple-fold.c (revision 213846) -@@ -4355,8 +4355,10 @@ fold_ctor_reference (tree type, tree cto - result. */ - if (!AGGREGATE_TYPE_P (TREE_TYPE (ctor)) && !offset - /* VIEW_CONVERT_EXPR is defined only for matching sizes. */ -- && operand_equal_p (TYPE_SIZE (type), -- TYPE_SIZE (TREE_TYPE (ctor)), 0)) -+ && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST -+ && TREE_CODE (TYPE_SIZE (TREE_TYPE (ctor))) == INTEGER_CST -+ && !compare_tree_int (TYPE_SIZE (type), size) -+ && !compare_tree_int (TYPE_SIZE (TREE_TYPE (ctor)), size)) - { - ret = canonicalize_constructor_val (unshare_expr (ctor), from_decl); - ret = fold_unary (VIEW_CONVERT_EXPR, type, ret); ---- gcc/testsuite/gcc.c-torture/execute/bitfld-6.c (revision 0) -+++ gcc/testsuite/gcc.c-torture/execute/bitfld-6.c (revision 213846) -@@ -0,0 +1,23 @@ -+union U -+{ -+ const int a; -+ unsigned b : 20; -+}; -+ -+static union U u = { 0x12345678 }; -+ -+/* Constant folding used to fail to account for endianness when folding a -+ union. */ -+ -+int -+main (void) -+{ -+#ifdef __BYTE_ORDER__ -+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ -+ return u.b - 0x45678; -+#else -+ return u.b - 0x12345; -+#endif -+#endif -+ return 0; -+} diff --git a/gcc49-pr62131.patch b/gcc49-pr62131.patch new file mode 100644 index 0000000..f31c426 --- /dev/null +++ b/gcc49-pr62131.patch @@ -0,0 +1,42 @@ +2014-08-15 Jakub Jelinek + Tobias Burnus + + PR fortran/62131 + * openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr + is allocatable, rather than whenever var->attr.allocatable. + + * gfortran.dg/gomp/pr62131.f90: New test. + +--- gcc/fortran/openmp.c (revision 214010) ++++ gcc/fortran/openmp.c (revision 214011) +@@ -2744,7 +2744,7 @@ resolve_omp_atomic (gfc_code *code) + break; + } + +- if (var->attr.allocatable) ++ if (gfc_expr_attr (code->expr1).allocatable) + { + gfc_error ("!$OMP ATOMIC with ALLOCATABLE variable at %L", + &code->loc); +--- gcc/testsuite/gfortran.dg/gomp/pr62131.f90 (revision 0) ++++ gcc/testsuite/gfortran.dg/gomp/pr62131.f90 (revision 214011) +@@ -0,0 +1,19 @@ ++! PR fortran/62131 ++! { dg-do compile } ++! { dg-options "-fopenmp" } ++ ++program pr62131 ++ integer,allocatable :: nerrs(:,:) ++ allocate(nerrs(10,10)) ++ nerrs(:,:) = 0 ++!$omp parallel do ++ do k=1,10 ++ call uperrs(k,1) ++ end do ++contains ++ subroutine uperrs(i,io) ++ integer,intent(in) :: i,io ++!$omp atomic ++ nerrs(i,io)=nerrs(i,io)+1 ++ end subroutine ++end diff --git a/sources b/sources index 7eaadd5..ae9ee93 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ e34fca0540d840e5d0f6427e98c92252 cloog-0.18.1.tar.gz -aebbdaf7f7e28a92e0ed5b4aec401fd5 gcc-4.9.1-20140813.tar.bz2 +dff0aab44d2b28c124b53322678be13b gcc-4.9.1-20140815.tar.bz2 e039bfcfb6c2ab039b8ee69bf883e824 isl-0.12.2.tar.bz2