rpms/gcc/devel gcc43-pr37189.patch, NONE, 1.1 gcc43-x86_64-va_start.patch, NONE, 1.1 .cvsignore, 1.242, 1.243 gcc43.spec, 1.40, 1.41 sources, 1.245, 1.246 gcc43-fortran-debug1.patch, 1.1, NONE gcc43-fortran-debug10.patch, 1.2, NONE gcc43-fortran-debug11.patch, 1.1, NONE gcc43-fortran-debug2.patch, 1.2, NONE gcc43-fortran-debug3.patch, 1.1, NONE gcc43-fortran-debug4.patch, 1.1, NONE gcc43-fortran-debug5.patch, 1.1, NONE gcc43-fortran-debug6.patch, 1.1, NONE gcc43-fortran-debug7.patch, 1.1, NONE gcc43-fortran-debug8.patch, 1.1, NONE gcc43-fortran-debug9.patch, 1.1, NONE gcc43-pr37248.patch, 1.2, NONE

Jakub Jelinek jakub at fedoraproject.org
Fri Sep 5 08:44:25 UTC 2008


Author: jakub

Update of /cvs/pkgs/rpms/gcc/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv8814

Modified Files:
	.cvsignore gcc43.spec sources 
Added Files:
	gcc43-pr37189.patch gcc43-x86_64-va_start.patch 
Removed Files:
	gcc43-fortran-debug1.patch gcc43-fortran-debug10.patch 
	gcc43-fortran-debug11.patch gcc43-fortran-debug2.patch 
	gcc43-fortran-debug3.patch gcc43-fortran-debug4.patch 
	gcc43-fortran-debug5.patch gcc43-fortran-debug6.patch 
	gcc43-fortran-debug7.patch gcc43-fortran-debug8.patch 
	gcc43-fortran-debug9.patch gcc43-pr37248.patch 
Log Message:
4.3.2-2


gcc43-pr37189.patch:

--- NEW FILE gcc43-pr37189.patch ---
2008-09-03  Jakub Jelinek  <jakub at redhat.com>

	PR c++/37189
	* cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): New
	extern decls.
	* decl2.c (mark_used): If defer_mark_used_calls, push decl into
	deferred_mark_used_calls vector and exit early.
	* decl.c (defer_mark_used_calls, deferred_mark_used_calls): New
	variables.
	(finish_function): Set defer_mark_used_calls for the duration of the
	function.  Call mark_used on any queued decls.

	PR c++/37189
	* g++.dg/gomp/pr37189.C: New test.

--- gcc/cp/decl2.c	(revision 139954)
+++ gcc/cp/decl2.c	(revision 139955)
@@ -3776,6 +3776,15 @@ mark_used (tree decl)
   /* If we don't need a value, then we don't need to synthesize DECL.  */
   if (skip_evaluation)
     return;
+
+  /* If within finish_function, defer the rest until that function
+     finishes, otherwise it might recurse.  */
+  if (defer_mark_used_calls)
+    {
+      VEC_safe_push (tree, gc, deferred_mark_used_calls, decl);
+      return;
+    }
+
   /* Normally, we can wait until instantiation-time to synthesize
      DECL.  However, if DECL is a static data member initialized with
      a constant, we need the value right now because a reference to
--- gcc/cp/decl.c	(revision 139954)
+++ gcc/cp/decl.c	(revision 139955)
@@ -227,6 +227,11 @@ struct named_label_entry GTY(())
    function, two inside the body of a function in a local class, etc.)  */
 int function_depth;
 
+/* To avoid unwanted recursion, finish_function defers all mark_used calls
+   encountered during its execution until it finishes.  */
+bool defer_mark_used_calls;
+VEC(tree, gc) *deferred_mark_used_calls;
+
 /* States indicating how grokdeclarator() should handle declspecs marked
    with __attribute__((deprecated)).  An object declared as
    __attribute__((deprecated)) suppresses warnings of uses of other
@@ -12033,6 +12038,9 @@ finish_function (int flags)
   if (fndecl == NULL_TREE)
     return error_mark_node;
 
+  gcc_assert (!defer_mark_used_calls);
+  defer_mark_used_calls = true;
+
   if (DECL_NONSTATIC_MEMBER_FUNCTION_P (fndecl)
       && DECL_VIRTUAL_P (fndecl)
       && !processing_template_decl)
@@ -12232,6 +12240,17 @@ finish_function (int flags)
        cxx_pop_function_context and then reset via pop_function_context.  */
     current_function_decl = NULL_TREE;
 
+  defer_mark_used_calls = false;
+  if (deferred_mark_used_calls)
+    {
+      unsigned int i;
+      tree decl;
+
+      for (i = 0; VEC_iterate (tree, deferred_mark_used_calls, i, decl); i++)
+	mark_used (decl);
+      VEC_free (tree, gc, deferred_mark_used_calls);
+    }
+
   return fndecl;
 }
 
--- gcc/cp/cp-tree.h	(revision 139954)
+++ gcc/cp/cp-tree.h	(revision 139955)
@@ -4381,6 +4381,9 @@ extern void initialize_artificial_var		(
 extern tree check_var_type			(tree, tree);
 extern tree reshape_init (tree, tree);
 
+extern bool defer_mark_used_calls;
+extern GTY(()) VEC(tree, gc) *deferred_mark_used_calls;
+
 /* in decl2.c */
 extern bool check_java_method			(tree);
 extern tree build_memfn_type			(tree, tree, cp_cv_quals);
--- gcc/testsuite/g++.dg/gomp/pr37189.C	(revision 0)
+++ gcc/testsuite/g++.dg/gomp/pr37189.C	(revision 139955)
@@ -0,0 +1,27 @@
+// PR c++/37189
+// { dg-do compile }
+// { dg-options "-fopenmp" }
+
+struct S
+{
+  S () {}
+  S (S const &) {}
+};
+
+struct T
+{
+  S s;
+};
+
+void
+bar (T &)
+{
+}
+
+int
+foo ()
+{
+  T t;
+  #pragma omp task
+    bar (t);
+}

gcc43-x86_64-va_start.patch:

--- NEW FILE gcc43-x86_64-va_start.patch ---
2008-09-02  H.J. Lu  <hongjiu.lu at intel.com>
	    Jakub Jelinek  <jakub at redhat.com>

	* config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
	(setup_incoming_varargs_64): Set/check ix86_varargs_gpr_size and
	ix86_varargs_fpr_size.  Use ix86_varargs_gpr_size instead of
	REGPARM_MAX.  Don't set ix86_save_varrargs_registers.
	(ix86_va_start): Check ix86_varargs_gpr_size and
	ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
	cfun->va_list_fpr_size, respectively.  Subtract 8*REGPARM_MAX
	from frame pointer if ix86_varargs_gpr_size == 0.
	(ix86_compute_frame_layout): Updated.
	* config/i386/i386.h (ix86_save_varrargs_registers): Removed.
	(ix86_varargs_gpr_size): Define.
	(ix86_varargs_fpr_size): Likewise.
	(machine_function): Remove save_varrargs_registers.
	Add varargs_gpr_size and varargs_fpr_size.

	* gcc.target/i386/amd64-abi-3.c: New test.
	* gcc.target/i386/amd64-abi-4.c: Likewise.
	* gcc.target/i386/amd64-abi-5.c: Likewise.
	* gcc.target/i386/amd64-abi-6.c: Likewise.

--- gcc/config/i386/i386.h	(revision 139909)
+++ gcc/config/i386/i386.h	(revision 139910)
@@ -2440,7 +2440,8 @@ struct machine_function GTY(())
   struct stack_local_entry *stack_locals;
   const char *some_ld_name;
   rtx force_align_arg_pointer;
-  int save_varrargs_registers;
+  int varargs_gpr_size;
+  int varargs_fpr_size;
   int accesses_prev_frame;
   int optimize_mode_switching[MAX_386_ENTITIES];
   int needs_cld;
@@ -2463,7 +2464,8 @@ struct machine_function GTY(())
 };
 
 #define ix86_stack_locals (cfun->machine->stack_locals)
-#define ix86_save_varrargs_registers (cfun->machine->save_varrargs_registers)
+#define ix86_varargs_gpr_size (cfun->machine->varargs_gpr_size)
+#define ix86_varargs_fpr_size (cfun->machine->varargs_fpr_size)
 #define ix86_optimize_mode_switching (cfun->machine->optimize_mode_switching)
 #define ix86_current_function_needs_cld (cfun->machine->needs_cld)
 #define ix86_tls_descriptor_calls_expanded_in_cfun \
--- gcc/config/i386/i386.c	(revision 139909)
+++ gcc/config/i386/i386.c	(revision 139910)
@@ -1616,9 +1616,6 @@ rtx ix86_compare_op0 = NULL_RTX;
 rtx ix86_compare_op1 = NULL_RTX;
 rtx ix86_compare_emitted = NULL_RTX;
 
-/* Size of the register save area.  */
-#define X86_64_VARARGS_SIZE (REGPARM_MAX * UNITS_PER_WORD + SSE_REGPARM_MAX * 16)
-
 /* Define the structure for the machine field in struct function.  */
 
 struct stack_local_entry GTY(())
@@ -4976,11 +4973,22 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
   alias_set_type set;
   int i;
 
-  if (! cfun->va_list_gpr_size && ! cfun->va_list_fpr_size)
+  /* GPR size of varargs save area.  */
+  if (cfun->va_list_gpr_size)
+    ix86_varargs_gpr_size = REGPARM_MAX * UNITS_PER_WORD;
+  else
+    ix86_varargs_gpr_size = 0;
+
+  /* FPR size of varargs save area.  We don't need it if we don't pass
+     anything in SSE registers.  */
+  if (cum->sse_nregs && cfun->va_list_fpr_size)
+    ix86_varargs_fpr_size = SSE_REGPARM_MAX * 16;
+  else
+    ix86_varargs_fpr_size = 0;
+
+  if (! ix86_varargs_gpr_size && ! ix86_varargs_fpr_size)
     return;
 
-  /* Indicate to allocate space on the stack for varargs save area.  */
-  ix86_save_varrargs_registers = 1;
   /* We need 16-byte stack alignment to save SSE registers.  If user
      asked for lower preferred_stack_boundary, lets just hope that he knows
      what he is doing and won't varargs SSE values.
@@ -5006,7 +5014,7 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
 					x86_64_int_parameter_registers[i]));
     }
 
-  if (cum->sse_nregs && cfun->va_list_fpr_size)
+  if (ix86_varargs_fpr_size)
     {
       /* Now emit code to save SSE registers.  The AX parameter contains number
 	 of SSE parameter registers used to call this function.  We use
@@ -5041,7 +5049,7 @@ setup_incoming_varargs_64 (CUMULATIVE_AR
       tmp_reg = gen_reg_rtx (Pmode);
       emit_insn (gen_rtx_SET (VOIDmode, tmp_reg,
 			      plus_constant (save_area,
-					     8 * REGPARM_MAX + 127)));
+					     ix86_varargs_gpr_size + 127)));
       mem = gen_rtx_MEM (BLKmode, plus_constant (tmp_reg, -127));
       MEM_NOTRAP_P (mem) = 1;
       set_mem_alias_set (mem, set);
@@ -5145,7 +5153,7 @@ ix86_va_start (tree valist, rtx nextarg)
       expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
     }
 
-  if (cfun->va_list_fpr_size)
+  if (TARGET_SSE && cfun->va_list_fpr_size)
     {
       type = TREE_TYPE (fpr);
       t = build2 (GIMPLE_MODIFY_STMT, type, fpr,
@@ -5164,12 +5172,15 @@ ix86_va_start (tree valist, rtx nextarg)
   TREE_SIDE_EFFECTS (t) = 1;
   expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
 
-  if (cfun->va_list_gpr_size || cfun->va_list_fpr_size)
+  if (ix86_varargs_gpr_size || ix86_varargs_fpr_size)
     {
       /* Find the register save area.
 	 Prologue of the function save it right above stack frame.  */
       type = TREE_TYPE (sav);
       t = make_tree (type, frame_pointer_rtx);
+      if (!ix86_varargs_gpr_size)
+	t = build2 (POINTER_PLUS_EXPR, type, t,
+		    size_int (-8 * REGPARM_MAX));
       t = build2 (GIMPLE_MODIFY_STMT, type, sav, t);
       TREE_SIDE_EFFECTS (t) = 1;
       expand_expr (t, const0_rtx, VOIDmode, EXPAND_NORMAL);
@@ -6079,13 +6090,8 @@ ix86_compute_frame_layout (struct ix86_f
   offset += frame->nregs * UNITS_PER_WORD;
 
   /* Va-arg area */
-  if (ix86_save_varrargs_registers)
-    {
-      offset += X86_64_VARARGS_SIZE;
-      frame->va_arg_size = X86_64_VARARGS_SIZE;
-    }
-  else
-    frame->va_arg_size = 0;
+  frame->va_arg_size = ix86_varargs_gpr_size + ix86_varargs_fpr_size;
+  offset += frame->va_arg_size;
 
   /* Align start of frame for local function.  */
   frame->padding1 = ((offset + stack_alignment_needed - 1)
--- gcc/testsuite/gcc.target/i386/amd64-abi-3.c	(revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-3.c	(revision 139910)
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2 -mno-sse" } */
+/* { dg-final { scan-assembler "subq\[\\t \]*\\\$88,\[\\t \]*%rsp" } } */
+/* { dg-final { scan-assembler-not "subq\[\\t \]*\\\$216,\[\\t \]*%rsp" } } */
+
+#include <stdarg.h>
+
+void foo (va_list va_arglist);
+
+void
+test (int a1, ...)
+{
+  va_list va_arglist;
+  va_start (va_arglist, a1);
+  foo (va_arglist);
+  va_end (va_arglist);
+}
--- gcc/testsuite/gcc.target/i386/amd64-abi-5.c	(revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-5.c	(revision 139910)
@@ -0,0 +1,64 @@
+/* { dg-do run } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2" } */
+
+#include <stdarg.h>
+#include <assert.h>
+
+int n1 = 30;
+double n2 = 324;
+double n3 = 39494.94;
+double n4 = 407;
+double n5 = 32.304;
+double n6 = 394.14;
+double n7 = 4.07;
+double n8 = 32.4;
+double n9 = 314.194;
+double n10 = 0.1407;
+
+int e1;
+double e2;
+double e3;
+double e4;
+double e5;
+double e6;
+double e7;
+double e8;
+double e9;
+double e10;
+
+static void
+__attribute__((noinline))
+test (int a1, ...)
+{
+  e1 = a1;
+  va_list va_arglist;
+  va_start (va_arglist, a1);
+  e2 = va_arg (va_arglist, double);
+  e3 = va_arg (va_arglist, double);
+  e4 = va_arg (va_arglist, double);
+  e5 = va_arg (va_arglist, double);
+  e6 = va_arg (va_arglist, double);
+  e7 = va_arg (va_arglist, double);
+  e8 = va_arg (va_arglist, double);
+  e9 = va_arg (va_arglist, double);
+  e10 = va_arg (va_arglist, double);
+  va_end (va_arglist);
+}
+
+int
+main ()
+{
+  test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
+  assert (n1 == e1);
+  assert (n2 == e2);
+  assert (n3 == e3);
+  assert (n4 == e4);
+  assert (n5 == e5);
+  assert (n6 == e6);
+  assert (n7 == e7);
+  assert (n8 == e8);
+  assert (n9 == e9);
+  assert (n10 == e10);
+  return 0;
+}
--- gcc/testsuite/gcc.target/i386/amd64-abi-4.c	(revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-4.c	(revision 139910)
@@ -0,0 +1,47 @@
+/* { dg-do run } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2 -mno-sse" } */
+
+#include <stdarg.h>
+#include <assert.h>
+
+int n1 = 30;
+int n2 = 324;
+void *n3 = (void *) &n2;
+int n4 = 407;
+
+int e1;
+int e2;
+void *e3;
+int e4;
+
+static void
+__attribute__((noinline))
+foo (va_list va_arglist)
+{
+  e2 = va_arg (va_arglist, int);
+  e3 = va_arg (va_arglist, void *);
+  e4 = va_arg (va_arglist, int);
+}
+
+static void
+__attribute__((noinline))
+test (int a1, ...)
+{
+  e1 = a1;
+  va_list va_arglist;
+  va_start (va_arglist, a1);
+  foo (va_arglist);
+  va_end (va_arglist);
+}
+
+int
+main ()
+{
+  test (n1, n2, n3, n4);
+  assert (n1 == e1);
+  assert (n2 == e2);
+  assert (n3 == e3);
+  assert (n4 == e4);
+  return 0;
+}
--- gcc/testsuite/gcc.target/i386/amd64-abi-6.c	(revision 0)
+++ gcc/testsuite/gcc.target/i386/amd64-abi-6.c	(revision 139910)
@@ -0,0 +1,71 @@
+/* { dg-do run } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2" } */
+
+#include <stdarg.h>
+#include <assert.h>
+
+int n1 = 30;
+double n2 = 324;
+double n3 = 39494.94;
+double n4 = 407;
+double n5 = 32.304;
+double n6 = 394.14;
+double n7 = 4.07;
+double n8 = 32.4;
+double n9 = 314.194;
+double n10 = 0.1407;
+
+int e1;
+double e2;
+double e3;
+double e4;
+double e5;
+double e6;
+double e7;
+double e8;
+double e9;
+double e10;
+
+static void
+__attribute__((noinline))
+foo (va_list va_arglist)
+{
+  e2 = va_arg (va_arglist, double);
+  e3 = va_arg (va_arglist, double);
+  e4 = va_arg (va_arglist, double);
+  e5 = va_arg (va_arglist, double);
+  e6 = va_arg (va_arglist, double);
+  e7 = va_arg (va_arglist, double);
+  e8 = va_arg (va_arglist, double);
+  e9 = va_arg (va_arglist, double);
+  e10 = va_arg (va_arglist, double);
+}
+
+static void
+__attribute__((noinline))
+test (int a1, ...)
+{
+  va_list va_arglist;
+  e1 = a1;
+  va_start (va_arglist, a1);
+  foo (va_arglist);
+  va_end (va_arglist);
+}
+
+int
+main ()
+{
+  test (n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
+  assert (n1 == e1);
+  assert (n2 == e2);
+  assert (n3 == e3);
+  assert (n4 == e4);
+  assert (n5 == e5);
+  assert (n6 == e6);
+  assert (n7 == e7);
+  assert (n8 == e8);
+  assert (n9 == e9);
+  assert (n10 == e10);
+  return 0;
+}


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.242
retrieving revision 1.243
diff -u -r1.242 -r1.243
--- .cvsignore	29 Aug 2008 11:16:06 -0000	1.242
+++ .cvsignore	5 Sep 2008 08:43:54 -0000	1.243
@@ -1,2 +1,2 @@
-gcc-4.3.2-20080829.tar.bz2
+gcc-4.3.2-20080905.tar.bz2
 fastjar-0.95.tar.gz


Index: gcc43.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/gcc43.spec,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- gcc43.spec	29 Aug 2008 11:16:06 -0000	1.40
+++ gcc43.spec	5 Sep 2008 08:43:54 -0000	1.41
@@ -1,6 +1,9 @@
-%define DATE 20080829
+%define DATE 20080905
+%define SVNREV 140029
 %define gcc_version 4.3.2
-%define gcc_release 1
+# Note, gcc_release must be integer, if you want to add suffixes to
+# %{release}, append them after %{gcc_release} on Release: line.
+%define gcc_release 2
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %define include_gappletviewer 1
@@ -37,6 +40,10 @@
 # restrictions.
 License: GPLv3+ and GPLv2+ with exceptions
 Group: Development/Languages
+# The source for this package was pulled from upstream's vcs.  Use the
+# following commands to generate the tarball:
+# svn export svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_3-branch@%{SVNREV} gcc-%{version}-%{DATE}
+# tar cf - gcc-%{version}-%{DATE} | bzip2 -9 > gcc-%{version}-%{DATE}.tar.bz2
 Source0: gcc-%{version}-%{DATE}.tar.bz2
 Source1: libgcc_post_upgrade.c
 Source2: README.libgcjwebplugin.so
@@ -44,7 +51,7 @@
 %define fastjar_ver 0.95
 Source4: http://download.savannah.nongnu.org/releases/fastjar/fastjar-%{fastjar_ver}.tar.gz
 URL: http://gcc.gnu.org
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n))
 # Need binutils with -pie support >= 2.14.90.0.4-4
 # Need binutils which can omit dot symbols and overlap .opd on ppc64 >= 2.15.91.0.2-4
 # Need binutils which handle -msecure-plt on ppc >= 2.16.91.0.2-2
@@ -103,27 +110,27 @@
 %endif
 Requires: libgcc >= %{version}-%{release}
 Requires: libgomp = %{version}-%{release}
-Obsoletes: gcc3
-Obsoletes: egcs
+#Obsoletes: gcc3
+#Obsoletes: egcs
 %ifarch sparc
-Obsoletes: gcc-sparc32
-Obsoletes: gcc-c++-sparc32
+#Obsoletes: gcc-sparc32
+#Obsoletes: gcc-c++-sparc32
 %endif
 %ifarch ppc
-Obsoletes: gcc-ppc32
-Obsoletes: gcc-c++-ppc32
+#Obsoletes: gcc-ppc32
+#Obsoletes: gcc-c++-ppc32
 %endif
-Obsoletes: gcc-chill
+#Obsoletes: gcc-chill
 %if !%{build_ada}
 Obsoletes: gcc-gnat < %{version}-%{release}
 Obsoletes: libgnat < %{version}-%{release}
 %endif
 %ifarch sparc sparc64
-Obsoletes: egcs64
+#Obsoletes: egcs64
 %endif
-Obsoletes: gcc34
-Obsoletes: gcc35
-Obsoletes: gcc4
+#Obsoletes: gcc34
+#Obsoletes: gcc35
+#Obsoletes: gcc4
 Prereq: /sbin/install-info
 AutoReq: true
 
@@ -143,18 +150,8 @@
 Patch14: gcc43-rh251682.patch
 Patch15: gcc43-sparc-config-detection.patch
 Patch16: gcc43-libgomp-omp_h-multilib.patch
-Patch17: gcc43-fortran-debug1.patch
-Patch18: gcc43-fortran-debug2.patch
-Patch19: gcc43-fortran-debug3.patch
-Patch20: gcc43-fortran-debug4.patch
-Patch21: gcc43-fortran-debug5.patch
-Patch22: gcc43-fortran-debug6.patch
-Patch23: gcc43-fortran-debug7.patch
-Patch24: gcc43-fortran-debug8.patch
-Patch25: gcc43-fortran-debug9.patch
-Patch26: gcc43-fortran-debug10.patch
-Patch27: gcc43-fortran-debug11.patch
-Patch28: gcc43-pr37248.patch
+Patch17: gcc43-x86_64-va_start.patch
+Patch18: gcc43-pr37189.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -190,10 +187,10 @@
 Requires: gcc = %{version}-%{release}
 Requires: libstdc++ = %{version}-%{release}
 Requires: libstdc++-devel = %{version}-%{release}
-Obsoletes: gcc3-c++
-Obsoletes: gcc34-c++
-Obsoletes: gcc35-c++
-Obsoletes: gcc4-c++
+#Obsoletes: gcc3-c++
+#Obsoletes: gcc34-c++
+#Obsoletes: gcc35-c++
+#Obsoletes: gcc4-c++
 Autoreq: true
 
 %description c++
@@ -204,8 +201,8 @@
 %package -n libstdc++
 Summary: GNU Standard C++ Library
 Group: System Environment/Libraries
-Obsoletes: libstdc++3
-Obsoletes: libstdc++34
+#Obsoletes: libstdc++3
+#Obsoletes: libstdc++34
 Autoreq: true
 
 %description -n libstdc++
@@ -216,8 +213,8 @@
 Summary: Header files and libraries for C++ development
 Group: Development/Libraries
 Requires: libstdc++ = %{version}-%{release}, %{_prefix}/%{_lib}/libstdc++.so.6
-Obsoletes: libstdc++3-devel
-Obsoletes: libstdc++34-devel
+#Obsoletes: libstdc++3-devel
+#Obsoletes: libstdc++34-devel
 Autoreq: true
 
 %description -n libstdc++-devel
@@ -230,7 +227,7 @@
 Group: Development/Languages
 Requires: gcc = %{version}-%{release}
 Requires: libobjc = %{version}-%{release}
-Obsoletes: gcc3-objc
+#Obsoletes: gcc3-objc
 Autoreq: true
 
 %description objc
@@ -263,9 +260,9 @@
 Requires: libgfortran = %{version}-%{release}
 BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1
 Prereq: /sbin/install-info
-Obsoletes: gcc3-g77
-Obsoletes: gcc-g77
-Obsoletes: gcc4-gfortran
+#Obsoletes: gcc3-g77
+#Obsoletes: gcc-g77
+#Obsoletes: gcc4-gfortran
 Autoreq: true
 
 %description gfortran
@@ -275,7 +272,7 @@
 %package -n libgfortran
 Summary: Fortran 95 runtime
 Group: System Environment/Libraries
-Obsoletes: libf2c
+#Obsoletes: libf2c
 Autoreq: true
 
 %description -n libgfortran
@@ -320,10 +317,10 @@
 Requires: libgcj = %{version}-%{release}
 Requires: libgcj-devel = %{version}-%{release}
 Requires: /usr/share/java/eclipse-ecj.jar
-Obsoletes: gcc3-java
-Obsoletes: gcc34-java
-Obsoletes: gcc35-java
-Obsoletes: gcc4-java
+#Obsoletes: gcc3-java
+#Obsoletes: gcc34-java
+#Obsoletes: gcc35-java
+#Obsoletes: gcc4-java
 Prereq: /sbin/install-info
 Autoreq: true
 
@@ -348,10 +345,10 @@
 BuildRequires: libXtst-devel
 BuildRequires: libXt-devel
 %endif
-Obsoletes: gcc-libgcj
-Obsoletes: libgcj3
-Obsoletes: libgcj34
-Obsoletes: libgcj4
+#Obsoletes: gcc-libgcj
+#Obsoletes: libgcj3
+#Obsoletes: libgcj34
+#Obsoletes: libgcj4
 Autoreq: true
 
 %description -n libgcj
@@ -364,9 +361,9 @@
 Requires: libgcj = %{version}-%{release}, %{_prefix}/%{_lib}/libgcj.so.9
 Requires: zlib-devel, %{_prefix}/%{_lib}/libz.so
 Requires: /bin/awk
-Obsoletes: libgcj3-devel
-Obsoletes: libgcj34-devel
-Obsoletes: libgcj4-devel
+#Obsoletes: libgcj3-devel
+#Obsoletes: libgcj34-devel
+#Obsoletes: libgcj4-devel
 Autoreq: false
 Autoprov: false
 
@@ -378,7 +375,7 @@
 Summary: Java library sources from GCC4 preview
 Group: System Environment/Libraries
 Requires: libgcj = %{version}-%{release}
-Obsoletes: libgcj4-src
+#Obsoletes: libgcj4-src
 Autoreq: true
 
 %description -n libgcj-src
@@ -389,7 +386,7 @@
 Group: Development/Languages
 Prereq: /sbin/install-info
 %ifarch ia64
-Obsoletes: gnupro
+#Obsoletes: gnupro
 %endif
 Autoreq: true
 
@@ -419,7 +416,7 @@
 Summary: Ada 95 support for GCC
 Group: Development/Languages
 Requires: gcc = %{version}-%{release}, libgnat = %{version}-%{release}
-Obsoletes: gnat-devel, gcc3-gnat
+#Obsoletes: gnat-devel, gcc3-gnat
 Prereq: /sbin/install-info
 Autoreq: true
 
@@ -430,7 +427,7 @@
 %package -n libgnat
 Summary: GNU Ada 95 runtime shared libraries
 Group: System Environment/Libraries
-Obsoletes: gnat libgnat3
+#Obsoletes: gnat libgnat3
 Autoreq: true
 
 %description -n libgnat
@@ -455,18 +452,8 @@
 %patch14 -p0 -b .rh251682~
 %patch15 -p0 -b .sparc-config-detection~
 %patch16 -p0 -b .libgomp-omp_h-multilib~
-%patch17 -p0 -b .fortran-debug1~
-%patch18 -p0 -b .fortran-debug2~
-%patch19 -p0 -b .fortran-debug3~
-%patch20 -p0 -b .fortran-debug4~
-%patch21 -p0 -b .fortran-debug5~
-%patch22 -p0 -b .fortran-debug6~
-%patch23 -p0 -b .fortran-debug7~
-%patch24 -p0 -b .fortran-debug8~
-%patch25 -p0 -b .fortran-debug9~
-%patch26 -p0 -b .fortran-debug10~
-%patch27 -p0 -b .fortran-debug11~
-%patch28 -p0 -b .pr37248~
+%patch17 -p0 -b .x86_64-va_start~
+%patch18 -p0 -b .pr37189~
 
 tar xzf %{SOURCE4}
 
@@ -489,6 +476,38 @@
 
 ./contrib/gcc_update --touch
 
+# To make rpmlint happy (argh), fix up names in ChangeLog entries to valid UTF-8
+LC_ALL=C sed -i \
+  -e 's/D\(o\|\xf6\)nmez/D\xc3\xb6nmez/' \
+  -e 's/\(Av\|\x81\xc1v\|\xc1v\|\xef\xbf\xbdv\?\|\x81\xc3\x81v\|\xc3v\)ila/\xc3\x81vila/' \
+  -e 's/Esp\(in\|\x81\xedn\|\xedn\|\xef\xbf\xbdn\?\|\xef\xbf\xbd\xadn\|\x81\xc3\xadn\)dola/Esp\xc3\xadndola/' \
+  -e 's/Schl\(u\|\xef\xbf\xbd\|\xfcu\?\|\x81\xfc\|\x81\xc3\xbc\|\xc3\xaf\xc2\xbf\xc2\xbd\|\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc2\xbc\)ter/Schl\xc3\xbcter/' \
+  -e 's/Humi\(e\|\xe8\)res/Humi\xc3\xa8res/' \
+  -e 's/L\(ow\|\xc3\xaf\xc2\xbf\xc2\xbd\|oew\|\xf6w\)is/L\xc3\xb6wis/' \
+  -e 's/G\xfctlein/G\xc3\xbctlein/' \
+  -e 's/G\xe1[b]or/G\xc3\xa1bor/' \
+  -e 's/L\xf3ki/L\xc3\xb3ki/' \
+  -e 's/Fautr\xc3 /Fautr\xc3\xa9 /' \
+  -e 's/S\xe9[b]astian/S\xc3\xa9bastian/' \
+  -e 's/Th\xef\xbf\xbd[d]ore/Th\xc3\xa9odore/' \
+  -e 's/Cors\xc3\xc2\xa9pius/Cors\xc3\xa9pius/' \
+  -e 's/K\xfchl/K\xc3\xbchl/' \
+  -e 's/R\xf6nnerup/R\xc3\xb6nnerup/' \
+  -e 's/L\xf8vset/L\xc3\xb8vset/' \
+  -e 's/Ph\x81\xfb\x81\xf4ng-Th\x81\xe5o/Ph\xc3\xbb\xc3\xb4ng-Th\xc3\xa5o/' \
+  -e 's/V\x81\xf5/V\xc3\xb5/' \
+  -e 's/J\xf6nsson/J\xc3\xb6nsson/' \
+  -e 's/V\xef\xbf\xbdis\xef\xbf\xbdnen/V\xc3\xa4is\xc3\xa4nen/' \
+  -e 's/J\xef\xbf\xbdrg/J\xc3\xb6rg/' \
+  -e 's/M\xef\xbf\xbdsli/M\xc3\xb6sli/' \
+  -e 's/R\xe4ty/R\xc3\xa4ty/' \
+  -e 's/2003\xc2\xad-/2003-/' \
+  -e 's/\xc2\xa0/ /g' \
+  -e 's/ \xa0/  /g' \
+  -e 's/\xa0 //' \
+  `find . -name \*ChangeLog\*`
+LC_ALL=C sed -i -e 's/\xa0/ /' gcc/doc/options.texi
+
 %ifarch ppc
 if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
   mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
@@ -523,12 +542,6 @@
 mkdir obj-%{gcc_target_platform}
 cd obj-%{gcc_target_platform}
 
-if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then
-  mkdir locale
-  localedef -f ISO-8859-1 -i de_DE locale/de_DE
-  export LOCPATH=`pwd`/locale:/usr/lib/locale
-fi
-
 %if %{build_java}
 %if !%{bootstrap_java}
 # If we don't have gjavah in $PATH, try to build it with the old gij
@@ -738,10 +751,6 @@
 
 cd obj-%{gcc_target_platform}
 
-if [ ! -f /usr/lib/locale/de_DE/LC_CTYPE ]; then
-  export LOCPATH=`pwd`/locale:/usr/lib/locale
-fi
-
 %if %{build_java}
 export PATH=`pwd`/../fastjar-%{fastjar_ver}/obj-%{gcc_target_platform}${PATH:+:$PATH}
 %if !%{bootstrap_java}
@@ -1073,6 +1082,7 @@
 rm -f $FULLEPATH/install-tools/{mkheaders,fixincl}
 rm -f $RPM_BUILD_ROOT%{_prefix}/lib/{32,64}/libiberty.a
 rm -f $RPM_BUILD_ROOT%{_prefix}/%{_lib}/libssp*
+rm -f $RPM_BUILD_ROOT%{_prefix}/bin/gnative2ascii
 
 %ifarch %{multilib_64_archs}
 # Remove libraries for the other arch on multilib arches
@@ -1692,6 +1702,18 @@
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Fri Sep  5 2008 Jakub Jelinek <jakub at redhat.com> 4.3.2-2
+- update from gcc-4_3-branch
+  - PRs c++/37348, c/37261, fortran/36371, fortran/37193, middle-end/36449,
+	target/36332, target/37168
+- make ChangeLog files and gcc.info valid UTF-8, remove gnative2ascii from
+  gcc-gnat, comment out most of the Obsoletes (#225778)
+- on x86_64 decrease frame size in varargs functions that don't need saving
+  gpr or fpr registers
+- fix ICE on implicitly determined firstprivate where copy ctor or dtor
+  needs synthetization (PR c++/37189)
+- document how to recrease the tarball
+
 * Fri Aug 29 2008 Jakub Jelinek <jakub at redhat.com> 4.3.2-1
 - update from gcc-4_3-branch
   - 4.3.2 release


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/sources,v
retrieving revision 1.245
retrieving revision 1.246
diff -u -r1.245 -r1.246
--- sources	29 Aug 2008 11:16:06 -0000	1.245
+++ sources	5 Sep 2008 08:43:54 -0000	1.246
@@ -1,2 +1,2 @@
-69f70d92142466361146326f840a6185  gcc-4.3.2-20080829.tar.bz2
+373bfd18d804b93123d89b793967fb3b  gcc-4.3.2-20080905.tar.bz2
 92a70f9e56223b653bce0f58f90cf950  fastjar-0.95.tar.gz


--- gcc43-fortran-debug1.patch DELETED ---


--- gcc43-fortran-debug10.patch DELETED ---


--- gcc43-fortran-debug11.patch DELETED ---


--- gcc43-fortran-debug2.patch DELETED ---


--- gcc43-fortran-debug3.patch DELETED ---


--- gcc43-fortran-debug4.patch DELETED ---


--- gcc43-fortran-debug5.patch DELETED ---


--- gcc43-fortran-debug6.patch DELETED ---


--- gcc43-fortran-debug7.patch DELETED ---


--- gcc43-fortran-debug8.patch DELETED ---


--- gcc43-fortran-debug9.patch DELETED ---


--- gcc43-pr37248.patch DELETED ---




More information about the fedora-extras-commits mailing list