diff --git a/.gitignore b/.gitignore index b00df73..92fa084 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /gcc-4.7.0-20120106.tar.bz2 /gcc-4.7.0-20120112.tar.bz2 /gcc-4.7.0-20120117.tar.bz2 +/gcc-4.7.0-20120119.tar.bz2 diff --git a/gcc.spec b/gcc.spec index f66bc65..52740ec 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20120117 -%global SVNREV 183258 +%global DATE 20120119 +%global SVNREV 183308 %global gcc_version 4.7.0 # 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 0.7 +%global gcc_release 0.8 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha @@ -174,8 +174,7 @@ Patch12: gcc47-libstdc++-docs.patch Patch13: gcc47-no-add-needed.patch Patch14: gcc47-ppl-0.10.patch Patch15: gcc47-libitm-fno-exceptions.patch -Patch16: gcc47-pr50325.patch -Patch17: gcc47-pr51876.patch +Patch16: gcc47-pr51856.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -675,8 +674,7 @@ package or when debugging this package. %patch14 -p0 -b .ppl-0.10~ %endif %patch15 -p0 -b .libitm-fno-exceptions~ -%patch16 -p0 -b .pr50325~ -%patch17 -p0 -b .pr51876~ +%patch16 -p0 -b .pr51856~ %if 0%{?_enable_debug_packages} cat > split-debuginfo.sh <<\EOF @@ -2637,6 +2635,15 @@ fi %{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin %changelog +* Thu Jan 19 2012 Jakub Jelinek 4.7.0-0.8 +- update from trunk + - PRs bootstrap/50237, c++/51225, c++/51889, fortran/48426, fortran/51634, + go/50656, libmudflap/40778, libstdc++/51845, libstdc++/51866, + lto/51280, middle-end/51192, rtl-optimization/48496, + rtl-optimization/51505, tree-optimization/37997, + tree-optimization/46590 +- fix a reload bug on s390 (#773565, PR rtl-optimization/51856) + * Tue Jan 17 2012 Jakub Jelinek 4.7.0-0.7 - update from trunk - PRs bootstrap/51860, c++/14179, c++/20681, c++/50012, c++/51403, diff --git a/gcc47-pr50325.patch b/gcc47-pr50325.patch deleted file mode 100644 index c9b65aa..0000000 --- a/gcc47-pr50325.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -up ../_clean/gcc/expmed.c gcc/expmed.c ---- ../_clean/gcc/expmed.c 2011-12-09 15:20:36.000000000 +0100 -+++ gcc/expmed.c 2011-12-09 15:23:01.000000000 +0100 -@@ -543,7 +543,8 @@ store_bit_field_1 (rtx str_rtx, unsigned - is not allowed. */ - fieldmode = GET_MODE (value); - if (fieldmode == VOIDmode) -- fieldmode = smallest_mode_for_size (nwords * BITS_PER_WORD, MODE_INT); -+ fieldmode = smallest_mode_for_size (nwords * -+ BITS_PER_WORD, MODE_INT); - - last = get_last_insn (); - for (i = 0; i < nwords; i++) -@@ -557,9 +558,21 @@ store_bit_field_1 (rtx str_rtx, unsigned - 0) - : (int) i * BITS_PER_WORD); - rtx value_word = operand_subword_force (value, wordnum, fieldmode); -+ unsigned HOST_WIDE_INT new_bitsize = -+ MIN (BITS_PER_WORD, bitsize - i * BITS_PER_WORD); - -- if (!store_bit_field_1 (op0, MIN (BITS_PER_WORD, -- bitsize - i * BITS_PER_WORD), -+ /* If the remaining chunk doesn't have full wordsize we have -+ to make sure that for big endian machines the higher order -+ bits are used. */ -+ if (new_bitsize < BITS_PER_WORD && BYTES_BIG_ENDIAN && !backwards) -+ value_word = simplify_expand_binop (word_mode, lshr_optab, -+ value_word, -+ GEN_INT (BITS_PER_WORD -+ - new_bitsize), -+ NULL_RTX, true, -+ OPTAB_LIB_WIDEN); -+ -+ if (!store_bit_field_1 (op0, new_bitsize, - bitnum + bit_offset, - bitregion_start, bitregion_end, - word_mode, ---- ../_clean/gcc/optabs.c 2011-12-23 23:39:30.000000000 +0100 -+++ gcc/optabs.c 2011-12-24 18:40:01.000000000 +0100 -@@ -659,7 +659,7 @@ expand_ternary_op (enum machine_mode mod - calculated at compile time. The arguments and return value are - otherwise the same as for expand_binop. */ - --static rtx -+rtx - simplify_expand_binop (enum machine_mode mode, optab binoptab, - rtx op0, rtx op1, rtx target, int unsignedp, - enum optab_methods methods) -diff -up ../_clean/gcc/optabs.h gcc/optabs.h ---- ../_clean/gcc/optabs.h 2011-12-23 23:39:30.000000000 +0100 -+++ gcc/optabs.h 2011-12-24 18:40:01.000000000 +0100 -@@ -859,6 +859,10 @@ extern rtx expand_ternary_op (enum machi - extern rtx expand_binop (enum machine_mode, optab, rtx, rtx, rtx, int, - enum optab_methods); - -+extern rtx simplify_expand_binop (enum machine_mode mode, optab binoptab, -+ rtx op0, rtx op1, rtx target, int unsignedp, -+ enum optab_methods methods); -+ - extern bool force_expand_binop (enum machine_mode, optab, rtx, rtx, rtx, int, - enum optab_methods); - diff --git a/gcc47-pr51856.patch b/gcc47-pr51856.patch new file mode 100644 index 0000000..56a8ba4 --- /dev/null +++ b/gcc47-pr51856.patch @@ -0,0 +1,45 @@ +2012-01-19 Andreas Krebbel + + PR rtl-optimization/51856 + * reload.c (find_reloads_subreg_address): Set the address_reloaded + flag to reloaded. + + * gcc.c-torture/compile/pr51856.c: New testcase. + +--- gcc/reload.c.jj 2012-01-05 21:54:36.000000000 +0100 ++++ gcc/reload.c 2012-01-19 20:17:26.151735687 +0100 +@@ -6232,7 +6232,7 @@ find_reloads_subreg_address (rtx x, int + } + } + if (reloaded && address_reloaded) +- *address_reloaded = 1; ++ *address_reloaded = reloaded; + + return x; + } +--- gcc/testsuite/gcc.c-torture/compile/pr51856.c.jj 2012-01-19 20:17:26.151735687 +0100 ++++ gcc/testsuite/gcc.c-torture/compile/pr51856.c 2012-01-19 20:17:26.151735687 +0100 +@@ -0,0 +1,23 @@ ++struct B { int b1; long long b2, b3; int b4; }; ++struct C { char c1[40], c2, c3[96]; long long c4[5], c5; char c6[596]; }; ++void fn1 (long long), fn2 (char *, int), fn4 (void); ++int r, fn3 (int, const char *, int, char *, int, int); ++ ++void ++foo (int t, int u, int v, int w, int x, int y, struct B *z) ++{ ++ char c[512], d[512], e; ++ struct C g; ++ long long f, h[255]; ++ struct B j; ++ __builtin_bzero (&j, sizeof j); ++ if (y > w) ++ fn4 (); ++ __builtin_bzero (&g, sizeof g); ++ g.c5 = h[0]; ++ fn1 (z ? z->b3 : f); ++ g.c2 = y; ++ fn2 (d, 256); ++ if (fn3 (r, "", e, c, 0, 16)) ++ fn4 (); ++} diff --git a/gcc47-pr51876.patch b/gcc47-pr51876.patch deleted file mode 100644 index 8e11f8b..0000000 --- a/gcc47-pr51876.patch +++ /dev/null @@ -1,17 +0,0 @@ -2012-01-17 Jakub Jelinek - - PR target/51876 - * config/arm/neon.md (*neon_vswp): Fix up operand - numbers in the insn pattern. - ---- gcc/config/arm/neon.md.jj 2012-01-13 21:47:35.000000000 +0100 -+++ gcc/config/arm/neon.md 2012-01-17 12:46:14.419950640 +0100 -@@ -2869,7 +2869,7 @@ (define_insn "*neon_vswp" - (match_operand:VDQX 1 "s_register_operand" "+w")) - (set (match_dup 1) (match_dup 0))] - "TARGET_NEON && reload_completed" -- "vswp\t%1, %2" -+ "vswp\t%0, %1" - [(set (attr "neon_type") - (if_then_else (match_test "") - (const_string "neon_bp_simple") diff --git a/sources b/sources index 4686b52..86ce8b4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -d0ca06c510747d217e2450e3a33a3a5a gcc-4.7.0-20120117.tar.bz2 +9aa7323402e9680079c3f1d16bdc595f gcc-4.7.0-20120119.tar.bz2