diff --git a/.gitignore b/.gitignore index 0bb1d47..ea67a92 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ fastjar-0.97.tar.gz gcc-4.5.0-20100716.tar.bz2 gcc-4.5.0-20100730.tar.bz2 +gcc-4.5.1-20100812.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 5c16182..20d9775 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20100730 -%global SVNREV 162712 -%global gcc_version 4.5.0 +%global DATE 20100812 +%global SVNREV 163197 +%global gcc_version 4.5.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 4 +%global gcc_release 1 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha @@ -39,7 +39,7 @@ Summary: Various compilers (C, C++, Objective-C, Java, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}%{?dist}.1 +Release: %{gcc_release}%{?dist} # libgcc, libgfortran, libmudflap, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions @@ -156,7 +156,6 @@ Patch12: gcc45-cloog-dl.patch Patch14: gcc45-pr38757.patch Patch15: gcc45-libstdc++-docs.patch Patch17: gcc45-no-add-needed.patch -Patch18: gcc45-pr45055.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -486,7 +485,6 @@ GNAT is a GNU Ada 95 front-end to GCC. This package includes static libraries. %patch15 -p0 -b .libstdc++-docs~ %endif %patch17 -p0 -b .no-add-needed~ -%patch18 -p0 -b .pr45055~ # This testcase doesn't compile. rm libjava/testsuite/libjava.lang/PR35020* @@ -503,7 +501,7 @@ tar xzf %{SOURCE4} tar xjf %{SOURCE10} %endif -sed -i -e 's/4\.5\.1/4.5.0/' gcc/BASE-VER +sed -i -e 's/4\.5\.2/4.5.1/' gcc/BASE-VER echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE # Default to -gdwarf-3 rather than -gdwarf-2 @@ -960,9 +958,9 @@ ln -sf ../../../libgomp.so.1.* libgomp.so ln -sf ../../../libmudflap.so.0.* libmudflap.so ln -sf ../../../libmudflapth.so.0.* libmudflapth.so %if %{build_java} -ln -sf ../../../libgcj.so.10.* libgcj.so -ln -sf ../../../libgcj-tools.so.10.* libgcj-tools.so -ln -sf ../../../libgij.so.10.* libgij.so +ln -sf ../../../libgcj.so.11.* libgcj.so +ln -sf ../../../libgcj-tools.so.11.* libgcj-tools.so +ln -sf ../../../libgij.so.11.* libgij.so %endif else ln -sf ../../../../%{_lib}/libobjc.so.2 libobjc.so @@ -972,9 +970,9 @@ ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so ln -sf ../../../../%{_lib}/libmudflap.so.0.* libmudflap.so ln -sf ../../../../%{_lib}/libmudflapth.so.0.* libmudflapth.so %if %{build_java} -ln -sf ../../../../%{_lib}/libgcj.so.10.* libgcj.so -ln -sf ../../../../%{_lib}/libgcj-tools.so.10.* libgcj-tools.so -ln -sf ../../../../%{_lib}/libgij.so.10.* libgij.so +ln -sf ../../../../%{_lib}/libgcj.so.11.* libgcj.so +ln -sf ../../../../%{_lib}/libgcj-tools.so.11.* libgcj-tools.so +ln -sf ../../../../%{_lib}/libgij.so.11.* libgij.so %endif fi %if %{build_java} @@ -1037,9 +1035,9 @@ echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflap.so echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 64/libmudflapth.so %if %{build_java} -ln -sf ../`echo ../../../../lib/libgcj.so.10.* | sed s~/lib/~/lib64/~` 64/libgcj.so -ln -sf ../`echo ../../../../lib/libgcj-tools.so.10.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so -ln -sf ../`echo ../../../../lib/libgij.so.10.* | sed s~/lib/~/lib64/~` 64/libgij.so +ln -sf ../`echo ../../../../lib/libgcj.so.11.* | sed s~/lib/~/lib64/~` 64/libgcj.so +ln -sf ../`echo ../../../../lib/libgcj-tools.so.11.* | sed s~/lib/~/lib64/~` 64/libgcj-tools.so +ln -sf ../`echo ../../../../lib/libgij.so.11.* | sed s~/lib/~/lib64/~` 64/libgij.so ln -sf lib32/libgcj_bc.so libgcj_bc.so ln -sf ../lib64/libgcj_bc.so 64/libgcj_bc.so %endif @@ -1073,9 +1071,9 @@ echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libmudflapth.so.0.* | se echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflap.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflap.so echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libmudflapth.so.0.* | sed 's,^.*libm,libm,'`' )' > 32/libmudflapth.so %if %{build_java} -ln -sf ../`echo ../../../../lib64/libgcj.so.10.* | sed s~/../lib64/~/~` 32/libgcj.so -ln -sf ../`echo ../../../../lib64/libgcj-tools.so.10.* | sed s~/../lib64/~/~` 32/libgcj-tools.so -ln -sf ../`echo ../../../../lib64/libgij.so.10.* | sed s~/../lib64/~/~` 32/libgij.so +ln -sf ../`echo ../../../../lib64/libgcj.so.11.* | sed s~/../lib64/~/~` 32/libgcj.so +ln -sf ../`echo ../../../../lib64/libgcj-tools.so.11.* | sed s~/../lib64/~/~` 32/libgcj-tools.so +ln -sf ../`echo ../../../../lib64/libgij.so.11.* | sed s~/../lib64/~/~` 32/libgij.so %endif mv -f %{buildroot}%{_prefix}/lib/libgfortran.*a 32/ mv -f %{buildroot}%{_prefix}/lib/libobjc.*a 32/ @@ -1958,15 +1956,25 @@ fi %endif %changelog -* Wed Aug 11 2010 David Malcolm - 4.5.0-4.1 -- recompiling .py files against Python 2.7 (rhbz#623302) +* Thu Aug 12 2010 Jakub Jelinek 4.5.1-1 +- update from gcc-4_5-branch + - GCC 4.5.1 release + - PRs boehm-gc/34544, c++/45112, fortran/31588, fortran/42051, + fortran/43954, fortran/44064, fortran/44660, fortran/44929, + fortran/45151, libstdc++/44963, middle-end/44133, middle-end/45034, + middle-end/45262, target/41089, target/43698, target/44805, + testsuite/43283, tree-optimization/44914, tree-optimization/45052, + tree-optimization/45109 + - fix VTA ICE in caller-save.c (#622060, PR debug/45259) +- fix up gdb libstdc++ pretty printing (#621717) +- fix up libgcj.so, libgij.so and libgcj-tools.so symlinks (#619156) * Fri Jul 30 2010 Jakub Jelinek 4.5.0-4 - update from gcc-4_5-branch - PRs c++/43016, c++/44996, c++/45008, c/45079, debug/45015, fortran/30668, fortran/31346, fortran/34260, fortran/40011, testsuite/38946, tree-optimization/44900, tree-optimization/44977 - - fix vectorizer ICE (#6617492, PR tree-optimization/45047) + - fix vectorizer ICE (#617492, PR tree-optimization/45047) - use --enable-linker-build-id in configury instead of patching --build-id support in - VTA backports diff --git a/gcc45-pr45055.patch b/gcc45-pr45055.patch deleted file mode 100644 index 8465ccb..0000000 --- a/gcc45-pr45055.patch +++ /dev/null @@ -1,248 +0,0 @@ -2010-07-30 Jakub Jelinek - - PR debug/45055 - PR rtl-optimization/45137 - * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New - prototypes. - * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): - New functions. - * combine.c (next_nonnote_nondebug_insn): Removed. - * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn. - * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn. - * sched-deps.c (sched_analyze_insn): Likewise. - (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn. - * rtlanal.c (canonicalize_condition): Likewise. - * postreload.c (reload_combine): Likewise. - (reload_cse_move2add): Use next_nonnote_nondebug_insn. - - * gcc.dg/pr45055.c: New test. - ---- gcc/rtl.h.jj 2010-06-11 11:06:01.167282688 +0200 -+++ gcc/rtl.h 2010-07-30 16:33:28.722450824 +0200 -@@ -1709,6 +1709,8 @@ extern rtx next_nonnote_insn (rtx); - extern rtx next_nonnote_insn_bb (rtx); - extern rtx prev_nondebug_insn (rtx); - extern rtx next_nondebug_insn (rtx); -+extern rtx prev_nonnote_nondebug_insn (rtx); -+extern rtx next_nonnote_nondebug_insn (rtx); - extern rtx prev_real_insn (rtx); - extern rtx next_real_insn (rtx); - extern rtx prev_active_insn (rtx); ---- gcc/emit-rtl.c.jj 2010-06-11 11:06:01.104409599 +0200 -+++ gcc/emit-rtl.c 2010-07-30 16:33:28.733479816 +0200 -@@ -3162,6 +3162,38 @@ prev_nondebug_insn (rtx insn) - return insn; - } - -+/* Return the next insn after INSN that is not a NOTE nor DEBUG_INSN. -+ This routine does not look inside SEQUENCEs. */ -+ -+rtx -+next_nonnote_nondebug_insn (rtx insn) -+{ -+ while (insn) -+ { -+ insn = NEXT_INSN (insn); -+ if (insn == 0 || (!NOTE_P (insn) && !DEBUG_INSN_P (insn))) -+ break; -+ } -+ -+ return insn; -+} -+ -+/* Return the previous insn before INSN that is not a NOTE nor DEBUG_INSN. -+ This routine does not look inside SEQUENCEs. */ -+ -+rtx -+prev_nonnote_nondebug_insn (rtx insn) -+{ -+ while (insn) -+ { -+ insn = PREV_INSN (insn); -+ if (insn == 0 || (!NOTE_P (insn) && !DEBUG_INSN_P (insn))) -+ break; -+ } -+ -+ return insn; -+} -+ - /* Return the next INSN, CALL_INSN or JUMP_INSN after INSN; - or 0, if there is none. This routine does not look inside - SEQUENCEs. */ ---- gcc/combine.c.jj 2010-06-11 11:06:01.175282562 +0200 -+++ gcc/combine.c 2010-07-30 16:33:28.754479788 +0200 -@@ -12680,29 +12680,6 @@ reg_bitfield_target_p (rtx x, rtx body) - - return 0; - } -- --/* Return the next insn after INSN that is neither a NOTE nor a -- DEBUG_INSN. This routine does not look inside SEQUENCEs. */ -- --static rtx --next_nonnote_nondebug_insn (rtx insn) --{ -- while (insn) -- { -- insn = NEXT_INSN (insn); -- if (insn == 0) -- break; -- if (NOTE_P (insn)) -- continue; -- if (DEBUG_INSN_P (insn)) -- continue; -- break; -- } -- -- return insn; --} -- -- - - /* Given a chain of REG_NOTES originally from FROM_INSN, try to place them - as appropriate. I3 and I2 are the insns resulting from the combination ---- gcc/ifcvt.c.jj 2010-06-11 11:06:00.939658763 +0200 -+++ gcc/ifcvt.c 2010-07-30 16:33:28.768458909 +0200 -@@ -2285,9 +2285,7 @@ noce_process_if_block (struct noce_if_in - } - else - { -- insn_b = prev_nonnote_insn (if_info->cond_earliest); -- while (insn_b && DEBUG_INSN_P (insn_b)) -- insn_b = prev_nonnote_insn (insn_b); -+ insn_b = prev_nonnote_nondebug_insn (if_info->cond_earliest); - /* We're going to be moving the evaluation of B down from above - COND_EARLIEST to JUMP. Make sure the relevant data is still - intact. */ ---- gcc/haifa-sched.c.jj 2010-06-30 16:53:00.807292319 +0200 -+++ gcc/haifa-sched.c 2010-07-30 16:33:28.785485355 +0200 -@@ -1997,13 +1997,9 @@ queue_to_ready (struct ready_list *ready - q_ptr = NEXT_Q (q_ptr); - - if (dbg_cnt (sched_insn) == false) -- { -- /* If debug counter is activated do not requeue insn next after -- last_scheduled_insn. */ -- skip_insn = next_nonnote_insn (last_scheduled_insn); -- while (skip_insn && DEBUG_INSN_P (skip_insn)) -- skip_insn = next_nonnote_insn (skip_insn); -- } -+ /* If debug counter is activated do not requeue insn next after -+ last_scheduled_insn. */ -+ skip_insn = next_nonnote_nondebug_insn (last_scheduled_insn); - else - skip_insn = NULL_RTX; - ---- gcc/sched-deps.c.jj 2010-06-11 11:06:01.160283802 +0200 -+++ gcc/sched-deps.c 2010-07-30 16:33:28.799486427 +0200 -@@ -1517,9 +1517,7 @@ fixup_sched_groups (rtx insn) - - delete_all_dependences (insn); - -- prev_nonnote = prev_nonnote_insn (insn); -- while (DEBUG_INSN_P (prev_nonnote)) -- prev_nonnote = prev_nonnote_insn (prev_nonnote); -+ prev_nonnote = prev_nonnote_nondebug_insn (insn); - if (BLOCK_FOR_INSN (insn) == BLOCK_FOR_INSN (prev_nonnote) - && ! sched_insns_conditions_mutex_p (insn, prev_nonnote)) - add_dependence (insn, prev_nonnote, REG_DEP_ANTI); -@@ -2695,9 +2693,7 @@ sched_analyze_insn (struct deps_desc *de - if (JUMP_P (insn)) - { - rtx next; -- next = next_nonnote_insn (insn); -- while (next && DEBUG_INSN_P (next)) -- next = next_nonnote_insn (next); -+ next = next_nonnote_nondebug_insn (insn); - if (next && BARRIER_P (next)) - reg_pending_barrier = MOVE_BARRIER; - else -@@ -3366,10 +3362,8 @@ deps_start_bb (struct deps_desc *deps, r - hard registers correct. */ - if (! reload_completed && !LABEL_P (head)) - { -- rtx insn = prev_nonnote_insn (head); -+ rtx insn = prev_nonnote_nondebug_insn (head); - -- while (insn && DEBUG_INSN_P (insn)) -- insn = prev_nonnote_insn (insn); - if (insn && CALL_P (insn)) - deps->in_post_call_group_p = post_call_initial; - } ---- gcc/postreload.c.jj 2010-06-11 11:06:00.856659196 +0200 -+++ gcc/postreload.c 2010-07-30 16:34:14.703335670 +0200 -@@ -810,7 +810,7 @@ reload_combine (void) - rtx reg = SET_DEST (set); - rtx plus = SET_SRC (set); - rtx base = XEXP (plus, 1); -- rtx prev = prev_nonnote_insn (insn); -+ rtx prev = prev_nonnote_nondebug_insn (insn); - rtx prev_set = prev ? single_set (prev) : NULL_RTX; - unsigned int regno = REGNO (reg); - rtx index_reg = NULL_RTX; -@@ -1323,7 +1323,7 @@ reload_cse_move2add (rtx first) - && MODES_OK_FOR_MOVE2ADD (GET_MODE (reg), - reg_mode[REGNO (src)])) - { -- rtx next = next_nonnote_insn (insn); -+ rtx next = next_nonnote_nondebug_insn (insn); - rtx set = NULL_RTX; - if (next) - set = single_set (next); ---- gcc/rtlanal.c.jj 2010-06-11 11:06:00.867421367 +0200 -+++ gcc/rtlanal.c 2010-07-30 16:33:28.820478800 +0200 -@@ -4755,9 +4755,7 @@ canonicalize_condition (rtx insn, rtx co - stop if it isn't a single set or if it has a REG_INC note because - we don't want to bother dealing with it. */ - -- do -- prev = prev_nonnote_insn (prev); -- while (prev && DEBUG_INSN_P (prev)); -+ prev = prev_nonnote_nondebug_insn (prev); - - if (prev == 0 - || !NONJUMP_INSN_P (prev) ---- gcc/testsuite/gcc.dg/pr45055.c.jj 2010-07-30 16:33:28.821480043 +0200 -+++ gcc/testsuite/gcc.dg/pr45055.c 2010-07-30 16:33:28.822479707 +0200 -@@ -0,0 +1,41 @@ -+/* PR debug/45055 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2 -ftracer -fsched-pressure -funroll-loops -fschedule-insns -fcompare-debug" } */ -+ -+int colormap[10]; -+ -+extern int bar (); -+ -+void -+foo (int *img, int fp, int y, int *ptr, int depth, int c, int t, int xm) -+{ -+ int x, color, count; -+ for (; y; y--) -+ { -+ if (depth) -+ { -+ count = bar (); -+ for (x = xm; x; x--) -+ { -+ if (c != 1) -+ count = color = -1; -+ if (count == 0) -+ color = count = bar (); -+ if (color) -+ t = bar (fp); -+ *ptr++ = colormap[t]; -+ } -+ } -+ switch (*img) -+ { -+ case 1: -+ bar (); -+ case 3: -+ case -1: -+ case -3: -+ bar (); -+ case -4: -+ bar (); -+ } -+ } -+} diff --git a/sources b/sources index 7d22e9b..3f87b44 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -70ea3784e66a23f1e3761cd8e58a7e76 gcc-4.5.0-20100730.tar.bz2 +a52d120a609fdf8638d2fc12d08ad5ef gcc-4.5.1-20100812.tar.bz2