rpms/gcc/devel gcc41-pr28690.patch, NONE, 1.1 gcc41-pr32468-2.patch, NONE, 1.1 gcc41-pr32468.patch, NONE, 1.1 gcc41-rh245424.patch, NONE, 1.1 gcc41.spec, 1.161, 1.162 gcc41-amdfam10.patch, 1.2, NONE gcc41-multi32-hack.patch, 1.1, NONE gcc41-objc-rh185398.patch, 1.2, NONE gcc41-pr24036-revert.patch, 1.1, NONE gcc41-pr27567.patch, 1.1, NONE gcc41-pr28709.patch, 1.1, NONE gcc41-pr29059.patch, 1.1, NONE gcc41-pr29272.patch, 1.2, NONE gcc41-pr29299.patch, 1.1, NONE gcc41-pr31187.patch, 1.2, NONE gcc41-pr31809.patch, 1.1, NONE gcc41-pr32285.patch, 1.1, NONE gcc41-pr32353.patch, 1.1, NONE gcc41-rh234515.patch, 1.2, NONE gcc41-strncat-chk.patch, 1.2, NONE gcc41-tests.patch, 1.4, NONE

Jakub Jelinek (jakub) fedora-extras-commits at redhat.com
Tue Jun 26 13:04:59 UTC 2007


Author: jakub

Update of /cvs/pkgs/rpms/gcc/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv27647

Modified Files:
	gcc41.spec 
Added Files:
	gcc41-pr28690.patch gcc41-pr32468-2.patch gcc41-pr32468.patch 
	gcc41-rh245424.patch 
Removed Files:
	gcc41-amdfam10.patch gcc41-multi32-hack.patch 
	gcc41-objc-rh185398.patch gcc41-pr24036-revert.patch 
	gcc41-pr27567.patch gcc41-pr28709.patch gcc41-pr29059.patch 
	gcc41-pr29272.patch gcc41-pr29299.patch gcc41-pr31187.patch 
	gcc41-pr31809.patch gcc41-pr32285.patch gcc41-pr32353.patch 
	gcc41-rh234515.patch gcc41-strncat-chk.patch gcc41-tests.patch 
Log Message:
4.1.2-14


gcc41-pr28690.patch:

--- NEW FILE gcc41-pr28690.patch ---
2007-06-26  Jakub Jelinek  <jakub at redhat.com>

	* defaults.h (TARGET_INDEX_OPERAND_FIRST): Define.
	* config/rs6000/rs6000.h (TARGET_INDEX_OPERAND_FIRST): Define.
	* optabs.c (emit_cmp_and_jump_insns): Don't call swap_operand
	twice.
	* rtlanal.c (commutative_operand_precedence): Only prefer
	REG_POINTER and MEM_POINTER operands over REG and MEM operands
	if TARGET_INDEX_OPERAND_FIRST.
	(swap_commutative_operands_p): Only sort on REGNO if
	TARGET_INDEX_OPERAND_FIRST.
	* tree-ssa-address.c (gen_addr_rtx): Only use simplify_gen_binary
	instead of gen_rtx_PLUS if TARGET_INDEX_OPERAND_FIRST.

2007-06-20  Peter Bergner  <bergner at vnet.ibm.com>

	PR middle-end/28690
	* optabs.c (emit_cmp_and_jump_insns): Allow EQ compares.
	* rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
	and MEM_POINTER operands over REG and MEM operands.
	(swap_commutative_operands_p): In case of a tie, sort on REGNO.
	* tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
	instead of gen_rtx_PLUS.

--- gcc/defaults.h.jj	2007-02-20 22:39:12.000000000 +0100
+++ gcc/defaults.h	2007-06-26 00:32:16.000000000 +0200
@@ -785,6 +785,10 @@ Software Foundation, 51 Franklin Street,
 #define TARGET_C99_FUNCTIONS 0
 #endif
 
+#ifndef TARGET_INDEX_OPERAND_FIRST
+#define TARGET_INDEX_OPERAND_FIRST 0
+#endif
+
 /* Indicate that CLZ and CTZ are undefined at zero.  */
 #ifndef CLZ_DEFINED_VALUE_AT_ZERO
 #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE)  0
--- gcc/config/rs6000/rs6000.h.jj	2007-02-20 22:39:00.000000000 +0100
+++ gcc/config/rs6000/rs6000.h	2007-06-26 00:33:32.000000000 +0200
@@ -57,6 +57,8 @@
 #define PPC405_ERRATUM77 0
 #endif
 
+#define TARGET_INDEX_OPERAND_FIRST (rs6000_cpu == PROCESSOR_POWER6)
+
 /* Common ASM definitions used by ASM_SPEC among the various targets
    for handling -mcpu=xxx switches.  */
 #define ASM_CPU_SPEC \
--- gcc/optabs.c.jj	2007-02-20 22:39:12.000000000 +0100
+++ gcc/optabs.c	2007-06-26 00:30:27.000000000 +0200
@@ -3673,12 +3673,16 @@ emit_cmp_and_jump_insns (rtx x, rtx y, e
   /* Swap operands and condition to ensure canonical RTL.  */
   if (swap_commutative_operands_p (x, y))
     {
-      /* If we're not emitting a branch, this means some caller
-         is out of sync.  */
-      gcc_assert (label);
+      enum rtx_code swapped_comparison = swap_condition (comparison);
+
+      /* If we're not emitting a branch, callers are required to pass
+	 operands in an order conforming to canonical RTL.  We relax this
+	 for commutative comparsions so callers using EQ don't need to do
+	 swapping by hand.  */
+      gcc_assert (label || swapped_comparison == comparison);
 
       op0 = y, op1 = x;
-      comparison = swap_condition (comparison);
+      comparison = swapped_comparison;
     }
 
 #ifdef HAVE_cc0
--- gcc/rtlanal.c.jj	2007-02-20 22:39:12.000000000 +0100
+++ gcc/rtlanal.c	2007-06-26 00:28:56.000000000 +0200
@@ -2890,9 +2890,9 @@ commutative_operand_precedence (rtx op)
   
   /* Constants always come the second operand.  Prefer "nice" constants.  */
   if (code == CONST_INT)
-    return -7;
+    return -10;
   if (code == CONST_DOUBLE)
-    return -6;
+    return -9;
   op = avoid_constant_pool_reference (op);
   code = GET_CODE (op);
 
@@ -2900,26 +2900,31 @@ commutative_operand_precedence (rtx op)
     {
     case RTX_CONST_OBJ:
       if (code == CONST_INT)
-        return -5;
+	return -8;
       if (code == CONST_DOUBLE)
-        return -4;
-      return -3;
+	return -7;
+      return -6;
 
     case RTX_EXTRA:
       /* SUBREGs of objects should come second.  */
       if (code == SUBREG && OBJECT_P (SUBREG_REG (op)))
-        return -2;
+	return -5;
 
       if (!CONSTANT_P (op))
         return 0;
       else
 	/* As for RTX_CONST_OBJ.  */
-	return -3;
+	return -6;
 
     case RTX_OBJ:
       /* Complex expressions should be the first, so decrease priority
          of objects.  */
-      return -1;
+      if (!TARGET_INDEX_OPERAND_FIRST)
+	return -1;
+      if (REG_P (op))
+	return (REG_POINTER (op)) ? -1 : -3;
+      else
+	return (MEM_P (op) && MEM_POINTER (op)) ? -2 : -4;
 
     case RTX_COMM_ARITH:
       /* Prefer operands that are themselves commutative to be first.
@@ -2949,8 +2954,16 @@ commutative_operand_precedence (rtx op)
 int
 swap_commutative_operands_p (rtx x, rtx y)
 {
-  return (commutative_operand_precedence (x)
-	  < commutative_operand_precedence (y));
+  int result = (commutative_operand_precedence (x)
+		- commutative_operand_precedence (y));
+  if (!TARGET_INDEX_OPERAND_FIRST || result)
+    return result < 0;
+
+  /* Group together equal REGs to do more simplification.  */
+  if (REG_P (x) && REG_P (y))
+    return REGNO (x) > REGNO (y);
+
+  return 0;
 }
 
 /* Return 1 if X is an autoincrement side effect and the register is
--- gcc/tree-ssa-address.c.jj	2007-02-20 22:39:12.000000000 +0100
+++ gcc/tree-ssa-address.c	2007-06-26 00:29:49.000000000 +0200
@@ -124,7 +124,9 @@ gen_addr_rtx (rtx symbol, rtx base, rtx 
   if (base)
     {
       if (*addr)
-	*addr = gen_rtx_PLUS (Pmode, *addr, base);
+	*addr = (TARGET_INDEX_OPERAND_FIRST
+		 ? simplify_gen_binary (PLUS, Pmode, base, *addr)
+		 : gen_rtx_PLUS (Pmode, *addr, base));
       else
 	*addr = base;
     }

gcc41-pr32468-2.patch:

--- NEW FILE gcc41-pr32468-2.patch ---
2007-06-25  Jakub Jelinek  <jakub at redhat.com>

	PR libgomp/32468
	* omp-low.c (check_combined_parallel): New function.
	(lower_omp_parallel): Call it via walk_stmts, set
	OMP_PARALLEL_COMBINED if appropriate.
	(determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
	isn't the only statement in WS_ENTRY_BB or OMP_RETURN
	the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
	don't consider it as combined parallel.

--- gcc/omp-low.c.jj	2007-06-21 13:38:10.000000000 +0200
+++ gcc/omp-low.c	2007-06-25 19:21:35.000000000 +0200
@@ -385,10 +385,13 @@ determine_parallel_type (struct omp_regi
 
   if (single_succ (par_entry_bb) == ws_entry_bb
       && single_succ (ws_exit_bb) == par_exit_bb
-      && workshare_safe_to_combine_p (par_entry_bb, ws_entry_bb))
+      && workshare_safe_to_combine_p (par_entry_bb, ws_entry_bb)
+      && (OMP_PARALLEL_COMBINED (last_stmt (par_entry_bb))
+	  || (last_and_only_stmt (ws_entry_bb)
+	      && last_and_only_stmt (par_exit_bb))))
     {
-      tree ws_stmt = last_stmt (region->inner->entry);
+      tree ws_stmt = last_stmt (ws_entry_bb);
 
       if (region->inner->type == OMP_FOR)
 	{
 	  /* If this is a combined parallel loop, we need to determine
@@ -4060,6 +4065,28 @@ lower_omp_for (tree *stmt_p, omp_context
   *stmt_p = new_stmt;
 }
 
+/* Callback for walk_stmts.  Check if *TP only contains OMP_FOR
+   or OMP_PARALLEL.  */
+
+static tree
+check_combined_parallel (tree *tp, int *walk_subtrees, void *data)
+{
+  struct walk_stmt_info *wi = data;
+  int *info = wi->info;
+
+  *walk_subtrees = 0;
+  switch (TREE_CODE (*tp))
+    {
+    case OMP_FOR:
+    case OMP_SECTIONS:
+      *info = *info == 0 ? 1 : -1;
+      break;
+    default:
+      *info = -1;
+      break;
+    }
+  return NULL;
+}
 
 /* Lower the OpenMP parallel directive in *STMT_P.  CTX holds context
    information for the directive.  */
@@ -4077,6 +4104,19 @@ lower_omp_parallel (tree *stmt_p, omp_co
   par_bind = OMP_PARALLEL_BODY (stmt);
   par_body = BIND_EXPR_BODY (par_bind);
   child_fn = ctx->cb.dst_fn;
+  if (!OMP_PARALLEL_COMBINED (stmt))
+    {
+      struct walk_stmt_info wi;
+      int ws_num = 0;
+
+      memset (&wi, 0, sizeof (wi));
+      wi.callback = check_combined_parallel;
+      wi.info = &ws_num;
+      wi.val_only = true;
+      walk_stmts (&wi, &par_bind);
+      if (ws_num == 1)
+	OMP_PARALLEL_COMBINED (stmt) = 1;
+    }
 
   push_gimplify_context ();
 
--- gcc/testsuite/gcc.dg/gomp/pr32468-1.c.jj	2007-06-25 21:04:31.000000000 +0200
+++ gcc/testsuite/gcc.dg/gomp/pr32468-1.c	2007-06-25 21:07:35.000000000 +0200
@@ -0,0 +1,100 @@
+/* PR libgomp/32468 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fopenmp -fdump-tree-ompexp" } */
+
+extern int printf (const char *, ...);
+extern int omp_get_thread_num (void), omp_get_num_threads (void);
+extern int bar (void);
+extern int baz (const char *, ...);
+
+void
+f1 (void)
+{
+#pragma omp parallel
+  {
+    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+    #pragma omp sections
+      {
+	#pragma omp section
+	printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+	#pragma omp section
+	printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+      }
+  }
+}
+
+void
+f2 (void)
+{
+#pragma omp parallel
+  {
+    #pragma omp sections
+      {
+	#pragma omp section
+	printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+	#pragma omp section
+	printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+      }
+    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+  }
+}
+
+void
+f3 (void)
+{
+#pragma omp parallel
+  {
+    int bb = bar ();
+    #pragma omp sections
+      {
+	#pragma omp section
+	printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+	#pragma omp section
+	printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+      }
+  }
+}
+
+void
+f4 (void)
+{
+  int i;
+#pragma omp parallel
+  {
+    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+    #pragma omp for schedule (dynamic, 15)
+    for (i = 0; i < 10000; i++)
+      printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+  }
+}
+
+void
+f5 (void)
+{
+  int i;
+#pragma omp parallel
+  {
+    #pragma omp for schedule (dynamic, 15)
+    for (i = 0; i < 10000; i++)
+      printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+    baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+  }
+}
+
+void
+f6 (void)
+{
+  int i;
+#pragma omp parallel
+  {
+    int bb = bar ();
+    #pragma omp for schedule (runtime)
+    for (i = 0; i < 10000; i++)
+      printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ());
+  }
+}
+
+/* There should not be a GOMP_parallel_{loop,sections}* call.  */
+/* { dg-final { scan-tree-dump-times "GOMP_parallel_loop" 0 "ompexp"} } */
+/* { dg-final { scan-tree-dump-times "GOMP_parallel_sections" 0 "ompexp"} } */
+/* { dg-final { cleanup-tree-dump "ompexp" } } */

	Jakub

gcc41-pr32468.patch:

--- NEW FILE gcc41-pr32468.patch ---
2007-06-25  Jakub Jelinek  <jakub at redhat.com>

	PR libgomp/32468
	* sections.c (GOMP_parallel_sections_start): Only decrease
	number of threads to COUNT if dyn_var is true.

	* libgomp.c/pr32468.c: New test.

--- libgomp/sections.c.jj	2006-10-05 00:24:40.000000000 +0200
+++ libgomp/sections.c	2007-06-25 22:03:17.000000000 +0200
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2007 Free Software Foundation, Inc.
    Contributed by Richard Henderson <rth at redhat.com>.
 
    This file is part of the GNU OpenMP Library (libgomp).
@@ -106,7 +106,7 @@ GOMP_parallel_sections_start (void (*fn)
   struct gomp_work_share *ws;
 
   num_threads = gomp_resolve_num_threads (num_threads);
-  if (num_threads > count)
+  if (gomp_dyn_var && num_threads > count)
     num_threads = count;
 
   ws = gomp_new_work_share (false, num_threads);
--- libgomp/testsuite/libgomp.c/pr32468.c.jj	2007-06-25 21:51:07.000000000 +0200
+++ libgomp/testsuite/libgomp.c/pr32468.c	2007-06-25 21:55:44.000000000 +0200
@@ -0,0 +1,26 @@
+/* PR libgomp/32468 */
+/* { dg-do run } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+  int res[2] = { -1, -1 };
+  omp_set_dynamic (0);
+  omp_set_num_threads (4);
+#pragma omp parallel
+  {
+    #pragma omp sections
+      {
+	#pragma omp section
+	res[0] = omp_get_num_threads () != 4;
+	#pragma omp section
+	res[1] = omp_get_num_threads () != 4;
+      }
+  }
+  if (res[0] != 0 || res[1] != 0)
+    abort ();
+  return 0;
+}

gcc41-rh245424.patch:

--- NEW FILE gcc41-rh245424.patch ---
2007-06-25  Jakub Jelinek  <jakub at redhat.com>

	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
	decl is non-external for AIX ABI.

2007-06-25  David Edelsohn  <edelsohn at gnu.org>

	* config/rs6000/predicates.md (current_file_function_operand):
	Ensure the symbol is non-external for AIX ABI.

--- gcc/config/rs6000/rs6000.c.jj	2007-06-25 22:22:41.000000000 +0200
+++ gcc/config/rs6000/rs6000.c	2007-06-25 23:11:20.000000000 +0200
@@ -13938,7 +13938,8 @@ rs6000_function_ok_for_sibcall (tree dec
 	    }
 	}
       if (DEFAULT_ABI == ABI_DARWIN
-	  || (*targetm.binds_local_p) (decl))
+	  || ((*targetm.binds_local_p) (decl)
+	      && (DEFAULT_ABI != ABI_AIX || !DECL_EXTERNAL (decl))))
 	{
 	  tree attr_list = TYPE_ATTRIBUTES (TREE_TYPE (decl));
 
--- gcc/config/rs6000/predicates.md.jj	2007-06-25 22:22:41.000000000 +0200
+++ gcc/config/rs6000/predicates.md	2007-06-25 22:57:19.000000000 +0200
@@ -696,7 +696,9 @@
 (define_predicate "current_file_function_operand"
   (and (match_code "symbol_ref")
        (match_test "(DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op))
-		    && (SYMBOL_REF_LOCAL_P (op)
+		    && ((SYMBOL_REF_LOCAL_P (op)
+			 && (DEFAULT_ABI != ABI_AIX
+			     || !SYMBOL_REF_EXTERNAL_P (op)))
 		        || (op == XEXP (DECL_RTL (current_function_decl),
 						  0)))")))
 


Index: gcc41.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/devel/gcc41.spec,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -r1.161 -r1.162
--- gcc41.spec	15 Jun 2007 17:42:21 -0000	1.161
+++ gcc41.spec	26 Jun 2007 13:04:20 -0000	1.162
@@ -1,6 +1,6 @@
-%define DATE 20070615
+%define DATE 20070626
 %define gcc_version 4.1.2
-%define gcc_release 13
+%define gcc_release 14
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %define include_gappletviewer 1
@@ -118,33 +118,23 @@
 Patch7: gcc41-ada-tweaks.patch
 Patch8: gcc41-java-slow_pthread_self.patch
 Patch9: gcc41-ppc32-retaddr.patch
-Patch10: gcc41-amdfam10.patch
-Patch11: gcc41-dsohandle.patch
-Patch12: gcc41-rh184446.patch
-Patch13: gcc41-pr20297-test.patch
-Patch14: gcc41-objc-rh185398.patch
-Patch15: gcc41-tests.patch
-Patch16: gcc41-hash-style-gnu.patch
-Patch17: gcc41-java-libdotdotlib.patch
-Patch18: gcc41-pr28709.patch
-Patch19: gcc41-pr28755.patch
-Patch20: gcc41-pr27898.patch
-Patch21: gcc41-pr27567.patch
-Patch22: gcc41-pr29272.patch
-Patch23: gcc41-pr29059.patch
-Patch24: gcc41-strncat-chk.patch
-Patch25: gcc41-pr29299.patch
-Patch26: gcc41-java-bogus-debugline.patch
-Patch27: gcc41-libjava-visibility.patch
-Patch28: gcc41-pr31187.patch
-Patch29: gcc41-pr31809.patch
-Patch30: gcc41-rh234515.patch
-Patch31: gcc41-pr32139.patch
-Patch32: gcc41-rh236895.patch
-Patch33: gcc41-pr32285.patch
-Patch34: gcc41-rh235008.patch
-Patch35: gcc41-pr31748.patch
-Patch36: gcc41-pr32353.patch
+Patch10: gcc41-dsohandle.patch
+Patch11: gcc41-rh184446.patch
+Patch12: gcc41-pr20297-test.patch
+Patch13: gcc41-hash-style-gnu.patch
+Patch14: gcc41-java-libdotdotlib.patch
+Patch15: gcc41-pr28755.patch
+Patch16: gcc41-pr27898.patch
+Patch17: gcc41-java-bogus-debugline.patch
+Patch18: gcc41-libjava-visibility.patch
+Patch19: gcc41-pr32139.patch
+Patch20: gcc41-rh236895.patch
+Patch21: gcc41-rh235008.patch
+Patch22: gcc41-pr31748.patch
+Patch23: gcc41-pr28690.patch
+Patch24: gcc41-pr32468.patch
+Patch25: gcc41-pr32468-2.patch
+Patch26: gcc41-rh245424.patch
 
 %define _gnu %{nil}
 %ifarch sparc
@@ -433,33 +423,23 @@
 %patch7 -p0 -b .ada-tweaks~
 %patch8 -p0 -b .java-slow_pthread_self~
 %patch9 -p0 -b .ppc32-retaddr~
-%patch10 -p0 -b .amdfam10~
-%patch11 -p0 -b .dsohandle~
-%patch12 -p0 -b .rh184446~
-%patch13 -p0 -E -b .pr20297-test~
-%patch14 -p0 -b .objc-rh185398~
-%patch15 -p0 -b .tests~
-%patch16 -p0 -b .hash-style-gnu~
-%patch17 -p0 -b .java-libdotdotlib~
-%patch18 -p0 -b .pr28709~
-%patch19 -p0 -b .pr28755~
-%patch20 -p0 -b .pr27898~
-%patch21 -p0 -b .pr27567~
-%patch22 -p0 -b .pr29272~
-%patch23 -p0 -b .pr29059~
-%patch24 -p0 -b .strncat-chk~
-%patch25 -p0 -b .pr29299~
-%patch26 -p0 -b .java-bogus-debugline~
-%patch27 -p0 -b .libjava-visibility~
-%patch28 -p0 -b .pr31187~
-%patch29 -p0 -b .pr31809~
-%patch30 -p0 -b .rh234515~
-%patch31 -p0 -b .pr32139~
-%patch32 -p0 -b .rh236895~
-%patch33 -p0 -b .pr32285~
-%patch34 -p0 -b .rh235008~
-%patch35 -p0 -b .pr31748~
-%patch36 -p0 -b .pr32353~
+%patch10 -p0 -b .dsohandle~
+%patch11 -p0 -b .rh184446~
+%patch12 -p0 -E -b .pr20297-test~
+%patch13 -p0 -b .hash-style-gnu~
+%patch14 -p0 -b .java-libdotdotlib~
+%patch15 -p0 -b .pr28755~
+%patch16 -p0 -b .pr27898~
+%patch17 -p0 -b .java-bogus-debugline~
+%patch18 -p0 -b .libjava-visibility~
+%patch19 -p0 -b .pr32139~
+%patch20 -p0 -b .rh236895~
+%patch21 -p0 -b .rh235008~
+%patch22 -p0 -b .pr31748~
+%patch23 -p0 -b .pr28690~
+%patch24 -p0 -b .pr32468~
+%patch25 -p0 -b .pr32468-2~
+%patch26 -p0 -b .rh245424~
 
 sed -i -e 's/4\.1\.3/4.1.2/' gcc/BASE-VER gcc/version.c
 sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@@ -1583,6 +1563,20 @@
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Tue Jun 26 2007 Jakub Jelinek <jakub at redhat.com> 4.1.2-14
+- update from gcc-4_1-branch (-r125727:126008)
+  - PRs inline-asm/32109, rtl-optimization/28011, target/32389
+- gomp update from gcc-4_2-branch (-r125917:125918)
+  - PR middle-end/32362
+- on ppc{,64} when tuning for power6{,x}, try to put the base
+  register as first operand in instructions to improve
+  performance (Peter Bergner, #225425, PR middle-end/28690)
+- on ppc64 emit nop after a call and disallow sibling calls
+  if the target function is not defined in the same object file
+  (David Edelsohn, #245424)
+- gomp parallel sections fix and fix for checking whether combined
+  parallel can be used (PR libgomp/32468)
+
 * Fri Jun 15 2007 Jakub Jelinek <jakub at redhat.com> 4.1.2-13
 - update from gcc-4_1-branch (-r124365:125727)
   - PRs libfortran/31409, libfortran/31880, libfortran/31964,


--- gcc41-amdfam10.patch DELETED ---


--- gcc41-multi32-hack.patch DELETED ---


--- gcc41-objc-rh185398.patch DELETED ---


--- gcc41-pr24036-revert.patch DELETED ---


--- gcc41-pr27567.patch DELETED ---


--- gcc41-pr28709.patch DELETED ---


--- gcc41-pr29059.patch DELETED ---


--- gcc41-pr29272.patch DELETED ---


--- gcc41-pr29299.patch DELETED ---


--- gcc41-pr31187.patch DELETED ---


--- gcc41-pr31809.patch DELETED ---


--- gcc41-pr32285.patch DELETED ---


--- gcc41-pr32353.patch DELETED ---


--- gcc41-rh234515.patch DELETED ---


--- gcc41-strncat-chk.patch DELETED ---


--- gcc41-tests.patch DELETED ---




More information about the fedora-extras-commits mailing list