4.4.3-4
This commit is contained in:
parent
2b90ba6797
commit
3f5a5b7946
|
@ -1,2 +1,2 @@
|
||||||
fastjar-0.97.tar.gz
|
fastjar-0.97.tar.gz
|
||||||
gcc-4.4.3-20100121.tar.bz2
|
gcc-4.4.3-20100127.tar.bz2
|
||||||
|
|
21
gcc.spec
21
gcc.spec
|
@ -1,9 +1,9 @@
|
||||||
%global DATE 20100121
|
%global DATE 20100127
|
||||||
%global SVNREV 156157
|
%global SVNREV 156296
|
||||||
%global gcc_version 4.4.3
|
%global gcc_version 4.4.3
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %{release}, append them after %{gcc_release} on Release: line.
|
# %{release}, append them after %{gcc_release} on Release: line.
|
||||||
%global gcc_release 3
|
%global gcc_release 4
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
%global multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%if 0%{?fedora} >= 13
|
%if 0%{?fedora} >= 13
|
||||||
|
@ -166,9 +166,7 @@ Patch17: gcc44-pr38757.patch
|
||||||
Patch18: gcc44-libstdc++-docs.patch
|
Patch18: gcc44-libstdc++-docs.patch
|
||||||
Patch19: gcc44-ppc64-aixdesc.patch
|
Patch19: gcc44-ppc64-aixdesc.patch
|
||||||
Patch20: gcc44-max-vartrack-size.patch
|
Patch20: gcc44-max-vartrack-size.patch
|
||||||
Patch21: gcc44-vta-non-call-exception.patch
|
Patch21: gcc44-rh559186.patch
|
||||||
Patch22: gcc44-rh530847.patch
|
|
||||||
Patch23: gcc44-pr42861.patch
|
|
||||||
|
|
||||||
Patch1000: fastjar-0.97-segfault.patch
|
Patch1000: fastjar-0.97-segfault.patch
|
||||||
Patch1001: fastjar-0.97-len1.patch
|
Patch1001: fastjar-0.97-len1.patch
|
||||||
|
@ -478,9 +476,7 @@ which are required to compile with the GNAT.
|
||||||
%endif
|
%endif
|
||||||
%patch19 -p0 -b .ppc64-aixdesc~
|
%patch19 -p0 -b .ppc64-aixdesc~
|
||||||
%patch20 -p0 -b .max-vartrack-size~
|
%patch20 -p0 -b .max-vartrack-size~
|
||||||
%patch21 -p0 -b .vta-non-call-exception~
|
%patch21 -p0 -b .rh559186~
|
||||||
%patch22 -p0 -b .rh530847~
|
|
||||||
%patch23 -p0 -b .pr42861~
|
|
||||||
|
|
||||||
# This testcase doesn't compile.
|
# This testcase doesn't compile.
|
||||||
rm libjava/testsuite/libjava.lang/PR35020*
|
rm libjava/testsuite/libjava.lang/PR35020*
|
||||||
|
@ -1870,6 +1866,13 @@ fi
|
||||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 27 2010 Jakub Jelinek <jakub@redhat.com> 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 <jakub@redhat.com> 4.4.3-3
|
* Mon Jan 25 2010 Jakub Jelinek <jakub@redhat.com> 4.4.3-3
|
||||||
- VTA improvements (#556975, PR debug/42861)
|
- VTA improvements (#556975, PR debug/42861)
|
||||||
|
|
||||||
|
|
|
@ -1,123 +0,0 @@
|
||||||
2010-01-25 Alexandre Oliva <aoliva@redhat.com>
|
|
||||||
|
|
||||||
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);
|
|
|
@ -1,62 +0,0 @@
|
||||||
2010-01-24 David S. Miller <davem@davemloft.net>
|
|
||||||
|
|
||||||
* 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) \
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
2010-01-27 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* 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" } } */
|
|
@ -1,38 +0,0 @@
|
||||||
2010-01-21 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue