Add proper target support for newfangled sh targets.
authorPaul Mundt <lethal@linux-sh.org>
Mon, 2 May 2005 13:58:00 +0000 (13:58 -0000)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 2 May 2005 13:58:00 +0000 (13:58 -0000)
GCC folk in their infinite wisdom have added half-assed target support
for newer sh cores. The support is there, but of course we have no
way to actually enable the thing, so we do that with this patch.

Likewise, binutils has no idea about any of these new targets either (not
even a half-assed attempt, sadly), so we fix that up too.. now we're able
to actually build a real toolchain for sh2a_nofpu- and other more ineptly
named toolchains (and yes, there are more inept targets than that one,
really. Go look, I promise).

toolchain/binutils/2.16.90.0.2/100-uclibc-conf.patch
toolchain/gcc/4.0.0/100-uclibc-conf.patch

index ec38caa1258b3d690825e260f33736d316bba0d7..30872c5f21676c179a1ba85784ea83e8a5402d21 100644 (file)
@@ -40,6 +40,24 @@ diff -urN binutils-2.16.90.0.2-dist/configure binutils-2.16.90.0.2/configure
          # Enable libmudflap by default in GNU and friends.
        ;;
      *-*-freebsd*)
+@@ -1207,7 +1207,7 @@
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;    
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -1495,7 +1495,7 @@
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[3456789]86-*-vsta) ;; # don't add gprof back in
+       i[3456789]86-*-go32*) ;; # don't add gprof back in
 diff -urN binutils-2.16.90.0.2-dist/configure.in binutils-2.16.90.0.2/configure.in
 --- binutils-2.16.90.0.2-dist/configure.in     2005-04-29 12:50:23.000000000 -0500
 +++ binutils-2.16.90.0.2/configure.in  2005-04-30 11:29:51.643139832 -0500
@@ -52,6 +70,24 @@ diff -urN binutils-2.16.90.0.2-dist/configure.in binutils-2.16.90.0.2/configure.
          # Enable libmudflap by default in GNU and friends.
        ;;
      *-*-freebsd*)
+@@ -424,7 +424,7 @@
+   am33_2.0-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;
+-  sh-*-linux*)
++  sh*-*-linux*)
+     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+     ;;    
+   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -712,7 +712,7 @@
+   romp-*-*)
+     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+     ;;
+-  sh-*-* | sh64-*-*)
++  sh*-*-* | sh64-*-*)
+     case "${host}" in
+       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
+       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
 diff -urN binutils-2.16.90.0.2-dist/gas/configure binutils-2.16.90.0.2/gas/configure
 --- binutils-2.16.90.0.2-dist/gas/configure    2005-04-29 12:50:27.000000000 -0500
 +++ binutils-2.16.90.0.2/gas/configure 2005-04-30 11:35:21.097055224 -0500
@@ -216,3 +252,43 @@ diff -urN binutils-2.16.90.0.2-dist/opcodes/configure binutils-2.16.90.0.2/opcod
  netbsd* | knetbsd*-gnu)
    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
+diff -urN binutils-2.16.90.0.2.orig/config.sub binutils-2.16.90.0.2/config.sub
+--- binutils-2.16.90.0.2.orig/config.sub       2005-04-29 20:50:23.000000000 +0300
++++ binutils-2.16.90.0.2/config.sub    2005-05-02 13:34:38.400457452 +0300
+@@ -265,7 +265,7 @@
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+-      | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
++      | sh | sh[1234]* | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+       | sparcv8 | sparcv9 | sparcv9b \
+@@ -340,7 +340,7 @@
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* \
+-      | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
++      | sh-* | sh[1234]*-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+       | sparclite-* \
+@@ -891,9 +891,6 @@
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+-      sh64)
+-              basic_machine=sh64-unknown
+-              ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+@@ -1093,7 +1090,7 @@
+       we32k)
+               basic_machine=we32k-att
+               ;;
+-      sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
++      sh2* | sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
+       sh64)
index 47f63594493c312c33a81e8345d7d7f30e5480fc..c2cb87f2687281976080643a527549bdd1ffd83f 100644 (file)
@@ -338,6 +338,15 @@ diff -urN gcc-4.0.0-dist/gcc/config.gcc gcc-4.0.0/gcc/config.gcc
  cris-*-linux*)
        tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
        # We need to avoid using t-linux, so override default tmake_file
+@@ -1759,7 +1759,7 @@
+       ;;
+ sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
+ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
+-  sh-*-linux* | sh[346lbe]*-*-linux* | \
++  sh*-*-linux* | sh[346lbe]*-*-linux* | \
+   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
+    sh64-*-netbsd* | sh64l*-*-netbsd*)
+       tmake_file="${tmake_file} sh/t-sh sh/t-elf"
 @@ -1780,6 +1789,8 @@
        esac
        tm_file="${tm_file} sh/elf.h"
@@ -487,3 +496,43 @@ diff -urN gcc-4.0.0-dist/zlib/configure gcc-4.0.0/zlib/configure
  netbsd* | knetbsd*-gnu)
    if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
      lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
+diff -urN gcc-4.0.0.orig/config.sub gcc-4.0.0/config.sub
+--- gcc-4.0.0.orig/config.sub  2005-01-18 03:20:48.000000000 +0200
++++ gcc-4.0.0/config.sub       2005-05-02 13:46:44.643407037 +0300
+@@ -260,7 +260,7 @@
+       | pdp10 | pdp11 | pj | pjl \
+       | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+       | pyramid \
+-      | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
++      | sh | sh[1234]* | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+       | sh64 | sh64le \
+       | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
+       | strongarm \
+@@ -334,7 +334,7 @@
+       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+       | pyramid-* \
+       | romp-* | rs6000-* \
+-      | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
++      | sh-* | sh[1234]*-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+       | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+       | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+@@ -884,9 +884,6 @@
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+-      sh64)
+-              basic_machine=sh64-unknown
+-              ;;
+       sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+@@ -1086,7 +1083,7 @@
+       we32k)
+               basic_machine=we32k-att
+               ;;
+-      sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
++      sh2* | sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
+       sh64)