patches/gcc/4.6.1/000-gcc-bug-54369.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Oct 16 20:57:44 2012 +0200 (2012-10-16)
changeset 3079 37831a33e07e
child 3104 7da91f9ba328
permissions -rw-r--r--
kernel/linux: fix using custom location

Currently, extract and patch are skipped as thus:
- using a custom directory of pre-installed headers
- a correctly named directory already exists

Otherwise, extract and patch are done.

The current second condition is wrong, because it allows the following
sequence to happen:
- a non-custom kernel is used
- a previous build only partially extracted the non-custom sources
- that p[revious build broke during extraction (eg. incomplete tarball...)
- a subsequent build will find a properly named directory, and will
thus skip extract and patch, which is wrong

Fix that by following the conditions in this table:

Type | Extract | Patch
----------------------+---------+-------
Pre-installed headers | N | N
custom directory | N | N
custom tarball | Y | N
mainstream tarball | Y | Y

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: David Holsgrove <david.holsgrove@xilinx.com>
f@3049
     1
Author: ebotcazou
f@3049
     2
Date: Sun Sep  2 10:37:49 2012
f@3049
     3
New Revision: 190860
f@3049
     4
f@3049
     5
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190860
f@3049
     6
Log:
f@3049
     7
    PR rtl-optimization/54369
f@3049
     8
    * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
f@3049
     9
    calling dbr_schedule.
f@3049
    10
    * config/sparc/sparc.c (sparc_reorg): Likewise.
f@3049
    11
f@3049
    12
Modified:
f@3049
    13
    branches/gcc-4_6-branch/gcc/ChangeLog
f@3049
    14
    branches/gcc-4_6-branch/gcc/config/mips/mips.c
f@3049
    15
    branches/gcc-4_6-branch/gcc/config/sparc/sparc.c
f@3049
    16
---
f@3049
    17
--- gcc-4_6-branch/gcc/config/mips/mips.c	2012/09/02 10:36:54	190859
f@3049
    18
+++ gcc-4_6-branch/gcc/config/mips/mips.c	2012/09/02 10:37:49	190860
f@3049
    19
@@ -15083,7 +15083,10 @@
f@3049
    20
     }
f@3049
    21
 
f@3049
    22
   if (optimize > 0 && flag_delayed_branch)
f@3049
    23
-    dbr_schedule (get_insns ());
f@3049
    24
+    {
f@3049
    25
+      cleanup_barriers ();
f@3049
    26
+      dbr_schedule (get_insns ());
f@3049
    27
+    }
f@3049
    28
   mips_reorg_process_insns ();
f@3049
    29
   if (!TARGET_MIPS16
f@3049
    30
       && TARGET_EXPLICIT_RELOCS
f@3049
    31
--- gcc-4_6-branch/gcc/config/sparc/sparc.c	2012/09/02 10:36:54	190859
f@3049
    32
+++ gcc-4_6-branch/gcc/config/sparc/sparc.c	2012/09/02 10:37:49	190860
f@3049
    33
@@ -9456,7 +9456,10 @@
f@3049
    34
   /* We need to have the (essentially) final form of the insn stream in order
f@3049
    35
      to properly detect the various hazards.  Run delay slot scheduling.  */
f@3049
    36
   if (optimize > 0 && flag_delayed_branch)
f@3049
    37
-    dbr_schedule (get_insns ());
f@3049
    38
+    {
f@3049
    39
+      cleanup_barriers ();
f@3049
    40
+      dbr_schedule (get_insns ());
f@3049
    41
+    }
f@3049
    42
 
f@3049
    43
   /* Now look for specific patterns in the insn stream.  */
f@3049
    44
   for (insn = get_insns (); insn; insn = next)
f@3049
    45