summaryrefslogtreecommitdiff
path: root/patches/gcc/4.3.0/325-superh-default-multilib.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/4.3.0/325-superh-default-multilib.patch')
-rw-r--r--patches/gcc/4.3.0/325-superh-default-multilib.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/patches/gcc/4.3.0/325-superh-default-multilib.patch b/patches/gcc/4.3.0/325-superh-default-multilib.patch
new file mode 100644
index 0000000..4898a36
--- /dev/null
+++ b/patches/gcc/4.3.0/325-superh-default-multilib.patch
@@ -0,0 +1,25 @@
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.0/gentoo/53_all_gcc4-superh-default-multilib.patch
+The gcc-3.x toolchains would contain all the targets by default. With gcc-4,
+you have to actually list out the multilibs you want or you will end up with
+just one when using targets like 'sh4-linux-gnu'.
+
+The resulting toolchain can't even build a kernel as the kernel needs to build
+with the nofpu flag to be sure that no fpu ops are generated.
+
+Here we restore the gcc-3.x behavior; the additional overhead of building all
+of these multilibs by default is negligible.
+
+http://bugs.gentoo.org/140205
+
+diff -durN gcc-4.3.0.orig/gcc/config.gcc gcc-4.3.0/gcc/config.gcc
+--- gcc-4.3.0.orig/gcc/config.gcc 2008-01-29 17:28:10.000000000 +0100
++++ gcc-4.3.0/gcc/config.gcc 2008-06-10 14:44:47.000000000 +0200
+@@ -2271,7 +2271,7 @@
+ if test x${sh_multilibs} = x ; then
+ case ${target} in
+ sh64-superh-linux* | \
+- sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
++ sh[1234]*) sh_multilibs=`cd ${srcdir}/config/sh ; echo t-mlib-sh[1-4]* | sed 's:t-mlib-sh:,m:g;s: ::g'` ;;
+ sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
+ sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
+ sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;;