From 3f5a5b7946ff26e72b6fc16eae6b65e7699a3c80 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 27 Jan 2010 18:24:44 +0000 Subject: [PATCH] 4.4.3-4 --- .cvsignore | 2 +- gcc.spec | 21 ++--- gcc44-pr42861.patch | 123 ----------------------------- gcc44-rh530847.patch | 62 --------------- gcc44-rh559186.patch | 65 +++++++++++++++ gcc44-vta-non-call-exception.patch | 38 --------- sources | 2 +- 7 files changed, 79 insertions(+), 234 deletions(-) delete mode 100644 gcc44-pr42861.patch delete mode 100644 gcc44-rh530847.patch create mode 100644 gcc44-rh559186.patch delete mode 100644 gcc44-vta-non-call-exception.patch diff --git a/.cvsignore b/.cvsignore index b0e15f9..c05d45c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ fastjar-0.97.tar.gz -gcc-4.4.3-20100121.tar.bz2 +gcc-4.4.3-20100127.tar.bz2 diff --git a/gcc.spec b/gcc.spec index 853af6c..dda7e66 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,9 +1,9 @@ -%global DATE 20100121 -%global SVNREV 156157 +%global DATE 20100127 +%global SVNREV 156296 %global gcc_version 4.4.3 # 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 3 +%global gcc_release 4 %global _unpackaged_files_terminate_build 0 %global multilib_64_archs sparc64 ppc64 s390x x86_64 %if 0%{?fedora} >= 13 @@ -166,9 +166,7 @@ Patch17: gcc44-pr38757.patch Patch18: gcc44-libstdc++-docs.patch Patch19: gcc44-ppc64-aixdesc.patch Patch20: gcc44-max-vartrack-size.patch -Patch21: gcc44-vta-non-call-exception.patch -Patch22: gcc44-rh530847.patch -Patch23: gcc44-pr42861.patch +Patch21: gcc44-rh559186.patch Patch1000: fastjar-0.97-segfault.patch Patch1001: fastjar-0.97-len1.patch @@ -478,9 +476,7 @@ which are required to compile with the GNAT. %endif %patch19 -p0 -b .ppc64-aixdesc~ %patch20 -p0 -b .max-vartrack-size~ -%patch21 -p0 -b .vta-non-call-exception~ -%patch22 -p0 -b .rh530847~ -%patch23 -p0 -b .pr42861~ +%patch21 -p0 -b .rh559186~ # This testcase doesn't compile. rm libjava/testsuite/libjava.lang/PR35020* @@ -1870,6 +1866,13 @@ fi %doc rpm.doc/changelogs/libmudflap/ChangeLog* %changelog +* Wed Jan 27 2010 Jakub Jelinek 4.4.3-4 +- update from gcc-4_4-branch + - PRs bootstrap/42786, fortran/42866, target/38697, target/42841 +- fix up handling of constant pool elements in dwarf2out +- fix acats norun.lst handling +- fix asm redirection of builtin ffs on 64-bit arches (#559186) + * Mon Jan 25 2010 Jakub Jelinek 4.4.3-3 - VTA improvements (#556975, PR debug/42861) diff --git a/gcc44-pr42861.patch b/gcc44-pr42861.patch deleted file mode 100644 index 9aaafc1..0000000 --- a/gcc44-pr42861.patch +++ /dev/null @@ -1,123 +0,0 @@ -2010-01-25 Alexandre Oliva - - PR debug/42861 - * var-tracking.c (val_store): Add modified argument, obey it. - Adjust callers. - (count_uses): Move down logging of main. - (compute_bb_dataflow): Use val_store for MO_VAL_USEs that - don't need resolution. - (emit_notes_in_bb): Likewise. - ---- gcc/var-tracking.c.jj 2010-01-21 09:10:37.000000000 +0100 -+++ gcc/var-tracking.c 2010-01-25 23:18:07.239731089 +0100 -@@ -1518,10 +1518,12 @@ var_mem_delete (dataflow_set *set, rtx l - delete_variable_part (set, loc, dv_from_decl (decl), offset); - } - --/* Map a value to a location it was just stored in. */ -+/* Bind a value to a location it was just stored in. If MODIFIED -+ holds, assume the location was modified, detaching it from any -+ values bound to it. */ - - static void --val_store (dataflow_set *set, rtx val, rtx loc, rtx insn) -+val_store (dataflow_set *set, rtx val, rtx loc, rtx insn, bool modified) - { - cselib_val *v = CSELIB_VAL_PTR (val); - -@@ -1547,7 +1549,8 @@ val_store (dataflow_set *set, rtx val, r - - if (REG_P (loc)) - { -- var_regno_delete (set, REGNO (loc)); -+ if (modified) -+ var_regno_delete (set, REGNO (loc)); - var_reg_decl_set (set, loc, VAR_INIT_STATUS_INITIALIZED, - dv_from_value (val), 0, NULL_RTX, INSERT); - } -@@ -4529,11 +4532,6 @@ count_uses (rtx *ploc, void *cuip) - cselib_val *val; - enum machine_mode mode = GET_MODE (loc); - -- VTI (cui->bb)->n_mos++; -- -- if (dump_file && (dump_flags & TDF_DETAILS)) -- log_op_type (loc, cui->bb, cui->insn, mopt, dump_file); -- - switch (mopt) - { - case MO_VAL_LOC: -@@ -4547,12 +4545,15 @@ count_uses (rtx *ploc, void *cuip) - if (MEM_P (loc) - && !REG_P (XEXP (loc, 0)) && !MEM_P (XEXP (loc, 0))) - { -- val = cselib_lookup (XEXP (loc, 0), Pmode, false); -+ val = cselib_lookup (XEXP (loc, 0), Pmode, 0); - - if (val && !cselib_preserved_value_p (val)) - { - VTI (cui->bb)->n_mos++; - cselib_preserve_value (val); -+ if (dump_file && (dump_flags & TDF_DETAILS)) -+ log_op_type (XEXP (loc, 0), cui->bb, cui->insn, -+ MO_VAL_USE, dump_file); - } - } - -@@ -4575,6 +4576,9 @@ count_uses (rtx *ploc, void *cuip) - { - VTI (cui->bb)->n_mos++; - cselib_preserve_value (oval); -+ if (dump_file && (dump_flags & TDF_DETAILS)) -+ log_op_type (loc, cui->bb, cui->insn, -+ MO_VAL_USE, dump_file); - } - } - -@@ -4589,6 +4593,10 @@ count_uses (rtx *ploc, void *cuip) - default: - break; - } -+ -+ VTI (cui->bb)->n_mos++; -+ if (dump_file && (dump_flags & TDF_DETAILS)) -+ log_op_type (loc, cui->bb, cui->insn, mopt, dump_file); - } - - return 0; -@@ -5318,6 +5326,8 @@ compute_bb_dataflow (basic_block bb) - - if (VAL_NEEDS_RESOLUTION (loc)) - val_resolve (out, val, vloc, insn); -+ else -+ val_store (out, val, uloc, insn, false); - - if (VAL_HOLDS_TRACK_EXPR (loc)) - { -@@ -5409,7 +5419,7 @@ compute_bb_dataflow (basic_block bb) - else if (REG_P (uloc)) - var_regno_delete (out, REGNO (uloc)); - -- val_store (out, val, vloc, insn); -+ val_store (out, val, vloc, insn, true); - } - break; - -@@ -6939,6 +6949,8 @@ emit_notes_in_bb (basic_block bb, datafl - - if (VAL_NEEDS_RESOLUTION (loc)) - val_resolve (set, val, vloc, insn); -+ else -+ val_store (set, val, uloc, insn, false); - - if (VAL_HOLDS_TRACK_EXPR (loc)) - { -@@ -7026,7 +7038,7 @@ emit_notes_in_bb (basic_block bb, datafl - else if (REG_P (uloc)) - var_regno_delete (set, REGNO (uloc)); - -- val_store (set, val, vloc, insn); -+ val_store (set, val, vloc, insn, true); - - emit_notes_for_changes (NEXT_INSN (insn), EMIT_NOTE_BEFORE_INSN, - set->vars); diff --git a/gcc44-rh530847.patch b/gcc44-rh530847.patch deleted file mode 100644 index ce23a2c..0000000 --- a/gcc44-rh530847.patch +++ /dev/null @@ -1,62 +0,0 @@ -2010-01-24 David S. Miller - - * gcc/config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only - define if not using GAS. - * gcc/config/sparc/sparc.c (sparc_elf_asm_named_section): - Likewise. Delete SECTION_MERGE code, which is only applicable - when using GAS. - ---- gcc/config/sparc/sparc.c (revision 156204) -+++ gcc/config/sparc/sparc.c (revision 156205) -@@ -371,7 +371,7 @@ static int save_or_restore_regs (int, in - static void emit_save_or_restore_regs (int); - static void sparc_asm_function_prologue (FILE *, HOST_WIDE_INT); - static void sparc_asm_function_epilogue (FILE *, HOST_WIDE_INT); --#ifdef OBJECT_FORMAT_ELF -+#if defined (OBJECT_FORMAT_ELF) && !defined (HAVE_GNU_AS) - static void sparc_elf_asm_named_section (const char *, unsigned int, tree); - #endif - -@@ -7847,19 +7847,11 @@ sparc_profile_hook (int labelno) - } - } - --#ifdef OBJECT_FORMAT_ELF -+#if defined (OBJECT_FORMAT_ELF) && !defined (HAVE_GNU_AS) - static void - sparc_elf_asm_named_section (const char *name, unsigned int flags, - tree decl) - { -- if (flags & SECTION_MERGE) -- { -- /* entsize cannot be expressed in this section attributes -- encoding style. */ -- default_elf_asm_named_section (name, flags, decl); -- return; -- } -- - fprintf (asm_out_file, "\t.section\t\"%s\"", name); - - if (!(flags & SECTION_DEBUG)) ---- gcc/config/sparc/sysv4.h (revision 156204) -+++ gcc/config/sparc/sysv4.h (revision 156205) -@@ -1,5 +1,6 @@ - /* Target definitions for GNU compiler for SPARC running System V.4 -- Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009 -+ Copyright (C) 1991, 1992, 1995, 1996, 1997, 1998, 2000, 2002, 2007, 2009, -+ 2010 - Free Software Foundation, Inc. - Contributed by Ron Guilmette (rfg@monkeys.com). - -@@ -126,9 +127,11 @@ do { ASM_OUTPUT_ALIGN ((FILE), Pmode == - #undef DTORS_SECTION_ASM_OP - #define DTORS_SECTION_ASM_OP "\t.section\t\".dtors\",#alloc,#write" - -+#ifndef HAVE_GNU_AS - /* Switch into a generic section. */ - #undef TARGET_ASM_NAMED_SECTION - #define TARGET_ASM_NAMED_SECTION sparc_elf_asm_named_section -+#endif - - #undef ASM_OUTPUT_ALIGNED_BSS - #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ diff --git a/gcc44-rh559186.patch b/gcc44-rh559186.patch new file mode 100644 index 0000000..0544f72 --- /dev/null +++ b/gcc44-rh559186.patch @@ -0,0 +1,65 @@ +2010-01-27 Jakub Jelinek + + * Makefile.in (c-common.o): Depend on $(OPTABS_H). + * c-common.c: Include optabs.h. + (set_builtin_user_assembler_name): Also handle + ffs if int is smaller than word. + + * gcc.dg/builtin-ffs-1.c: New test. + +--- gcc/Makefile.in.jj 2010-01-21 08:58:12.000000000 +0100 ++++ gcc/Makefile.in 2010-01-27 19:17:05.000000000 +0100 +@@ -1890,7 +1890,7 @@ c-common.o : c-common.c $(CONFIG_H) $(SY + $(TARGET_H) $(C_TREE_H) tree-iterator.h langhooks.h tree-mudflap.h \ + intl.h opts.h $(REAL_H) $(CPPLIB_H) $(TREE_INLINE_H) $(HASHTAB_H) \ + $(BUILTINS_DEF) $(CGRAPH_H) $(BASIC_BLOCK_H) $(TARGET_DEF_H) \ +- $(GIMPLE_H) libfuncs.h ++ $(GIMPLE_H) libfuncs.h $(OPTABS_H) + + c-pretty-print.o : c-pretty-print.c $(C_PRETTY_PRINT_H) \ + $(C_TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(REAL_H) \ +--- gcc/c-common.c.jj 2009-11-09 16:38:29.000000000 +0100 ++++ gcc/c-common.c 2010-01-27 19:16:35.000000000 +0100 +@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. + #include "gimple.h" + #include "fixed-value.h" + #include "libfuncs.h" ++#include "optabs.h" + + cpp_reader *parse_in; /* Declared in c-pragma.h. */ + +@@ -4421,6 +4422,14 @@ set_builtin_user_assembler_name (tree de + case BUILT_IN_ABORT: + abort_libfunc = set_user_assembler_libfunc ("abort", asmspec); + break; ++ case BUILT_IN_FFS: ++ if (INT_TYPE_SIZE < BITS_PER_WORD) ++ { ++ set_user_assembler_libfunc ("ffs", asmspec); ++ set_optab_libfunc (ffs_optab, mode_for_size (INT_TYPE_SIZE, ++ MODE_INT, 0), "ffs"); ++ } ++ break; + default: + break; + } +--- gcc/testsuite/gcc.dg/builtin-ffs-1.c.jj 2010-01-27 14:27:45.000000000 +0100 ++++ gcc/testsuite/gcc.dg/builtin-ffs-1.c 2010-01-27 14:27:10.000000000 +0100 +@@ -0,0 +1,17 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++extern int ffs (int) __asm ("__GI_ffs") __attribute__ ((nothrow, const)); ++ ++int ++ffsll (long long int i) ++{ ++ unsigned long long int x = i & -i; ++ ++ if (x <= 0xffffffff) ++ return ffs (i); ++ else ++ return 32 + ffs (i >> 32); ++} ++ ++/* { dg-final { scan-assembler-not "\nffs\n|\nffs\[^a-zA-Z0-9_\]|\[^a-zA-Z0-9_\]ffs\n" } } */ diff --git a/gcc44-vta-non-call-exception.patch b/gcc44-vta-non-call-exception.patch deleted file mode 100644 index d7e633d..0000000 --- a/gcc44-vta-non-call-exception.patch +++ /dev/null @@ -1,38 +0,0 @@ -2010-01-21 Jakub Jelinek - - * tree-into-ssa.c (maybe_register_def): If stmt ends the bb, - insert the debug stmt on the single non-EH edge from the stmt. - ---- gcc/tree-into-ssa.c.jj 2010-01-21 09:58:38.000000000 +0100 -+++ gcc/tree-into-ssa.c 2010-01-21 12:25:22.000000000 +0100 -@@ -1968,7 +1968,29 @@ maybe_register_def (def_operand_p def_p, - if (tracked_var) - { - gimple note = gimple_build_debug_bind (tracked_var, def, stmt); -- gsi_insert_after (&gsi, note, GSI_SAME_STMT); -+ if (gsi_one_before_end_p (gsi) && stmt_ends_bb_p (stmt)) -+ { -+ basic_block bb = gsi_bb (gsi); -+ edge_iterator ei; -+ edge e, ef = NULL; -+ FOR_EACH_EDGE (e, ei, bb->succs) -+ if (!(e->flags & EDGE_EH)) -+ { -+ if (ef) -+ { -+ ef = NULL; -+ break; -+ } -+ ef = e; -+ } -+ if (ef -+ && single_pred_p (ef->dest) -+ && !phi_nodes (ef->dest) -+ && ef->dest != EXIT_BLOCK_PTR) -+ gsi_insert_on_edge_immediate (ef, note); -+ } -+ else -+ gsi_insert_after (&gsi, note, GSI_SAME_STMT); - } - } - diff --git a/sources b/sources index f1c292e..5ad077a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz -6583a7c9552f341f1fc386e31e580d42 gcc-4.4.3-20100121.tar.bz2 +68beb615235531be563805873737509f gcc-4.4.3-20100127.tar.bz2