patches/gcc/4.3.3/180-superh-default-multilib.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>
yann@1162
     1
Original patch from: ../4.3.2/180-superh-default-multilib.patch
yann@1162
     2
yann@1162
     3
-= BEGIN original header =-
yann@1162
     4
Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/53_all_gcc4-superh-default-multilib.patch
yann@1162
     5
The gcc-3.x toolchains would contain all the targets by default.  With gcc-4,
yann@1162
     6
you have to actually list out the multilibs you want or you will end up with
yann@1162
     7
just one when using targets like 'sh4-linux-gnu'.
yann@1162
     8
yann@1162
     9
The resulting toolchain can't even build a kernel as the kernel needs to build
yann@1162
    10
with the nofpu flag to be sure that no fpu ops are generated.
yann@1162
    11
yann@1162
    12
Here we restore the gcc-3.x behavior; the additional overhead of building all
yann@1162
    13
of these multilibs by default is negligible.
yann@1162
    14
yann@1162
    15
http://bugs.gentoo.org/140205
yann@1162
    16
yann@1162
    17
-= END original header =-
yann@1162
    18
yann@1162
    19
diff -durN gcc-4.3.3.orig/gcc/config.gcc gcc-4.3.3/gcc/config.gcc
yann@1162
    20
--- gcc-4.3.3.orig/gcc/config.gcc	2008-11-20 18:09:53.000000000 +0100
yann@1162
    21
+++ gcc-4.3.3/gcc/config.gcc	2009-01-27 22:19:32.000000000 +0100
yann@1162
    22
@@ -2275,7 +2275,7 @@
yann@1162
    23
 	if test x${sh_multilibs} = x ; then
yann@1162
    24
 		case ${target} in
yann@1162
    25
 		sh64-superh-linux* | \
yann@1162
    26
-		sh[1234]*)	sh_multilibs=${sh_cpu_target} ;;
yann@1162
    27
+		sh[1234]*)	sh_multilibs=`cd ${srcdir}/config/sh ; echo t-mlib-sh[1-4]* | sed 's:t-mlib-sh:,m:g;s: ::g'` ;;
yann@1162
    28
 		sh64* | sh5*)	sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
yann@1162
    29
 		sh-superh-*)	sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
yann@1162
    30
 		sh*-*-linux*)	sh_multilibs=m1,m3e,m4 ;;