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