patches/gcc/3.2.3/120-gcc-20030210-sh-linux-1.patch
changeset 746 b150d6f590fc
parent 745 e445c00d134d
child 747 d3e603e7c17c
     1.1 --- a/patches/gcc/3.2.3/120-gcc-20030210-sh-linux-1.patch	Mon Jul 28 20:17:48 2008 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,1761 +0,0 @@
     1.4 -diff -ruN gcc-20030210.orig/boehm-gc/configure gcc-20030210/boehm-gc/configure
     1.5 ---- gcc-20030210.orig/boehm-gc/configure	Fri Jan 31 19:17:00 2003
     1.6 -+++ gcc-20030210/boehm-gc/configure	Sat Feb 22 01:40:14 2003
     1.7 -@@ -1922,7 +1922,7 @@
     1.8 - # This must be Linux ELF.
     1.9 - linux-gnu*)
    1.10 -   case $host_cpu in
    1.11 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
    1.12 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
    1.13 -     lt_cv_deplibs_check_method=pass_all ;;
    1.14 -   *)
    1.15 -     # glibc up to 2.1.1 does not perform some relocations on ARM
    1.16 -diff -ruN gcc-20030210.orig/config-ml.in gcc-20030210/config-ml.in
    1.17 ---- gcc-20030210.orig/config-ml.in	Fri Jan 31 19:16:59 2003
    1.18 -+++ gcc-20030210/config-ml.in	Sat Feb 22 01:40:14 2003
    1.19 -@@ -545,6 +545,7 @@
    1.20 - 	      if [ -d ../$${dir}/$${lib} ]; then \
    1.21 - 		flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
    1.22 - 		if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \
    1.23 -+				DESTDIR="$(DESTDIR)" \
    1.24 - 				CFLAGS="$(CFLAGS) $${flags}" \
    1.25 - 				prefix="$(prefix)" \
    1.26 - 				exec_prefix="$(exec_prefix)" \
    1.27 -diff -ruN gcc-20030210.orig/debian/edit-specs.in gcc-20030210/debian/edit-specs.in
    1.28 ---- gcc-20030210.orig/debian/edit-specs.in	Thu Jan  1 09:00:00 1970
    1.29 -+++ gcc-20030210/debian/edit-specs.in	Sat Feb 22 01:40:14 2003
    1.30 -@@ -0,0 +1,45 @@
    1.31 -+/^*asm:$/ {
    1.32 -+n
    1.33 -+c\
    1.34 -+@AS_ENDIAN_FLAG@ %{mrelax:-relax}
    1.35 -+}
    1.36 -+/^*cpp:$/ {
    1.37 -+n
    1.38 -+c\
    1.39 -+%(cpp_default_cpu_spec)    %(subtarget_cpp_spec)    %(subtarget_cpp_ptr_spec)    %(subtarget_cpp_endian_spec)
    1.40 -+}
    1.41 -+/^*cc1:$/ {
    1.42 -+n
    1.43 -+c\
    1.44 -+-musermode @CC1_CPU_ENDIAN_FLAGS@  %{profile:-p}
    1.45 -+}
    1.46 -+/^*link:$/ {
    1.47 -+n
    1.48 -+c\
    1.49 -+%{!static:--eh-frame-hdr} @LINKER_CPU_ENDIAN_FLAGS@  @LINKER_RPATH_LINK_FLAG@ %{mrelax:-relax}  %{shared:-shared}  %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} %{static:-static}
    1.50 -+}
    1.51 -+/^*multilib:$/ {
    1.52 -+n
    1.53 -+c\
    1.54 -+. ;
    1.55 -+}
    1.56 -+/^*multilib_matches:$/ {
    1.57 -+n
    1.58 -+c\
    1.59 -+
    1.60 -+}
    1.61 -+/^*multilib_options:$/ {
    1.62 -+n
    1.63 -+c\
    1.64 -+
    1.65 -+}
    1.66 -+/^*subtarget_cpp_endian_spec:$/ {
    1.67 -+n
    1.68 -+c\
    1.69 -+@CPP_ENDIAN_DEF@
    1.70 -+}
    1.71 -+/^*cpp_default_cpu_spec:$/ {
    1.72 -+n
    1.73 -+c\
    1.74 -+@CPP_CPU_DEFS@
    1.75 -+}
    1.76 -diff -ruN gcc-20030210.orig/debian/install-CPU-linux gcc-20030210/debian/install-CPU-linux
    1.77 ---- gcc-20030210.orig/debian/install-CPU-linux	Thu Jan  1 09:00:00 1970
    1.78 -+++ gcc-20030210/debian/install-CPU-linux	Sat Feb 22 01:40:14 2003
    1.79 -@@ -0,0 +1,111 @@
    1.80 -+#! /bin/sh
    1.81 -+
    1.82 -+VERSION=$1; shift
    1.83 -+CPU=$1
    1.84 -+
    1.85 -+# literally (binary-ly) same
    1.86 -+PROGS_C="cpp gcc"
    1.87 -+PROGS_ADDITIONAL="c++ g++ g77 gcj"
    1.88 -+
    1.89 -+DRIVERS_C="cc1 cpp0 tradcpp0"
    1.90 -+DRIVERS_ADDITIONAL="cc1obj cc1plus collect2 f771 jc1 jvgenmain"
    1.91 -+if [ -z "$STEP1_COMPILER_BUILD" ]; then
    1.92 -+  PROGS="$PROGS_C $PROGS_ADDITIONAL"
    1.93 -+  DRIVERS="$DRIVERS_C $DRIVERSADDITIONAL"
    1.94 -+  INITIAL=""
    1.95 -+else
    1.96 -+  PROGS=$PROGS_C
    1.97 -+  DRIVERS=$DRIVERS_C
    1.98 -+  INITIAL="-initial"
    1.99 -+fi
   1.100 -+
   1.101 -+OBJS="crtbegin.o crtbeginS.o crtend.o crtendS.o"
   1.102 -+LIBS_C="libgcc.a"
   1.103 -+LIBS_1="libgcc_s.so libgcc_s.so.1 libstdc++.so libstdc++.so.3 libstdc++.so.3.0.2"
   1.104 -+LIBS_2="libobjc.a libstdc++.a libsupc++.a"
   1.105 -+INCLUDE="include"
   1.106 -+
   1.107 -+cd debian/gcc-sh-linux-others${INITIAL} || exit 1
   1.108 -+
   1.109 -+# Make directories.
   1.110 -+mkdir -p usr/bin usr/share usr/share/man usr/share/man/man1 usr/lib \
   1.111 -+	 usr/lib/gcc-lib usr/lib/gcc-lib/${CPU}-linux \
   1.112 -+	 usr/lib/gcc-lib/${CPU}-linux/${VERSION} \
   1.113 -+	 usr/${CPU}-linux usr/${CPU}-linux/lib
   1.114 -+
   1.115 -+# Make symbolic links for include dir.
   1.116 -+(cd usr/${CPU}-linux; ln -s ../sh-linux/include .)
   1.117 -+
   1.118 -+# Make symbolic links for executables.
   1.119 -+(cd usr/bin;
   1.120 -+  for p in ${PROGS}; do
   1.121 -+    ln -s shCPU-linux-GCC ${CPU}-linux-$p
   1.122 -+  done)
   1.123 -+
   1.124 -+case "${CPU}" in
   1.125 -+    sh3)
   1.126 -+	MULTILIBDIR=
   1.127 -+	AS_ENDIAN_FLAG="-little"
   1.128 -+	CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
   1.129 -+	CPP_CPU_DEFS="-D__SH3__ -D__sh3__"
   1.130 -+	CC1_CPU_ENDIAN_FLAGS="-ml -m3"
   1.131 -+	LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh3"
   1.132 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh3-linux/lib"
   1.133 -+    ;;
   1.134 -+    sh3eb)
   1.135 -+	MULTILIBDIR=/mb
   1.136 -+	AS_ENDIAN_FLAG="-big"
   1.137 -+	CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
   1.138 -+	CPP_CPU_DEFS="-D__SH3__ -D__sh3__"
   1.139 -+	CC1_CPU_ENDIAN_FLAGS="-mb -m3"
   1.140 -+	LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh3"
   1.141 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh3eb-linux/lib"
   1.142 -+    ;;
   1.143 -+    sh4)
   1.144 -+	MULTILIBDIR=/m4
   1.145 -+	AS_ENDIAN_FLAG="-little"
   1.146 -+	CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
   1.147 -+	CPP_CPU_DEFS="-D__SH4__"
   1.148 -+	CC1_CPU_ENDIAN_FLAGS="-ml -m4"
   1.149 -+	LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh4"
   1.150 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh4-linux/lib"
   1.151 -+    ;;
   1.152 -+    sh4eb)
   1.153 -+	MULTILIBDIR=/mb/m4
   1.154 -+	AS_ENDIAN_FLAG="-big"
   1.155 -+	CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
   1.156 -+	CPP_CPU_DEFS="-D__SH4__"
   1.157 -+	CC1_CPU_ENDIAN_FLAGS="-mb -m4"
   1.158 -+	LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh4"
   1.159 -+	LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh4eb-linux/lib"
   1.160 -+    ;;
   1.161 -+esac
   1.162 -+
   1.163 -+# Make symbolic links for GCC drivers, objects, libraries, and include dir.
   1.164 -+(cd usr/lib/gcc-lib/${CPU}-linux/${VERSION};
   1.165 -+ for f in ${DRIVERS} ${INCLUDE}; do
   1.166 -+    ln -s ../../sh-linux/${VERSION}/$f $f;
   1.167 -+ done
   1.168 -+ for f in ${OBJS} ${LIBS_C}; do
   1.169 -+    ln -s ../../sh-linux/${VERSION}${MULTILIBDIR}/$f $f;
   1.170 -+ done)
   1.171 -+
   1.172 -+if [ -z "$STEP1_COMPILER_BUILD" ]; then
   1.173 -+  for f in ${LIBS_1} ${LIBS_2}; do
   1.174 -+    mv ../gcc-sh-linux/usr/sh-linux/lib${MULTILIBDIR}/$f usr/${CPU}-linux/lib/;
   1.175 -+  done
   1.176 -+fi
   1.177 -+
   1.178 -+sed -e "s+@AS_ENDIAN_FLAG@+${AS_ENDIAN_FLAG}+" \
   1.179 -+    -e "s+@CPP_ENDIAN_DEF@+${CPP_ENDIAN_DEF}+" \
   1.180 -+    -e "s+@CPP_CPU_DEFS@+${CPP_CPU_DEFS}+" \
   1.181 -+    -e "s+@CC1_CPU_ENDIAN_FLAGS@+${CC1_CPU_ENDIAN_FLAGS}+" \
   1.182 -+    -e "s+@LINKER_CPU_ENDIAN_FLAGS@+${LINKER_CPU_ENDIAN_FLAGS}+" \
   1.183 -+    -e "s+@LINKER_RPATH_LINK_FLAG@+${LINKER_RPATH_LINK_FLAG}+" \
   1.184 -+    ../edit-specs.in >../edit-specs-${CPU}.sed
   1.185 -+
   1.186 -+sed -f ../edit-specs-${CPU}.sed \
   1.187 -+    ../gcc-sh-linux${INITIAL}/usr/lib/gcc-lib/sh-linux/${VERSION}/specs \
   1.188 -+    > usr/lib/gcc-lib/${CPU}-linux/${VERSION}/specs
   1.189 -+
   1.190 -+exit 0
   1.191 -diff -ruN gcc-20030210.orig/debian/multilib-symlink gcc-20030210/debian/multilib-symlink
   1.192 ---- gcc-20030210.orig/debian/multilib-symlink	Thu Jan  1 09:00:00 1970
   1.193 -+++ gcc-20030210/debian/multilib-symlink	Sat Feb 22 01:40:14 2003
   1.194 -@@ -0,0 +1,10 @@
   1.195 -+#! /bin/sh
   1.196 -+
   1.197 -+cd /usr/sh-linux/lib
   1.198 -+ln -s ../../sh3-linux/lib/{*.a,*.so*,*.o} .
   1.199 -+cd m4
   1.200 -+ln -s ../../../sh4-linux/lib/{*.a,*.so*,*.o} .
   1.201 -+cd ../mb
   1.202 -+ln -s ../../../sh3eb-linux/lib/{*.a,*.so*,*.o} .
   1.203 -+cd m4
   1.204 -+ln -s ../../../../sh4eb-linux/lib/{*.a,*.so*,*.o} .
   1.205 -diff -ruN gcc-20030210.orig/debian/shCPU-linux-GCC gcc-20030210/debian/shCPU-linux-GCC
   1.206 ---- gcc-20030210.orig/debian/shCPU-linux-GCC	Thu Jan  1 09:00:00 1970
   1.207 -+++ gcc-20030210/debian/shCPU-linux-GCC	Sat Feb 22 01:40:14 2003
   1.208 -@@ -0,0 +1,59 @@
   1.209 -+#! /bin/bash
   1.210 -+
   1.211 -+BASENAME=${0##*/}
   1.212 -+PROG=${BASENAME##*-}
   1.213 -+CPU=${BASENAME%%-*}
   1.214 -+
   1.215 -+if [ "$PROG" = gcc ]; then
   1.216 -+    if [ "$1" = "-b" -a "$2" = "i386-linux" ]; then
   1.217 -+	shift 2
   1.218 -+	exec /usr/bin/gcc "$@"
   1.219 -+    elif [ "$1" = "-print-multi-lib" -o "$1" = "--print-multi-lib" ]; then
   1.220 -+	echo ".;"
   1.221 -+	exit 0
   1.222 -+    elif [ "$1" = "-print-multi-os-directory" -o "$1" = "--print-multi-os-directory" ]; then
   1.223 -+	echo "."
   1.224 -+	exit 0
   1.225 -+    elif [ "$1" = "-dumpspecs" ]; then
   1.226 -+	cat /usr/lib/gcc-lib/${CPU}-linux/@@VERSION@@/specs
   1.227 -+	exit 0
   1.228 -+    fi
   1.229 -+fi
   1.230 -+
   1.231 -+case "${CPU}" in
   1.232 -+    sh3)
   1.233 -+	ARCH=m3
   1.234 -+	DEFINES="-D__sh3__ -D__SH3__ -D__LITTLE_ENDIAN__"
   1.235 -+	ENDIAN=ml
   1.236 -+    ;;
   1.237 -+    sh3eb)
   1.238 -+	ARCH=m3
   1.239 -+	DEFINES="-D__sh3__ -D__SH3__ -D__BIG_ENDIAN__"
   1.240 -+	ENDIAN=mb
   1.241 -+    ;;
   1.242 -+    sh4)
   1.243 -+	ARCH=m4
   1.244 -+	DEFINES="-D__SH4__ -D__LITTLE_ENDIAN__"
   1.245 -+	ENDIAN=ml
   1.246 -+    ;;
   1.247 -+    sh4eb)
   1.248 -+	ARCH=m4
   1.249 -+	DEFINES="-D__SH4__ -D__BIG_ENDIAN__"
   1.250 -+	ENDIAN=mb
   1.251 -+    ;;
   1.252 -+esac
   1.253 -+
   1.254 -+# Prepend the appropriate options
   1.255 -+# If user specifies some options, it will be overridden
   1.256 -+
   1.257 -+case "${PROG}" in
   1.258 -+    cpp)
   1.259 -+	exec sh-linux-${PROG} $DEFINES "$@"
   1.260 -+    ;;
   1.261 -+    c++|g++|g77|gcc|gcj)
   1.262 -+	exec sh-linux-${PROG} -$ARCH -$ENDIAN "$@"
   1.263 -+    ;;
   1.264 -+esac
   1.265 -+
   1.266 -+echo "Something wrong..."
   1.267 -+exit 1
   1.268 -diff -ruN gcc-20030210.orig/gcc/config/sh/elf.h gcc-20030210/gcc/config/sh/elf.h
   1.269 ---- gcc-20030210.orig/gcc/config/sh/elf.h	Fri Feb 22 01:42:28 2002
   1.270 -+++ gcc-20030210/gcc/config/sh/elf.h	Sat Feb 22 01:40:14 2003
   1.271 -@@ -170,3 +170,7 @@
   1.272 - #undef ENDFILE_SPEC
   1.273 - #define ENDFILE_SPEC \
   1.274 -   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
   1.275 -+
   1.276 -+/* ASM_OUTPUT_CASE_LABEL is defined in elfos.h.  With it, 
   1.277 -+   redundant .align will be generated.  */
   1.278 -+#undef  ASM_OUTPUT_CASE_LABEL
   1.279 -diff -ruN gcc-20030210.orig/gcc/config/sh/lib1funcs.asm gcc-20030210/gcc/config/sh/lib1funcs.asm
   1.280 ---- gcc-20030210.orig/gcc/config/sh/lib1funcs.asm	Fri Feb 22 01:42:28 2002
   1.281 -+++ gcc-20030210/gcc/config/sh/lib1funcs.asm	Sat Feb 22 01:40:14 2003
   1.282 -@@ -39,8 +39,13 @@
   1.283 - 
   1.284 - #ifdef __ELF__
   1.285 - #define LOCAL(X) .L_##X
   1.286 -+#define FUNC(X) .type X,@function; .hidden X
   1.287 -+#define _ENDFUNC(X) .Lfe_##X: .size X,.Lfe_##X-X
   1.288 -+#define ENDFUNC(X) _ENDFUNC(X)
   1.289 - #else
   1.290 - #define LOCAL(X) L_##X
   1.291 -+#define FUNC(X)
   1.292 -+#define ENDFUNC(X)
   1.293 - #endif
   1.294 - 
   1.295 - #ifdef __linux__
   1.296 -@@ -91,6 +96,40 @@
   1.297 - 	.global	GLOBAL(ashiftrt_r4_31)
   1.298 - 	.global	GLOBAL(ashiftrt_r4_32)
   1.299 - 
   1.300 -+	FUNC(GLOBAL(ashiftrt_r4_0))
   1.301 -+	FUNC(GLOBAL(ashiftrt_r4_1))
   1.302 -+	FUNC(GLOBAL(ashiftrt_r4_2))
   1.303 -+	FUNC(GLOBAL(ashiftrt_r4_3))
   1.304 -+	FUNC(GLOBAL(ashiftrt_r4_4))
   1.305 -+	FUNC(GLOBAL(ashiftrt_r4_5))
   1.306 -+	FUNC(GLOBAL(ashiftrt_r4_6))
   1.307 -+	FUNC(GLOBAL(ashiftrt_r4_7))
   1.308 -+	FUNC(GLOBAL(ashiftrt_r4_8))
   1.309 -+	FUNC(GLOBAL(ashiftrt_r4_9))
   1.310 -+	FUNC(GLOBAL(ashiftrt_r4_10))
   1.311 -+	FUNC(GLOBAL(ashiftrt_r4_11))
   1.312 -+	FUNC(GLOBAL(ashiftrt_r4_12))
   1.313 -+	FUNC(GLOBAL(ashiftrt_r4_13))
   1.314 -+	FUNC(GLOBAL(ashiftrt_r4_14))
   1.315 -+	FUNC(GLOBAL(ashiftrt_r4_15))
   1.316 -+	FUNC(GLOBAL(ashiftrt_r4_16))
   1.317 -+	FUNC(GLOBAL(ashiftrt_r4_17))
   1.318 -+	FUNC(GLOBAL(ashiftrt_r4_18))
   1.319 -+	FUNC(GLOBAL(ashiftrt_r4_19))
   1.320 -+	FUNC(GLOBAL(ashiftrt_r4_20))
   1.321 -+	FUNC(GLOBAL(ashiftrt_r4_21))
   1.322 -+	FUNC(GLOBAL(ashiftrt_r4_22))
   1.323 -+	FUNC(GLOBAL(ashiftrt_r4_23))
   1.324 -+	FUNC(GLOBAL(ashiftrt_r4_24))
   1.325 -+	FUNC(GLOBAL(ashiftrt_r4_25))
   1.326 -+	FUNC(GLOBAL(ashiftrt_r4_26))
   1.327 -+	FUNC(GLOBAL(ashiftrt_r4_27))
   1.328 -+	FUNC(GLOBAL(ashiftrt_r4_28))
   1.329 -+	FUNC(GLOBAL(ashiftrt_r4_29))
   1.330 -+	FUNC(GLOBAL(ashiftrt_r4_30))
   1.331 -+	FUNC(GLOBAL(ashiftrt_r4_31))
   1.332 -+	FUNC(GLOBAL(ashiftrt_r4_32))
   1.333 -+
   1.334 - 	.align	1
   1.335 - GLOBAL(ashiftrt_r4_32):
   1.336 - GLOBAL(ashiftrt_r4_31):
   1.337 -@@ -170,6 +209,41 @@
   1.338 - GLOBAL(ashiftrt_r4_0):
   1.339 - 	rts
   1.340 - 	nop
   1.341 -+
   1.342 -+	ENDFUNC(GLOBAL(ashiftrt_r4_0))
   1.343 -+	ENDFUNC(GLOBAL(ashiftrt_r4_1))
   1.344 -+	ENDFUNC(GLOBAL(ashiftrt_r4_2))
   1.345 -+	ENDFUNC(GLOBAL(ashiftrt_r4_3))
   1.346 -+	ENDFUNC(GLOBAL(ashiftrt_r4_4))
   1.347 -+	ENDFUNC(GLOBAL(ashiftrt_r4_5))
   1.348 -+	ENDFUNC(GLOBAL(ashiftrt_r4_6))
   1.349 -+	ENDFUNC(GLOBAL(ashiftrt_r4_7))
   1.350 -+	ENDFUNC(GLOBAL(ashiftrt_r4_8))
   1.351 -+	ENDFUNC(GLOBAL(ashiftrt_r4_9))
   1.352 -+	ENDFUNC(GLOBAL(ashiftrt_r4_10))
   1.353 -+	ENDFUNC(GLOBAL(ashiftrt_r4_11))
   1.354 -+	ENDFUNC(GLOBAL(ashiftrt_r4_12))
   1.355 -+	ENDFUNC(GLOBAL(ashiftrt_r4_13))
   1.356 -+	ENDFUNC(GLOBAL(ashiftrt_r4_14))
   1.357 -+	ENDFUNC(GLOBAL(ashiftrt_r4_15))
   1.358 -+	ENDFUNC(GLOBAL(ashiftrt_r4_16))
   1.359 -+	ENDFUNC(GLOBAL(ashiftrt_r4_17))
   1.360 -+	ENDFUNC(GLOBAL(ashiftrt_r4_18))
   1.361 -+	ENDFUNC(GLOBAL(ashiftrt_r4_19))
   1.362 -+	ENDFUNC(GLOBAL(ashiftrt_r4_20))
   1.363 -+	ENDFUNC(GLOBAL(ashiftrt_r4_21))
   1.364 -+	ENDFUNC(GLOBAL(ashiftrt_r4_22))
   1.365 -+	ENDFUNC(GLOBAL(ashiftrt_r4_23))
   1.366 -+	ENDFUNC(GLOBAL(ashiftrt_r4_24))
   1.367 -+	ENDFUNC(GLOBAL(ashiftrt_r4_25))
   1.368 -+	ENDFUNC(GLOBAL(ashiftrt_r4_26))
   1.369 -+	ENDFUNC(GLOBAL(ashiftrt_r4_27))
   1.370 -+	ENDFUNC(GLOBAL(ashiftrt_r4_28))
   1.371 -+	ENDFUNC(GLOBAL(ashiftrt_r4_29))
   1.372 -+	ENDFUNC(GLOBAL(ashiftrt_r4_30))
   1.373 -+	ENDFUNC(GLOBAL(ashiftrt_r4_31))
   1.374 -+	ENDFUNC(GLOBAL(ashiftrt_r4_32))
   1.375 -+
   1.376 - #endif
   1.377 - 
   1.378 - #ifdef L_ashiftrt_n
   1.379 -@@ -192,6 +266,7 @@
   1.380 - !
   1.381 - 
   1.382 - 	.global	GLOBAL(ashrsi3)
   1.383 -+	FUNC(GLOBAL(ashrsi3))
   1.384 - 	.align	2
   1.385 - GLOBAL(ashrsi3):
   1.386 - 	mov	#31,r0
   1.387 -@@ -319,6 +394,8 @@
   1.388 - 	rts
   1.389 - 	nop
   1.390 - 
   1.391 -+	ENDFUNC(GLOBAL(ashrsi3))
   1.392 -+
   1.393 - #endif
   1.394 - 
   1.395 - #ifdef L_ashiftlt
   1.396 -@@ -340,6 +417,7 @@
   1.397 - ! (none)
   1.398 - !
   1.399 - 	.global	GLOBAL(ashlsi3)
   1.400 -+	FUNC(GLOBAL(ashlsi3))
   1.401 - 	.align	2
   1.402 - GLOBAL(ashlsi3):
   1.403 - 	mov	#31,r0
   1.404 -@@ -476,6 +554,8 @@
   1.405 - 	rts
   1.406 - 	nop
   1.407 - 
   1.408 -+	ENDFUNC(GLOBAL(ashlsi3))
   1.409 -+
   1.410 - #endif
   1.411 - 
   1.412 - #ifdef L_lshiftrt
   1.413 -@@ -497,6 +577,7 @@
   1.414 - ! (none)
   1.415 - !
   1.416 - 	.global	GLOBAL(lshrsi3)
   1.417 -+	FUNC(GLOBAL(lshrsi3))
   1.418 - 	.align	2
   1.419 - GLOBAL(lshrsi3):
   1.420 - 	mov	#31,r0
   1.421 -@@ -633,6 +714,8 @@
   1.422 - 	rts
   1.423 - 	nop
   1.424 - 
   1.425 -+	ENDFUNC(GLOBAL(lshrsi3))
   1.426 -+
   1.427 - #endif
   1.428 - 
   1.429 - #ifdef L_movstr
   1.430 -@@ -649,76 +732,113 @@
   1.431 - 	add	#64,r4
   1.432 - 	.align	4
   1.433 - 	.global	GLOBAL(movstrSI64)
   1.434 -+	FUNC(GLOBAL(movstrSI64))
   1.435 - GLOBAL(movstrSI64):
   1.436 - 	mov.l	@(60,r5),r0
   1.437 - 	mov.l	r0,@(60,r4)
   1.438 - 	.global	GLOBAL(movstrSI60)
   1.439 -+	FUNC(GLOBAL(movstrSI60))
   1.440 - GLOBAL(movstrSI60):
   1.441 - 	mov.l	@(56,r5),r0
   1.442 - 	mov.l	r0,@(56,r4)
   1.443 - 	.global	GLOBAL(movstrSI56)
   1.444 -+	FUNC(GLOBAL(movstrSI56))
   1.445 - GLOBAL(movstrSI56):
   1.446 - 	mov.l	@(52,r5),r0
   1.447 - 	mov.l	r0,@(52,r4)
   1.448 - 	.global	GLOBAL(movstrSI52)
   1.449 -+	FUNC(GLOBAL(movstrSI52))
   1.450 - GLOBAL(movstrSI52):
   1.451 - 	mov.l	@(48,r5),r0
   1.452 - 	mov.l	r0,@(48,r4)
   1.453 - 	.global	GLOBAL(movstrSI48)
   1.454 -+	FUNC(GLOBAL(movstrSI48))
   1.455 - GLOBAL(movstrSI48):
   1.456 - 	mov.l	@(44,r5),r0
   1.457 - 	mov.l	r0,@(44,r4)
   1.458 - 	.global	GLOBAL(movstrSI44)
   1.459 -+	FUNC(GLOBAL(movstrSI44))
   1.460 - GLOBAL(movstrSI44):
   1.461 - 	mov.l	@(40,r5),r0
   1.462 - 	mov.l	r0,@(40,r4)
   1.463 - 	.global	GLOBAL(movstrSI40)
   1.464 -+	FUNC(GLOBAL(movstrSI40))
   1.465 - GLOBAL(movstrSI40):
   1.466 - 	mov.l	@(36,r5),r0
   1.467 - 	mov.l	r0,@(36,r4)
   1.468 - 	.global	GLOBAL(movstrSI36)
   1.469 -+	FUNC(GLOBAL(movstrSI36))
   1.470 - GLOBAL(movstrSI36):
   1.471 - 	mov.l	@(32,r5),r0
   1.472 - 	mov.l	r0,@(32,r4)
   1.473 - 	.global	GLOBAL(movstrSI32)
   1.474 -+	FUNC(GLOBAL(movstrSI32))
   1.475 - GLOBAL(movstrSI32):
   1.476 - 	mov.l	@(28,r5),r0
   1.477 - 	mov.l	r0,@(28,r4)
   1.478 - 	.global	GLOBAL(movstrSI28)
   1.479 -+	FUNC(GLOBAL(movstrSI28))
   1.480 - GLOBAL(movstrSI28):
   1.481 - 	mov.l	@(24,r5),r0
   1.482 - 	mov.l	r0,@(24,r4)
   1.483 - 	.global	GLOBAL(movstrSI24)
   1.484 -+	FUNC(GLOBAL(movstrSI24))
   1.485 - GLOBAL(movstrSI24):
   1.486 - 	mov.l	@(20,r5),r0
   1.487 - 	mov.l	r0,@(20,r4)
   1.488 - 	.global	GLOBAL(movstrSI20)
   1.489 -+	FUNC(GLOBAL(movstrSI20))
   1.490 - GLOBAL(movstrSI20):
   1.491 - 	mov.l	@(16,r5),r0
   1.492 - 	mov.l	r0,@(16,r4)
   1.493 - 	.global	GLOBAL(movstrSI16)
   1.494 -+	FUNC(GLOBAL(movstrSI16))
   1.495 - GLOBAL(movstrSI16):
   1.496 - 	mov.l	@(12,r5),r0
   1.497 - 	mov.l	r0,@(12,r4)
   1.498 - 	.global	GLOBAL(movstrSI12)
   1.499 -+	FUNC(GLOBAL(movstrSI12))
   1.500 - GLOBAL(movstrSI12):
   1.501 - 	mov.l	@(8,r5),r0
   1.502 - 	mov.l	r0,@(8,r4)
   1.503 - 	.global	GLOBAL(movstrSI8)
   1.504 -+	FUNC(GLOBAL(movstrSI8))
   1.505 - GLOBAL(movstrSI8):
   1.506 - 	mov.l	@(4,r5),r0
   1.507 - 	mov.l	r0,@(4,r4)
   1.508 - 	.global	GLOBAL(movstrSI4)
   1.509 -+	FUNC(GLOBAL(movstrSI4))
   1.510 - GLOBAL(movstrSI4):
   1.511 - 	mov.l	@(0,r5),r0
   1.512 - 	mov.l	r0,@(0,r4)
   1.513 -+	.global	GLOBAL(movstrSI0)
   1.514 -+	FUNC(GLOBAL(movstrSI0))
   1.515 - GLOBAL(movstrSI0):
   1.516 - 	rts
   1.517 - 	nop
   1.518 - 
   1.519 -+	ENDFUNC(GLOBAL(movstrSI64))
   1.520 -+	ENDFUNC(GLOBAL(movstrSI60))
   1.521 -+	ENDFUNC(GLOBAL(movstrSI56))
   1.522 -+	ENDFUNC(GLOBAL(movstrSI52))
   1.523 -+	ENDFUNC(GLOBAL(movstrSI48))
   1.524 -+	ENDFUNC(GLOBAL(movstrSI44))
   1.525 -+	ENDFUNC(GLOBAL(movstrSI40))
   1.526 -+	ENDFUNC(GLOBAL(movstrSI36))
   1.527 -+	ENDFUNC(GLOBAL(movstrSI32))
   1.528 -+	ENDFUNC(GLOBAL(movstrSI28))
   1.529 -+	ENDFUNC(GLOBAL(movstrSI24))
   1.530 -+	ENDFUNC(GLOBAL(movstrSI20))
   1.531 -+	ENDFUNC(GLOBAL(movstrSI16))
   1.532 -+	ENDFUNC(GLOBAL(movstrSI12))
   1.533 -+	ENDFUNC(GLOBAL(movstrSI8))
   1.534 -+	ENDFUNC(GLOBAL(movstrSI4))
   1.535 -+	ENDFUNC(GLOBAL(movstrSI0))
   1.536 -+
   1.537 - 	.align	4
   1.538 - 
   1.539 - 	.global	GLOBAL(movstr)
   1.540 -+	FUNC(GLOBAL(movstr))
   1.541 - GLOBAL(movstr):
   1.542 - 	mov.l	@(60,r5),r0
   1.543 - 	mov.l	r0,@(60,r4)
   1.544 -@@ -775,6 +895,8 @@
   1.545 - 	add	#64,r5
   1.546 - 	bra	GLOBAL(movstr)
   1.547 - 	add	#64,r4
   1.548 -+
   1.549 -+	FUNC(GLOBAL(movstr))
   1.550 - #endif
   1.551 - 
   1.552 - #ifdef L_movstr_i4
   1.553 -@@ -783,6 +905,10 @@
   1.554 - 	.global	GLOBAL(movstr_i4_odd)
   1.555 - 	.global	GLOBAL(movstrSI12_i4)
   1.556 - 
   1.557 -+	FUNC(GLOBAL(movstr_i4_even))
   1.558 -+	FUNC(GLOBAL(movstr_i4_odd))
   1.559 -+	FUNC(GLOBAL(movstrSI12_i4))
   1.560 -+
   1.561 - 	.p2align	5
   1.562 - L_movstr_2mod4_end:
   1.563 - 	mov.l	r0,@(16,r4)
   1.564 -@@ -791,6 +917,11 @@
   1.565 - 
   1.566 - 	.p2align	2
   1.567 - 
   1.568 -+GLOBAL(movstr_i4_even):
   1.569 -+	mov.l	@r5+,r0
   1.570 -+	bra	L_movstr_start_even
   1.571 -+	mov.l	@r5+,r1
   1.572 -+
   1.573 - GLOBAL(movstr_i4_odd):
   1.574 - 	mov.l	@r5+,r1
   1.575 - 	add	#-4,r4
   1.576 -@@ -817,10 +948,8 @@
   1.577 - 	rts
   1.578 - 	mov.l	r3,@(12,r4)
   1.579 - 
   1.580 --GLOBAL(movstr_i4_even):
   1.581 --	mov.l	@r5+,r0
   1.582 --	bra	L_movstr_start_even
   1.583 --	mov.l	@r5+,r1
   1.584 -+	ENDFUNC(GLOBAL(movstr_i4_even))
   1.585 -+	ENDFUNC(GLOBAL(movstr_i4_odd))
   1.586 - 
   1.587 - 	.p2align	4
   1.588 - GLOBAL(movstrSI12_i4):
   1.589 -@@ -831,12 +960,16 @@
   1.590 - 	mov.l	r1,@(4,r4)
   1.591 - 	rts
   1.592 - 	mov.l	r2,@(8,r4)
   1.593 -+
   1.594 -+	ENDFUNC(GLOBAL(movstrSI12_i4))
   1.595 -+
   1.596 - #endif
   1.597 - 
   1.598 - #ifdef L_mulsi3
   1.599 - 
   1.600 - 
   1.601 - 	.global	GLOBAL(mulsi3)
   1.602 -+	FUNC(GLOBAL(mulsi3))
   1.603 - 
   1.604 - ! r4 =       aabb
   1.605 - ! r5 =       ccdd
   1.606 -@@ -869,7 +1002,7 @@
   1.607 - 	rts
   1.608 - 	add	r2,r0
   1.609 - 
   1.610 --
   1.611 -+	FUNC(GLOBAL(mulsi3))
   1.612 - #endif
   1.613 - #endif /* ! __SH5__ */
   1.614 - #ifdef L_sdivsi3_i4
   1.615 -@@ -879,6 +1012,7 @@
   1.616 - !! args in r4 and r5, result in fpul, clobber dr0, dr2
   1.617 - 
   1.618 - 	.global	GLOBAL(sdivsi3_i4)
   1.619 -+	FUNC(GLOBAL(sdivsi3_i4))
   1.620 - GLOBAL(sdivsi3_i4):
   1.621 - 	lds r4,fpul
   1.622 - 	float fpul,dr0
   1.623 -@@ -888,6 +1022,8 @@
   1.624 - 	rts
   1.625 - 	ftrc dr0,fpul
   1.626 - 
   1.627 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
   1.628 -+
   1.629 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
   1.630 - !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
   1.631 - 
   1.632 -@@ -896,6 +1032,7 @@
   1.633 - 	.mode	SHcompact
   1.634 - #endif
   1.635 - 	.global	GLOBAL(sdivsi3_i4)
   1.636 -+	FUNC(GLOBAL(sdivsi3_i4))
   1.637 - GLOBAL(sdivsi3_i4):
   1.638 - 	sts.l fpscr,@-r15
   1.639 - 	mov #8,r2
   1.640 -@@ -910,6 +1047,8 @@
   1.641 - 	rts
   1.642 - 	lds.l @r15+,fpscr
   1.643 - 
   1.644 -+	ENDFUNC(GLOBAL(sdivsi3_i4))
   1.645 -+
   1.646 - #endif /* ! __SH5__ || __SH5__ == 32 */
   1.647 - #endif /* ! __SH4__ */
   1.648 - #endif
   1.649 -@@ -924,9 +1063,10 @@
   1.650 - !!
   1.651 - !!
   1.652 - 
   1.653 --!! args in r4 and r5, result in r0 clobber r1,r2,r3
   1.654 -+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
   1.655 - 
   1.656 - 	.global	GLOBAL(sdivsi3)
   1.657 -+	FUNC(GLOBAL(sdivsi3))
   1.658 - #if __SHMEDIA__
   1.659 - #if __SH5__ == 32
   1.660 - 	.section	.text..SHmedia32,"ax"
   1.661 -@@ -1076,6 +1216,7 @@
   1.662 - div0:	rts
   1.663 - 	mov	#0,r0
   1.664 - 
   1.665 -+	ENDFUNC(GLOBAL(sdivsi3))
   1.666 - #endif /* ! __SHMEDIA__ */
   1.667 - #endif /* ! __SH4__ */
   1.668 - #endif
   1.669 -@@ -1084,9 +1225,11 @@
   1.670 - 	.title "SH DIVIDE"
   1.671 - !! 4 byte integer Divide code for the Hitachi SH
   1.672 - #ifdef __SH4__
   1.673 --!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
   1.674 -+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
   1.675 -+!! and t bit
   1.676 - 
   1.677 - 	.global	GLOBAL(udivsi3_i4)
   1.678 -+	FUNC(GLOBAL(udivsi3_i4))
   1.679 - GLOBAL(udivsi3_i4):
   1.680 - 	mov #1,r1
   1.681 - 	cmp/hi r1,r5
   1.682 -@@ -1127,6 +1270,8 @@
   1.683 - L1:
   1.684 - 	.double 2147483648
   1.685 - 
   1.686 -+	ENDFUNC(GLOBAL(udivsi3_i4))
   1.687 -+
   1.688 - #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
   1.689 - !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
   1.690 - 
   1.691 -@@ -1135,6 +1280,7 @@
   1.692 - 	.mode	SHcompact
   1.693 - #endif
   1.694 - 	.global	GLOBAL(udivsi3_i4)
   1.695 -+	FUNC(GLOBAL(udivsi3_i4))
   1.696 - GLOBAL(udivsi3_i4):
   1.697 - 	mov #1,r1
   1.698 - 	cmp/hi r1,r5
   1.699 -@@ -1183,6 +1329,8 @@
   1.700 - #endif
   1.701 - 	.double 2147483648
   1.702 - 
   1.703 -+	ENDFUNC(GLOBAL(udivsi3_i4))
   1.704 -+
   1.705 - #endif /* ! __SH5__ || __SH5__ == 32 */
   1.706 - #endif /* ! __SH4__ */
   1.707 - #endif
   1.708 -@@ -1199,6 +1347,7 @@
   1.709 - 
   1.710 - !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
   1.711 - 	.global	GLOBAL(udivsi3)
   1.712 -+	FUNC(GLOBAL(udivsi3))
   1.713 - 
   1.714 - #if __SHMEDIA__
   1.715 - #if __SH5__ == 32
   1.716 -@@ -1299,6 +1448,8 @@
   1.717 - ret:	rts
   1.718 - 	mov	r4,r0
   1.719 - 
   1.720 -+	ENDFUNC(GLOBAL(udivsi3))
   1.721 -+
   1.722 - #endif /* ! __SHMEDIA__ */
   1.723 - #endif /* __SH4__ */
   1.724 - #endif
   1.725 -@@ -1308,6 +1459,7 @@
   1.726 - 	.mode	SHcompact
   1.727 - #endif
   1.728 - 	.global GLOBAL(set_fpscr)
   1.729 -+	FUNC(GLOBAL(set_fpscr))
   1.730 - GLOBAL(set_fpscr):
   1.731 - 	lds r4,fpscr
   1.732 - 	mov.l LOCAL(set_fpscr_L1),r1
   1.733 -@@ -1340,11 +1492,16 @@
   1.734 - 	.align 2
   1.735 - LOCAL(set_fpscr_L1):
   1.736 - 	.long GLOBAL(fpscr_values)
   1.737 -+
   1.738 -+	ENDFUNC(GLOBAL(set_fpscr))
   1.739 -+
   1.740 -+#ifndef NO_FPSCR_VALUES
   1.741 - #ifdef __ELF__
   1.742 -         .comm   GLOBAL(fpscr_values),8,4
   1.743 - #else
   1.744 -         .comm   GLOBAL(fpscr_values),8
   1.745 - #endif /* ELF */
   1.746 -+#endif /* NO_FPSCR_VALUES */
   1.747 - #endif /* SH3E / SH4 */
   1.748 - #endif /* L_set_fpscr */
   1.749 - #ifdef L_ic_invalidate
   1.750 -@@ -1360,6 +1517,7 @@
   1.751 - 	blink	tr0, r63
   1.752 - #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
   1.753 - 	.global GLOBAL(ic_invalidate)
   1.754 -+	FUNC(GLOBAL(ic_invalidate))
   1.755 - GLOBAL(ic_invalidate):
   1.756 - 	ocbwb	@r4
   1.757 - 	mova	0f,r0
   1.758 -@@ -1382,6 +1540,9 @@
   1.759 - 	nop
   1.760 - 	.endr
   1.761 - 	.endr
   1.762 -+
   1.763 -+	ENDFUNC(GLOBAL(ic_invalidate))
   1.764 -+
   1.765 - #endif /* SH4 */
   1.766 - #endif /* L_ic_invalidate */
   1.767 - 
   1.768 -diff -ruN gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver gcc-20030210/gcc/config/sh/libgcc-glibc.ver
   1.769 ---- gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver	Thu Jan  1 09:00:00 1970
   1.770 -+++ gcc-20030210/gcc/config/sh/libgcc-glibc.ver	Sat Feb 22 01:40:14 2003
   1.771 -@@ -0,0 +1,21 @@
   1.772 -+# In order to work around the very problems that force us to now generally
   1.773 -+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
   1.774 -+# By now choosing the same version tags for these specific routines, we
   1.775 -+# maintain enough binary compatibility to allow future versions of glibc
   1.776 -+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
   1.777 -+
   1.778 -+# Note that we cannot use the default libgcc-glibc.ver file on sh,
   1.779 -+# because GLIBC_2.0 does not exist on this architecture, as the first 
   1.780 -+# ever glibc release on the platform was GLIBC_2.2.
   1.781 -+
   1.782 -+%inherit GCC_3.0 GLIBC_2.2
   1.783 -+GLIBC_2.2 {
   1.784 -+  __register_frame
   1.785 -+  __register_frame_table
   1.786 -+  __deregister_frame
   1.787 -+  __register_frame_info
   1.788 -+  __deregister_frame_info
   1.789 -+  __frame_state_for
   1.790 -+  __register_frame_info_table
   1.791 -+}
   1.792 -+
   1.793 -diff -ruN gcc-20030210.orig/gcc/config/sh/linux.h gcc-20030210/gcc/config/sh/linux.h
   1.794 ---- gcc-20030210.orig/gcc/config/sh/linux.h	Tue Apr 16 05:27:42 2002
   1.795 -+++ gcc-20030210/gcc/config/sh/linux.h	Sat Feb 22 01:40:14 2003
   1.796 -@@ -19,6 +19,10 @@
   1.797 - the Free Software Foundation, 59 Temple Place - Suite 330,
   1.798 - Boston, MA 02111-1307, USA.  */
   1.799 - 
   1.800 -+/* We're not SYSVR4, not having /usr/ccs */
   1.801 -+#undef MD_EXEC_PREFIX
   1.802 -+#undef MD_STARTFILE_PREFIX
   1.803 -+
   1.804 - /* Run-time Target Specification.  */
   1.805 - #undef TARGET_VERSION
   1.806 - #define TARGET_VERSION  fputs (" (SH GNU/Linux with ELF)", stderr);
   1.807 -@@ -39,6 +43,28 @@
   1.808 - #undef WCHAR_TYPE_SIZE
   1.809 - #define WCHAR_TYPE_SIZE BITS_PER_WORD
   1.810 - 
   1.811 -+/* This was defined in linux.h.  Define it here also. */
   1.812 -+#undef  DEFAULT_VTABLE_THUNKS
   1.813 -+#define DEFAULT_VTABLE_THUNKS   1
   1.814 -+
   1.815 -+/* Likewise.  */
   1.816 -+#define HANDLE_PRAGMA_PACK_PUSH_POP
   1.817 -+
   1.818 -+/* Pick up the return address upon entry to a procedure. Used for
   1.819 -+   dwarf2 unwind information.  This also enables the table driven
   1.820 -+   mechanism.  */
   1.821 -+
   1.822 -+#define INCOMING_RETURN_ADDR_RTX	gen_rtx_REG (Pmode, PR_REG)
   1.823 -+#define DWARF_FRAME_RETURN_COLUMN	DWARF_FRAME_REGNUM (PR_REG)
   1.824 -+
   1.825 -+#undef CPP_SPEC
   1.826 -+#define CPP_SPEC "\
   1.827 -+   %{m4:-D__SH4__} \
   1.828 -+   %{!m4:%(cpp_default_cpu_spec)} \
   1.829 -+   %(subtarget_cpp_spec) \
   1.830 -+   %(subtarget_cpp_ptr_spec) \
   1.831 -+   %(subtarget_cpp_endian_spec) "
   1.832 -+
   1.833 - #undef SUBTARGET_CPP_SPEC
   1.834 - #define SUBTARGET_CPP_SPEC "\
   1.835 -    %{fPIC:-D__PIC__ -D__pic__} \
   1.836 -@@ -55,36 +81,45 @@
   1.837 - #undef CPP_DEFAULT_CPU_SPEC
   1.838 - #define CPP_DEFAULT_CPU_SPEC "-D__SH3__ -D__sh3__"
   1.839 - 
   1.840 --
   1.841 - #undef CPP_PREDEFINES
   1.842 - #define CPP_PREDEFINES "-D__ELF__ -Dunix -D__sh__ -D__gnu_linux__ -Dlinux -Asystem=posix"
   1.843 - 
   1.844 -+/* The GNU C++ standard library requires that these macros be defined.  */
   1.845 -+#undef CPLUSPLUS_CPP_SPEC
   1.846 -+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
   1.847 -+
   1.848 - #undef ASM_SPEC
   1.849 --#define ASM_SPEC  "%{!mb:-little} %{mrelax:-relax}"
   1.850 -+#define ASM_SPEC  "%{mb:-big} %{!mb:-little} %{mrelax:-relax}"
   1.851 - 
   1.852 - #undef CC1_SPEC
   1.853 - #define CC1_SPEC \
   1.854 --  "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"
   1.855 --
   1.856 --#undef CC1PLUS_SPEC
   1.857 --#define CC1PLUS_SPEC \
   1.858 --  "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"
   1.859 -+  "-musermode %{!mb:-ml} %{!m4:-m3} %{profile:-p}"
   1.860 - 
   1.861 -+/* XXX: It's wrong if prefix != /usr */
   1.862 - #undef LINK_SPEC
   1.863 - #define LINK_SPEC \
   1.864 --  "%{!mb:-m shlelf_linux} %{mrelax:-relax} \
   1.865 -+  "%{!mb:-m shlelf_linux -EL} %{mb:-m shelf_linux -EB} %{mrelax:-relax} \
   1.866 -    %{shared:-shared} \
   1.867 -    %{!static: \
   1.868 -      %{rdynamic:-export-dynamic} \
   1.869 -      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
   1.870 --     %{!rpath:-rpath /lib}} \
   1.871 -+     %{!mb:%{!m4:-rpath-link /usr/sh-linux/lib }} \
   1.872 -+     %{!mb:%{m4:-rpath-link /usr/sh-linux/lib/m4 }} \
   1.873 -+     %{mb:%{!m4:-rpath-link /usr/sh-linux/lib/mb }} \
   1.874 -+     %{mb:%{m4:-rpath-link /usr/sh-linux/lib/mb/m4 }}} \
   1.875 -    %{static:-static}"
   1.876 - 
   1.877 - #undef LIB_SPEC
   1.878 -+#undef LIB_SPEC
   1.879 - #define LIB_SPEC \
   1.880 -   "%{shared: -lc} \
   1.881 --   %{!shared: %{pthread:-lthread} \
   1.882 --     %{profile:-lc_p} %{!profile: -lc}}"
   1.883 -+   %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
   1.884 -+	%{profile:-lc_p} %{!profile: -lc}}"
   1.885 -+
   1.886 -+#if defined(HAVE_LD_EH_FRAME_HDR)
   1.887 -+#undef LINK_EH_SPEC
   1.888 -+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
   1.889 -+#endif
   1.890 - 
   1.891 - #undef STARTFILE_SPEC
   1.892 - #define STARTFILE_SPEC \
   1.893 -@@ -92,4 +127,40 @@
   1.894 -      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
   1.895 - 		       %{!p:%{profile:gcrt1.o%s} \
   1.896 - 			 %{!profile:crt1.o%s}}}} \
   1.897 --   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
   1.898 -+   crti.o%s %{static:crtbeginT.o%s}\
   1.899 -+   %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"
   1.900 -+
   1.901 -+#undef FUNCTION_PROFILER
   1.902 -+#define FUNCTION_PROFILER(STREAM,LABELNO)				\
   1.903 -+do									\
   1.904 -+{									\
   1.905 -+  if (flag_pic)								\
   1.906 -+    {									\
   1.907 -+      fprintf (STREAM, "	mov.l	3f,r1\n");			\
   1.908 -+      fprintf (STREAM, "	mova	3f,r0\n");			\
   1.909 -+      fprintf (STREAM, "	add	r1,r0\n");			\
   1.910 -+      fprintf (STREAM, "	mov.l	1f,r1\n");			\
   1.911 -+      fprintf (STREAM, "	mov.l	@(r0,r1),r1\n");		\
   1.912 -+    }									\
   1.913 -+  else									\
   1.914 -+    {									\
   1.915 -+      fprintf (STREAM, "	mov.l	1f,r1\n");			\
   1.916 -+    }									\
   1.917 -+  fprintf (STREAM, "	sts.l	pr,@-r15\n");				\
   1.918 -+  fprintf (STREAM, "	mova	2f,r0\n");				\
   1.919 -+  fprintf (STREAM, "	jmp	@r1\n");				\
   1.920 -+  fprintf (STREAM, "	lds	r0,pr\n");				\
   1.921 -+  fprintf (STREAM, "	.align	2\n");					\
   1.922 -+  if (flag_pic)								\
   1.923 -+    {									\
   1.924 -+      fprintf (STREAM, "1:	.long	mcount@GOT\n");			\
   1.925 -+      fprintf (STREAM, "3:	.long	_GLOBAL_OFFSET_TABLE_\n");	\
   1.926 -+    }									\
   1.927 -+  else									\
   1.928 -+    {									\
   1.929 -+      fprintf (STREAM, "1:	.long	mcount\n");			\
   1.930 -+    }									\
   1.931 -+  fprintf (STREAM, "2:	lds.l	@r15+,pr\n");				\
   1.932 -+} while (0)
   1.933 -+
   1.934 -+#define NO_SHARED_LIBGCC_MULTILIB
   1.935 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh-protos.h gcc-20030210/gcc/config/sh/sh-protos.h
   1.936 ---- gcc-20030210.orig/gcc/config/sh/sh-protos.h	Fri Feb 22 01:42:28 2002
   1.937 -+++ gcc-20030210/gcc/config/sh/sh-protos.h	Sat Feb 22 01:40:14 2003
   1.938 -@@ -74,6 +74,7 @@
   1.939 - extern int shl_sext_length PARAMS ((rtx));
   1.940 - extern int gen_shl_sext PARAMS ((rtx, rtx, rtx, rtx));
   1.941 - extern rtx gen_datalabel_ref PARAMS ((rtx));
   1.942 -+extern int shl_casesi_worker_length PARAMS ((rtx));
   1.943 - extern int regs_used PARAMS ((rtx, int));
   1.944 - extern void fixup_addr_diff_vecs PARAMS ((rtx));
   1.945 - extern int get_dest_uid PARAMS ((rtx, int));
   1.946 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh.c gcc-20030210/gcc/config/sh/sh.c
   1.947 ---- gcc-20030210.orig/gcc/config/sh/sh.c	Fri Feb 22 01:42:28 2002
   1.948 -+++ gcc-20030210/gcc/config/sh/sh.c	Sat Feb 22 01:40:14 2003
   1.949 -@@ -2143,6 +2143,48 @@
   1.950 -   return sym;
   1.951 - }
   1.952 - 
   1.953 -+
   1.954 -+/* Function to be used in the length attribute of the casesi_worker
   1.955 -+   instruction.  Returns number of instructions, which is half of the
   1.956 -+   length of bytes. */
   1.957 -+
   1.958 -+int
   1.959 -+shl_casesi_worker_length (insn)
   1.960 -+     rtx insn;
   1.961 -+{
   1.962 -+  rtx set_src, label;
   1.963 -+  rtx diff_vec;
   1.964 -+
   1.965 -+  set_src = SET_SRC (XVECEXP (PATTERN (insn), 0, 0));
   1.966 -+  if (!(GET_CODE (set_src) == UNSPEC
   1.967 -+	&& XINT (set_src, 1) == UNSPEC_CASESI))
   1.968 -+    abort ();
   1.969 -+
   1.970 -+  label = XVECEXP (set_src, 0, 2);
   1.971 -+  if (GET_CODE (label) != LABEL_REF)
   1.972 -+    abort ();
   1.973 -+
   1.974 -+  diff_vec = PATTERN (next_real_insn (XEXP (label, 0)));
   1.975 -+
   1.976 -+  if (GET_CODE (diff_vec) != ADDR_DIFF_VEC)
   1.977 -+    abort ();
   1.978 -+
   1.979 -+  switch (GET_MODE (diff_vec))
   1.980 -+    {
   1.981 -+    case SImode:
   1.982 -+      return 2;
   1.983 -+    case HImode:
   1.984 -+      if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
   1.985 -+	return 3;
   1.986 -+      return 2;
   1.987 -+    case QImode:
   1.988 -+      if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
   1.989 -+	return 2;
   1.990 -+      return 1;
   1.991 -+    default:
   1.992 -+      abort ();
   1.993 -+    }
   1.994 -+}
   1.995 - 
   1.996 - /* The SH cannot load a large constant into a register, constants have to
   1.997 -    come from a pc relative load.  The reference of a pc relative load
   1.998 -@@ -3190,7 +3232,7 @@
   1.999 -       vec_lab = XEXP (XEXP (pat, 0), 0);
  1.1000 - 
  1.1001 -       /* Search the matching casesi_jump_2.  */
  1.1002 --      for (prev = vec_lab; ; prev = PREV_INSN (prev))
  1.1003 -+      for (prev = vec_lab; prev; prev = PREV_INSN (prev))
  1.1004 - 	{
  1.1005 - 	  if (GET_CODE (prev) != JUMP_INSN)
  1.1006 - 	    continue;
  1.1007 -@@ -3205,6 +3247,13 @@
  1.1008 - 	    break;
  1.1009 - 	}
  1.1010 - 
  1.1011 -+      if (prev == NULL)
  1.1012 -+	{			/* Switch statement has been optimized out.  */
  1.1013 -+	  delete_insn (PREV_INSN (insn));
  1.1014 -+	  delete_insn (insn);
  1.1015 -+	  continue;
  1.1016 -+	}
  1.1017 -+
  1.1018 -       /* Emit the reference label of the braf where it belongs, right after
  1.1019 - 	 the casesi_jump_2 (i.e. braf).  */
  1.1020 -       braf_label = XEXP (XEXP (SET_SRC (XVECEXP (prevpat, 0, 0)), 1), 0);
  1.1021 -@@ -3223,7 +3272,7 @@
  1.1022 -      rtx barrier_or_label;
  1.1023 - {
  1.1024 -   rtx next = next_real_insn (barrier_or_label), pat, prev;
  1.1025 --  int slot, credit, jump_to_next;
  1.1026 -+  int slot, credit, jump_to_next = 0;
  1.1027 -  
  1.1028 -   if (! next)
  1.1029 -     return 0;
  1.1030 -@@ -4507,7 +4556,8 @@
  1.1031 -   if (current_function_varargs || current_function_stdarg)
  1.1032 -     {
  1.1033 -       /* This is not used by the SH3E calling convention  */
  1.1034 --      if (TARGET_SH1 && ! TARGET_SH3E && ! TARGET_SH5 && ! TARGET_HITACHI)
  1.1035 -+      if (TARGET_SH1 && ! TARGET_SH3E && ! TARGET_SH5 && ! TARGET_HITACHI
  1.1036 -+	  || TARGET_NO_IMPLICIT_FP)
  1.1037 - 	{
  1.1038 - 	  /* Push arg regs as if they'd been provided by caller in stack.  */
  1.1039 - 	  for (i = 0; i < NPARM_REGS(SImode); i++)
  1.1040 -@@ -5149,7 +5199,8 @@
  1.1041 -   tree f_next_o, f_next_o_limit, f_next_fp, f_next_fp_limit, f_next_stack;
  1.1042 -   tree record;
  1.1043 - 
  1.1044 --  if (TARGET_SH5 || (! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI)
  1.1045 -+  if (TARGET_SH5 || (! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI
  1.1046 -+      || TARGET_NO_IMPLICIT_FP)
  1.1047 -     return ptr_type_node;
  1.1048 - 
  1.1049 -   record = make_node (RECORD_TYPE);
  1.1050 -@@ -5211,7 +5262,8 @@
  1.1051 -       return;
  1.1052 -     }
  1.1053 - 
  1.1054 --  if ((! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI)
  1.1055 -+  if ((! TARGET_SH3E && ! TARGET_SH4)
  1.1056 -+      || TARGET_HITACHI || TARGET_NO_IMPLICIT_FP)
  1.1057 -     {
  1.1058 -       std_expand_builtin_va_start (stdarg_p, valist, nextarg);
  1.1059 -       return;
  1.1060 -@@ -5289,7 +5341,8 @@
  1.1061 -   rsize = (size + UNITS_PER_WORD - 1) & -UNITS_PER_WORD;
  1.1062 -   pptr_type_node = build_pointer_type (ptr_type_node);
  1.1063 - 
  1.1064 --  if (! TARGET_SH5 && (TARGET_SH3E || TARGET_SH4) && ! TARGET_HITACHI)
  1.1065 -+  if (! TARGET_SH5 && (TARGET_SH3E || TARGET_SH4)
  1.1066 -+      && ! TARGET_HITACHI && ! TARGET_NO_IMPLICIT_FP)
  1.1067 -     {
  1.1068 -       tree f_next_o, f_next_o_limit, f_next_fp, f_next_fp_limit, f_next_stack;
  1.1069 -       tree next_o, next_o_limit, next_fp, next_fp_limit, next_stack;
  1.1070 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh.h gcc-20030210/gcc/config/sh/sh.h
  1.1071 ---- gcc-20030210.orig/gcc/config/sh/sh.h	Fri Feb 22 01:42:28 2002
  1.1072 -+++ gcc-20030210/gcc/config/sh/sh.h	Sat Feb 22 01:40:14 2003
  1.1073 -@@ -147,10 +147,10 @@
  1.1074 - #define HARD_SH4_BIT	(1<<5)
  1.1075 - #define FPU_SINGLE_BIT	(1<<7)
  1.1076 - #define SH4_BIT	       	(1<<12)
  1.1077 -+#define NO_IMPLICIT_FP_BIT	(1<<3)
  1.1078 - #define FMOVD_BIT	(1<<4)
  1.1079 - #define SH5_BIT		(1<<0)
  1.1080 - #define SPACE_BIT 	(1<<13)
  1.1081 --#define BIGTABLE_BIT  	(1<<14)
  1.1082 - #define RELAX_BIT	(1<<15)
  1.1083 - #define USERMODE_BIT	(1<<16)
  1.1084 - #define HITACHI_BIT     (1<<22)
  1.1085 -@@ -205,6 +205,9 @@
  1.1086 - /* Nonzero if we should generate code for a SH5 CPU (either ISA).  */
  1.1087 - #define TARGET_SH5 (target_flags & SH5_BIT)
  1.1088 - 
  1.1089 -+/* Nonzero if we should not use FPU implicitly.  */
  1.1090 -+#define TARGET_NO_IMPLICIT_FP (target_flags & NO_IMPLICIT_FP_BIT)
  1.1091 -+
  1.1092 - /* Nonzero if we should generate code using the SHcompact instruction
  1.1093 -    set and 32-bit ABI.  */
  1.1094 - #define TARGET_SHCOMPACT (TARGET_SH5 && TARGET_SH1)
  1.1095 -@@ -225,6 +228,7 @@
  1.1096 - 
  1.1097 - /* Nonzero if we should generate code using SHmedia FPU instructions.  */
  1.1098 - #define TARGET_SHMEDIA_FPU (TARGET_SHMEDIA && TARGET_FPU_DOUBLE)
  1.1099 -+
  1.1100 - /* Nonzero if we should generate fmovd.  */
  1.1101 - #define TARGET_FMOVD (target_flags & FMOVD_BIT)
  1.1102 - 
  1.1103 -@@ -234,9 +238,6 @@
  1.1104 - /* Nonzero if we should generate smaller code rather than faster code.  */
  1.1105 - #define TARGET_SMALLCODE   (target_flags & SPACE_BIT)
  1.1106 - 
  1.1107 --/* Nonzero to use long jump tables.  */
  1.1108 --#define TARGET_BIGTABLE     (target_flags & BIGTABLE_BIT)
  1.1109 --
  1.1110 - /* Nonzero to generate pseudo-ops needed by the assembler and linker
  1.1111 -    to do function call relaxing.  */
  1.1112 - #define TARGET_RELAX (target_flags & RELAX_BIT)
  1.1113 -@@ -297,7 +298,6 @@
  1.1114 -   {"5-compact-nofpu", TARGET_NONE, "" },	\
  1.1115 -   {"5-compact-nofpu", SH5_BIT|SH3_BIT|SH2_BIT|SH1_BIT, "Generate FPU-less SHcompact code" }, \
  1.1116 -   {"b",		-LITTLE_ENDIAN_BIT, "" },  	\
  1.1117 --  {"bigtable", 	BIGTABLE_BIT, "" },		\
  1.1118 -   {"dalign",  	DALIGN_BIT, "" },		\
  1.1119 -   {"fmovd",  	FMOVD_BIT, "" },		\
  1.1120 -   {"hitachi",	HITACHI_BIT, "" },		\
  1.1121 -@@ -306,6 +306,7 @@
  1.1122 -   {"isize", 	ISIZE_BIT, "" },		\
  1.1123 -   {"l",		LITTLE_ENDIAN_BIT, "" },  	\
  1.1124 -   {"no-ieee",  	-IEEE_BIT, "" },		\
  1.1125 -+  {"no-implicit-fp", NO_IMPLICIT_FP_BIT, "" },	\
  1.1126 -   {"padstruct", PADSTRUCT_BIT, "" },    	\
  1.1127 -   {"prefergot",	PREFERGOT_BIT, "" },		\
  1.1128 -   {"relax",	RELAX_BIT, "" },		\
  1.1129 -@@ -2493,16 +2494,22 @@
  1.1130 -     goto LABEL;								\
  1.1131 - }
  1.1132 - 
  1.1133 -+extern int optimize; /* needed for gen_casesi.  */
  1.1134 -+extern int optimize_size;
  1.1135 -+
  1.1136 - /* Specify the machine mode that this machine uses
  1.1137 -    for the index in the tablejump instruction.  */
  1.1138 --#define CASE_VECTOR_MODE (TARGET_BIGTABLE ? SImode : HImode)
  1.1139 -+#define CASE_VECTOR_MODE SImode
  1.1140 - 
  1.1141 - #define CASE_VECTOR_SHORTEN_MODE(MIN_OFFSET, MAX_OFFSET, BODY) \
  1.1142 - ((MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 127 \
  1.1143 -  ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, QImode) \
  1.1144 -  : (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 255 \
  1.1145 -  ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, QImode) \
  1.1146 -- : (MIN_OFFSET) >= -32768 && (MAX_OFFSET) <= 32767 ? HImode \
  1.1147 -+ : (MIN_OFFSET) >= -32768 && (MAX_OFFSET) <= 32767 \
  1.1148 -+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, HImode) \
  1.1149 -+ : optimize_size && (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 65535 \
  1.1150 -+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, HImode) \
  1.1151 -  : SImode)
  1.1152 - 
  1.1153 - /* Define as C expression which evaluates to nonzero if the tablejump
  1.1154 -@@ -3038,10 +3045,7 @@
  1.1155 - /* Output an absolute table element.  */
  1.1156 - 
  1.1157 - #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,VALUE)  				\
  1.1158 --  if (TARGET_BIGTABLE) 							\
  1.1159 --    asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE)); 			\
  1.1160 --  else									\
  1.1161 --    asm_fprintf ((STREAM), "\t.word\t%LL%d\n", (VALUE)); 			\
  1.1162 -+    asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE))
  1.1163 - 
  1.1164 - /* Output various types of constants.  */
  1.1165 - 
  1.1166 -@@ -3167,8 +3171,6 @@
  1.1167 - #define sh_cpu_attr ((enum attr_cpu)sh_cpu)
  1.1168 - extern enum processor_type sh_cpu;
  1.1169 - 
  1.1170 --extern int optimize; /* needed for gen_casesi.  */
  1.1171 --
  1.1172 - enum mdep_reorg_phase_e
  1.1173 - {
  1.1174 -   SH_BEFORE_MDEP_REORG,
  1.1175 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh.md gcc-20030210/gcc/config/sh/sh.md
  1.1176 ---- gcc-20030210.orig/gcc/config/sh/sh.md	Sat Nov 23 04:58:06 2002
  1.1177 -+++ gcc-20030210/gcc/config/sh/sh.md	Sat Feb 22 01:40:14 2003
  1.1178 -@@ -1242,7 +1242,7 @@
  1.1179 -    (clobber (reg:SI PR_REG))
  1.1180 -    (clobber (reg:SI R4_REG))
  1.1181 -    (use (match_operand:SI 1 "arith_reg_operand" "r"))]
  1.1182 --  "TARGET_SH1 && ! TARGET_SH4"
  1.1183 -+  "TARGET_SH1 && ! TARGET_SH4 || TARGET_NO_IMPLICIT_FP"
  1.1184 -   "jsr	@%1%#"
  1.1185 -   [(set_attr "type" "sfunc")
  1.1186 -    (set_attr "needs_delay_slot" "yes")])
  1.1187 -@@ -1336,7 +1336,7 @@
  1.1188 - 
  1.1189 -   operands[3] = gen_reg_rtx (Pmode);
  1.1190 -   /* Emit the move of the address to a pseudo outside of the libcall.  */
  1.1191 --  if (TARGET_HARD_SH4 && TARGET_SH3E)
  1.1192 -+  if (TARGET_HARD_SH4 && TARGET_SH3E && !TARGET_NO_IMPLICIT_FP)
  1.1193 -     {
  1.1194 -       emit_move_insn (operands[3],
  1.1195 - 		      gen_rtx_SYMBOL_REF (SImode, \"__udivsi3_i4\"));
  1.1196 -@@ -1391,7 +1391,7 @@
  1.1197 -    (clobber (reg:SI R2_REG))
  1.1198 -    (clobber (reg:SI R3_REG))
  1.1199 -    (use (match_operand:SI 1 "arith_reg_operand" "r"))]
  1.1200 --  "TARGET_SH1 && ! TARGET_SH4"
  1.1201 -+  "TARGET_SH1 && ! TARGET_SH4 || TARGET_NO_IMPLICIT_FP"
  1.1202 -   "jsr	@%1%#"
  1.1203 -   [(set_attr "type" "sfunc")
  1.1204 -    (set_attr "needs_delay_slot" "yes")])
  1.1205 -@@ -1476,7 +1476,7 @@
  1.1206 - 
  1.1207 -   operands[3] = gen_reg_rtx (Pmode);
  1.1208 -   /* Emit the move of the address to a pseudo outside of the libcall.  */
  1.1209 --  if (TARGET_HARD_SH4 && TARGET_SH3E)
  1.1210 -+  if (TARGET_HARD_SH4 && TARGET_SH3E && !TARGET_NO_IMPLICIT_FP)
  1.1211 -     {
  1.1212 -       emit_move_insn (operands[3],
  1.1213 - 		      gen_rtx_SYMBOL_REF (SImode, \"__sdivsi3_i4\"));
  1.1214 -@@ -6446,6 +6446,8 @@
  1.1215 -     case SImode:
  1.1216 -       return \"shll2	%1\;mov.l	@(r0,%1),%0\";
  1.1217 -     case HImode:
  1.1218 -+      if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
  1.1219 -+	return \"add	%1,%1\;mov.w	@(r0,%1),%0\;extu.w	%0,%0\";
  1.1220 -       return \"add	%1,%1\;mov.w	@(r0,%1),%0\";
  1.1221 -     case QImode:
  1.1222 -       if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
  1.1223 -@@ -6455,7 +6457,15 @@
  1.1224 -       abort ();
  1.1225 -     }
  1.1226 - }"
  1.1227 --  [(set_attr "length" "4")])
  1.1228 -+  [(set (attr "length")
  1.1229 -+	(cond [(eq (symbol_ref "shl_casesi_worker_length (insn)") (const_int 1))
  1.1230 -+	       (const_string "2")
  1.1231 -+	       (eq (symbol_ref "shl_casesi_worker_length (insn)") (const_int 2))
  1.1232 -+	       (const_string "4")
  1.1233 -+	       ;; Put "match_dup" here so that insn_variable_length_p return 1.
  1.1234 -+	       (ne (match_dup 2) (match_dup 2))
  1.1235 -+	       (const_string "4")]
  1.1236 -+	      (const_string "6")))])
  1.1237 - 
  1.1238 - (define_insn "casesi_shift_media"
  1.1239 -   [(set (match_operand 0 "arith_reg_operand" "=r")
  1.1240 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh3-linux.h gcc-20030210/gcc/config/sh/sh3-linux.h
  1.1241 ---- gcc-20030210.orig/gcc/config/sh/sh3-linux.h	Thu Jan  1 09:00:00 1970
  1.1242 -+++ gcc-20030210/gcc/config/sh/sh3-linux.h	Sat Feb 22 01:40:14 2003
  1.1243 -@@ -0,0 +1,29 @@
  1.1244 -+#undef TARGET_VERSION
  1.1245 -+#define TARGET_VERSION  fputs (" (SH3 GNU/Linux with ELF)", stderr);
  1.1246 -+
  1.1247 -+#undef CPP_SPEC
  1.1248 -+#define CPP_SPEC \
  1.1249 -+  "-D__LITTLE_ENDIAN__ \
  1.1250 -+   -D__SH3__ -D__sh3__ \
  1.1251 -+   -D__SIZE_TYPE__=unsigned\\ int \
  1.1252 -+   -D__PTRDIFF_TYPE__=int \
  1.1253 -+   %{fPIC:-D__PIC__ -D__pic__} \
  1.1254 -+   %{fpic:-D__PIC__ -D__pic__} \
  1.1255 -+   %{posix:-D_POSIX_SOURCE} \
  1.1256 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
  1.1257 -+
  1.1258 -+#undef ASM_SPEC
  1.1259 -+#define ASM_SPEC  "%{mrelax:-relax}"
  1.1260 -+
  1.1261 -+#undef CC1_SPEC
  1.1262 -+#define CC1_SPEC \
  1.1263 -+  "-musermode -ml -m3 %{profile:-p}"
  1.1264 -+
  1.1265 -+#undef LINK_SPEC
  1.1266 -+#define LINK_SPEC \
  1.1267 -+  "%{mrelax:-relax} \
  1.1268 -+   %{shared:-shared} \
  1.1269 -+   %{!static: \
  1.1270 -+     %{rdynamic:-export-dynamic} \
  1.1271 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
  1.1272 -+    %{static:-static}"
  1.1273 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh3eb-linux.h gcc-20030210/gcc/config/sh/sh3eb-linux.h
  1.1274 ---- gcc-20030210.orig/gcc/config/sh/sh3eb-linux.h	Thu Jan  1 09:00:00 1970
  1.1275 -+++ gcc-20030210/gcc/config/sh/sh3eb-linux.h	Sat Feb 22 01:40:14 2003
  1.1276 -@@ -0,0 +1,29 @@
  1.1277 -+#undef TARGET_VERSION
  1.1278 -+#define TARGET_VERSION  fputs (" (SH3EB GNU/Linux with ELF)", stderr);
  1.1279 -+
  1.1280 -+#undef CPP_SPEC
  1.1281 -+#define CPP_SPEC \
  1.1282 -+  "-D__BIG_ENDIAN__ \
  1.1283 -+   -D__SH3__ -D__sh3__ \
  1.1284 -+   -D__SIZE_TYPE__=unsigned\\ int \
  1.1285 -+   -D__PTRDIFF_TYPE__=int \
  1.1286 -+   %{fPIC:-D__PIC__ -D__pic__} \
  1.1287 -+   %{fpic:-D__PIC__ -D__pic__} \
  1.1288 -+   %{posix:-D_POSIX_SOURCE} \
  1.1289 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
  1.1290 -+
  1.1291 -+#undef ASM_SPEC
  1.1292 -+#define ASM_SPEC  "%{mrelax:-relax}"
  1.1293 -+
  1.1294 -+#undef CC1_SPEC
  1.1295 -+#define CC1_SPEC \
  1.1296 -+  "-musermode -mb -m3 %{profile:-p}"
  1.1297 -+
  1.1298 -+#undef LINK_SPEC
  1.1299 -+#define LINK_SPEC \
  1.1300 -+  "%{mrelax:-relax} \
  1.1301 -+   %{shared:-shared} \
  1.1302 -+   %{!static: \
  1.1303 -+     %{rdynamic:-export-dynamic} \
  1.1304 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
  1.1305 -+    %{static:-static}"
  1.1306 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh4-linux.h gcc-20030210/gcc/config/sh/sh4-linux.h
  1.1307 ---- gcc-20030210.orig/gcc/config/sh/sh4-linux.h	Thu Jan  1 09:00:00 1970
  1.1308 -+++ gcc-20030210/gcc/config/sh/sh4-linux.h	Sat Feb 22 01:40:14 2003
  1.1309 -@@ -0,0 +1,29 @@
  1.1310 -+#undef TARGET_VERSION
  1.1311 -+#define TARGET_VERSION  fputs (" (SH4 GNU/Linux with ELF)", stderr);
  1.1312 -+
  1.1313 -+#undef CPP_SPEC
  1.1314 -+#define CPP_SPEC \
  1.1315 -+  "-D__LITTLE_ENDIAN__ \
  1.1316 -+   -D__SH4__ \
  1.1317 -+   -D__SIZE_TYPE__=unsigned\\ int \
  1.1318 -+   -D__PTRDIFF_TYPE__=int \
  1.1319 -+   %{fPIC:-D__PIC__ -D__pic__} \
  1.1320 -+   %{fpic:-D__PIC__ -D__pic__} \
  1.1321 -+   %{posix:-D_POSIX_SOURCE} \
  1.1322 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
  1.1323 -+
  1.1324 -+#undef ASM_SPEC
  1.1325 -+#define ASM_SPEC  "%{mrelax:-relax}"
  1.1326 -+
  1.1327 -+#undef CC1_SPEC
  1.1328 -+#define CC1_SPEC \
  1.1329 -+  "-musermode -ml -m4 %{profile:-p}"
  1.1330 -+
  1.1331 -+#undef LINK_SPEC
  1.1332 -+#define LINK_SPEC \
  1.1333 -+  "%{mrelax:-relax} \
  1.1334 -+   %{shared:-shared} \
  1.1335 -+   %{!static: \
  1.1336 -+     %{rdynamic:-export-dynamic} \
  1.1337 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
  1.1338 -+    %{static:-static}"
  1.1339 -diff -ruN gcc-20030210.orig/gcc/config/sh/sh4eb-linux.h gcc-20030210/gcc/config/sh/sh4eb-linux.h
  1.1340 ---- gcc-20030210.orig/gcc/config/sh/sh4eb-linux.h	Thu Jan  1 09:00:00 1970
  1.1341 -+++ gcc-20030210/gcc/config/sh/sh4eb-linux.h	Sat Feb 22 01:40:14 2003
  1.1342 -@@ -0,0 +1,29 @@
  1.1343 -+#undef TARGET_VERSION
  1.1344 -+#define TARGET_VERSION  fputs (" (SH4EB GNU/Linux with ELF)", stderr);
  1.1345 -+
  1.1346 -+#undef CPP_SPEC
  1.1347 -+#define CPP_SPEC \
  1.1348 -+  "-D__BIG_ENDIAN__ \
  1.1349 -+   -D__SH4__ \
  1.1350 -+   -D__SIZE_TYPE__=unsigned\\ int \
  1.1351 -+   -D__PTRDIFF_TYPE__=int \
  1.1352 -+   %{fPIC:-D__PIC__ -D__pic__} \
  1.1353 -+   %{fpic:-D__PIC__ -D__pic__} \
  1.1354 -+   %{posix:-D_POSIX_SOURCE} \
  1.1355 -+   %{pthread:-D_REENTRANT -D_PTHREADS}"
  1.1356 -+
  1.1357 -+#undef ASM_SPEC
  1.1358 -+#define ASM_SPEC  "%{mrelax:-relax}"
  1.1359 -+
  1.1360 -+#undef CC1_SPEC
  1.1361 -+#define CC1_SPEC \
  1.1362 -+  "-musermode -mb -m4 %{profile:-p}"
  1.1363 -+
  1.1364 -+#undef LINK_SPEC
  1.1365 -+#define LINK_SPEC \
  1.1366 -+  "%{mrelax:-relax} \
  1.1367 -+   %{shared:-shared} \
  1.1368 -+   %{!static: \
  1.1369 -+     %{rdynamic:-export-dynamic} \
  1.1370 -+     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
  1.1371 -+    %{static:-static}"
  1.1372 -diff -ruN gcc-20030210.orig/gcc/config/sh/t-linux gcc-20030210/gcc/config/sh/t-linux
  1.1373 ---- gcc-20030210.orig/gcc/config/sh/t-linux	Thu May 17 12:16:12 2001
  1.1374 -+++ gcc-20030210/gcc/config/sh/t-linux	Sat Feb 22 01:40:14 2003
  1.1375 -@@ -1,10 +1,20 @@
  1.1376 --TARGET_LIBGCC2_CFLAGS = -fpic
  1.1377 -+TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES
  1.1378 -+LIBGCC1 = libgcc1-asm.a
  1.1379 -+CROSS_LIBGCC1 = libgcc1-asm.a
  1.1380 -+LIBGCC1_TEST = libgcc1-test
  1.1381 - LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movstr \
  1.1382 -   _movstr_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
  1.1383 -   _ic_invalidate
  1.1384 -+LIB2ADDEH = $(srcdir)/unwind-sjlj.c
  1.1385 -+LIB2ADDEHDEP = unwind.inc unwind-sjlj.c
  1.1386 - 
  1.1387 --MULTILIB_OPTIONS= mb m3e/m4
  1.1388 -+MULTILIB_OPTIONS= mb m4
  1.1389 - MULTILIB_DIRNAMES= 
  1.1390 - MULTILIB_MATCHES = 
  1.1391 - 
  1.1392 --EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
  1.1393 -+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
  1.1394 -+
  1.1395 -+# Override t-slibgcc-elf-ver to export some libgcc symbols with
  1.1396 -+# the symbol versions that glibc used and SH specific.
  1.1397 -+SHLIB_MAPFILES =  $(srcdir)/libgcc-std.ver \
  1.1398 -+		  $(srcdir)/config/sh/libgcc-glibc.ver
  1.1399 -diff -ruN gcc-20030210.orig/gcc/config/sh/t-linux-nomulti gcc-20030210/gcc/config/sh/t-linux-nomulti
  1.1400 ---- gcc-20030210.orig/gcc/config/sh/t-linux-nomulti	Thu Jan  1 09:00:00 1970
  1.1401 -+++ gcc-20030210/gcc/config/sh/t-linux-nomulti	Sat Feb 22 01:40:14 2003
  1.1402 -@@ -0,0 +1,9 @@
  1.1403 -+LIBGCC = libgcc.a
  1.1404 -+EXTRA_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o
  1.1405 -+
  1.1406 -+INSTALL_LIBGCC = install-libgcc
  1.1407 -+
  1.1408 -+MULTILIB_OPTIONS=
  1.1409 -+MULTILIB_DIRNAMES= 
  1.1410 -+MULTILIB_MATCHES = 
  1.1411 -+EXTRA_MULTILIB_PARTS=
  1.1412 -diff -ruN gcc-20030210.orig/gcc/config.gcc gcc-20030210/gcc/config.gcc
  1.1413 ---- gcc-20030210.orig/gcc/config.gcc	Fri Jan 31 19:17:13 2003
  1.1414 -+++ gcc-20030210/gcc/config.gcc	Sat Feb 22 01:40:14 2003
  1.1415 -@@ -337,9 +337,9 @@
  1.1416 - sparc*-*-*)
  1.1417 - 	cpu_type=sparc
  1.1418 - 	;;
  1.1419 --sh64-*-*)
  1.1420 --	cpu_type=sh
  1.1421 --	;;
  1.1422 -+sh*-*-*)
  1.1423 -+ 	cpu_type=sh
  1.1424 -+ 	;;
  1.1425 - esac
  1.1426 - 
  1.1427 - tm_file=${cpu_type}/${cpu_type}.h
  1.1428 -@@ -3018,9 +3018,31 @@
  1.1429 - 	  thread_file='rtems'
  1.1430 - 	fi
  1.1431 - 	;;
  1.1432 --sh-*-linux*)
  1.1433 -+sh*-*-linux*)
  1.1434 - 	tm_file="${tm_file} sh/elf.h sh/linux.h"
  1.1435 --	tmake_file="sh/t-sh sh/t-elf sh/t-linux"
  1.1436 -+	tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux sh/t-linux"
  1.1437 -+	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
  1.1438 -+	case $machine in
  1.1439 -+		sh3eb-*)
  1.1440 -+			tm_file="${tm_file} sh/sh3eb-linux.h"
  1.1441 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
  1.1442 -+			;;
  1.1443 -+		sh4eb-*)
  1.1444 -+			tm_file="${tm_file} sh/sh4eb-linux.h"
  1.1445 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
  1.1446 -+			;;
  1.1447 -+		sh3-*)
  1.1448 -+			tm_file="${tm_file} sh/sh3-linux.h"
  1.1449 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
  1.1450 -+			;;
  1.1451 -+		sh4-*)
  1.1452 -+			tm_file="${tm_file} sh/sh4-linux.h"
  1.1453 -+			tmake_file="${tmake_file} sh/t-linux-nomulti"
  1.1454 -+			;;
  1.1455 -+		*)
  1.1456 -+			;;
  1.1457 -+	esac
  1.1458 -+	xmake_file=x-linux
  1.1459 - 	gas=yes gnu_ld=yes
  1.1460 - 	float_format=sh
  1.1461 - 	;;
  1.1462 -diff -ruN gcc-20030210.orig/gcc/dwarf2out.c gcc-20030210/gcc/dwarf2out.c
  1.1463 ---- gcc-20030210.orig/gcc/dwarf2out.c	Mon Feb 10 19:36:25 2003
  1.1464 -+++ gcc-20030210/gcc/dwarf2out.c	Sat Feb 22 01:40:14 2003
  1.1465 -@@ -10224,7 +10224,9 @@
  1.1466 - 	  /* We can have a normal definition following an inline one in the
  1.1467 - 	     case of redefinition of GNU C extern inlines.
  1.1468 - 	     It seems reasonable to use AT_specification in this case.  */
  1.1469 --	  && !get_AT_unsigned (old_die, DW_AT_inline))
  1.1470 -+	  && !get_AT_unsigned (old_die, DW_AT_inline)
  1.1471 -+	  /* Skip the nested function.  */
  1.1472 -+	  && !decl_function_context (decl))
  1.1473 - 	{
  1.1474 - 	  /* ??? This can happen if there is a bug in the program, for
  1.1475 - 	     instance, if it has duplicate function definitions.  Ideally,
  1.1476 -diff -ruN gcc-20030210.orig/gcc/final.c gcc-20030210/gcc/final.c
  1.1477 ---- gcc-20030210.orig/gcc/final.c	Fri Jan 31 19:17:20 2003
  1.1478 -+++ gcc-20030210/gcc/final.c	Sat Feb 22 01:40:14 2003
  1.1479 -@@ -1128,7 +1128,7 @@
  1.1480 - 	    }
  1.1481 - 	}
  1.1482 - 
  1.1483 --      INSN_ADDRESSES (uid) = insn_current_address;
  1.1484 -+      INSN_ADDRESSES (uid) = insn_current_address + insn_lengths[uid];
  1.1485 - 
  1.1486 -       if (GET_CODE (insn) == NOTE || GET_CODE (insn) == BARRIER
  1.1487 - 	  || GET_CODE (insn) == CODE_LABEL)
  1.1488 -diff -ruN gcc-20030210.orig/gcc/mkmap-symver.awk gcc-20030210/gcc/mkmap-symver.awk
  1.1489 ---- gcc-20030210.orig/gcc/mkmap-symver.awk	Fri Jan 31 19:17:26 2003
  1.1490 -+++ gcc-20030210/gcc/mkmap-symver.awk	Sat Feb 22 01:40:14 2003
  1.1491 -@@ -89,7 +89,11 @@
  1.1492 -     output(inherit[lib]);
  1.1493 - 
  1.1494 -   printf("%s {\n", lib);
  1.1495 --  printf("  global:\n");
  1.1496 -+  for (sym in ver)
  1.1497 -+    if ((ver[sym] == lib) && (sym in def))
  1.1498 -+      count++;
  1.1499 -+  if (count > 0)
  1.1500 -+    printf("  global:\n");
  1.1501 -   for (sym in ver)
  1.1502 -     if ((ver[sym] == lib) && (sym in def))
  1.1503 -       {
  1.1504 -diff -ruN gcc-20030210.orig/gcc/reload1.c gcc-20030210/gcc/reload1.c
  1.1505 ---- gcc-20030210.orig/gcc/reload1.c	Fri Jan 31 19:17:29 2003
  1.1506 -+++ gcc-20030210/gcc/reload1.c	Sat Feb 22 01:40:14 2003
  1.1507 -@@ -6103,6 +6103,7 @@
  1.1508 - 	    for (j = 0; j < n_reloads; j++)
  1.1509 - 	      if (rld[j].in != 0
  1.1510 - 		  && rld[j].when_needed != RELOAD_OTHER
  1.1511 -+		  && rld[j].when_needed != RELOAD_FOR_OUTPUT_ADDRESS
  1.1512 - 		  && reg_overlap_mentioned_for_reload_p (rld[j].in,
  1.1513 - 							 rld[i].in))
  1.1514 - 		rld[j].when_needed
  1.1515 -diff -ruN gcc-20030210.orig/gcc/reorg.c gcc-20030210/gcc/reorg.c
  1.1516 ---- gcc-20030210.orig/gcc/reorg.c	Fri Jan 31 19:17:30 2003
  1.1517 -+++ gcc-20030210/gcc/reorg.c	Sat Feb 22 01:40:14 2003
  1.1518 -@@ -3265,6 +3265,14 @@
  1.1519 - 		|| condjump_in_parallel_p (XVECEXP (PATTERN (insn), 0, 0))))
  1.1520 - 	continue;
  1.1521 - 
  1.1522 -+#ifdef MD_CAN_REDIRECT_BRANCH
  1.1523 -+      /* On some targets, branches with delay slots can have a limited
  1.1524 -+	 displacement.  Give the back end a chance to tell us we can't do
  1.1525 -+	 this.  */
  1.1526 -+      if (! MD_CAN_REDIRECT_BRANCH (insn, delay_insn))
  1.1527 -+	continue;
  1.1528 -+#endif
  1.1529 -+
  1.1530 -       target_label = JUMP_LABEL (delay_insn);
  1.1531 - 
  1.1532 -       if (target_label)
  1.1533 -diff -ruN gcc-20030210.orig/gcc/tree-inline.c gcc-20030210/gcc/tree-inline.c
  1.1534 ---- gcc-20030210.orig/gcc/tree-inline.c	Fri Jan 31 19:17:33 2003
  1.1535 -+++ gcc-20030210/gcc/tree-inline.c	Sat Feb 22 01:40:14 2003
  1.1536 -@@ -836,11 +836,17 @@
  1.1537 - 
  1.1538 -   /* Don't try to inline functions that are not well-suited to
  1.1539 -      inlining.  */
  1.1540 --  if (!inlinable_function_p (fn, id))
  1.1541 --    return NULL_TREE;
  1.1542 -+  if (! inlinable_function_p (fn, id)
  1.1543 -+      || ! (*lang_hooks.tree_inlining.start_inlining) (fn))
  1.1544 -+    {
  1.1545 -+      if (DECL_INLINE (fn) && warn_inline && ! flag_really_no_inline)
  1.1546 -+	{
  1.1547 -+	  warning_with_decl (fn, "inlining failed in call to `%s'");
  1.1548 -+	  warning ("called from here");
  1.1549 -+	}
  1.1550 - 
  1.1551 --  if (! (*lang_hooks.tree_inlining.start_inlining) (fn))
  1.1552 --    return NULL_TREE;
  1.1553 -+      return NULL_TREE;
  1.1554 -+    }
  1.1555 - 
  1.1556 -   /* Set the current filename and line number to the function we are
  1.1557 -      inlining so that when we create new _STMT nodes here they get
  1.1558 -diff -ruN gcc-20030210.orig/libjava/Makefile.in gcc-20030210/libjava/Makefile.in
  1.1559 ---- gcc-20030210.orig/libjava/Makefile.in	Tue Jan 28 10:44:37 2003
  1.1560 -+++ gcc-20030210/libjava/Makefile.in	Sat Feb 22 01:40:14 2003
  1.1561 -@@ -1637,6 +1637,7 @@
  1.1562 - 	"AS=$(AS)" \
  1.1563 - 	"CC=$(CC)" \
  1.1564 - 	"CXX=$(CXX)" \
  1.1565 -+	"GCJ=$(GCJ)" \
  1.1566 - 	"LD=$(LD)" \
  1.1567 - 	"LIBCFLAGS=$(LIBCFLAGS)" \
  1.1568 - 	"NM=$(NM)" \
  1.1569 -diff -ruN gcc-20030210.orig/libjava/configure gcc-20030210/libjava/configure
  1.1570 ---- gcc-20030210.orig/libjava/configure	Tue Jan 28 10:44:37 2003
  1.1571 -+++ gcc-20030210/libjava/configure	Sat Feb 22 01:42:11 2003
  1.1572 -@@ -2031,7 +2031,7 @@
  1.1573 - # This must be Linux ELF.
  1.1574 - linux-gnu*)
  1.1575 -   case $host_cpu in
  1.1576 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
  1.1577 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
  1.1578 -     lt_cv_deplibs_check_method=pass_all ;;
  1.1579 -   *)
  1.1580 -     # glibc up to 2.1.1 does not perform some relocations on ARM
  1.1581 -diff -ruN gcc-20030210.orig/libjava/java/net/natInetAddress.cc gcc-20030210/libjava/java/net/natInetAddress.cc
  1.1582 ---- gcc-20030210.orig/libjava/java/net/natInetAddress.cc	Tue Mar  5 05:02:19 2002
  1.1583 -+++ gcc-20030210/libjava/java/net/natInetAddress.cc	Sat Feb 22 01:40:14 2003
  1.1584 -@@ -56,7 +56,7 @@
  1.1585 - #endif
  1.1586 - 
  1.1587 - #ifndef HAVE_GETHOSTNAME_DECL
  1.1588 --extern "C" int gethostname (char *name, int namelen);
  1.1589 -+extern "C" int gethostname (char *name, unsigned int namelen);
  1.1590 - #endif
  1.1591 - 
  1.1592 - #ifdef DISABLE_JAVA_NET
  1.1593 -diff -ruN gcc-20030210.orig/libjava/libltdl/aclocal.m4 gcc-20030210/libjava/libltdl/aclocal.m4
  1.1594 ---- gcc-20030210.orig/libjava/libltdl/aclocal.m4	Sun Sep 10 17:04:40 2000
  1.1595 -+++ gcc-20030210/libjava/libltdl/aclocal.m4	Sat Feb 22 01:40:14 2003
  1.1596 -@@ -573,7 +573,7 @@
  1.1597 - # This must be Linux ELF.
  1.1598 - linux-gnu*)
  1.1599 -   case "$host_cpu" in
  1.1600 --  alpha* | i*86 | powerpc* | sparc* | ia64* )
  1.1601 -+  alpha* | i*86 | powerpc* | sparc* | ia64* | sh*)
  1.1602 -     lt_cv_deplibs_check_method=pass_all ;;
  1.1603 -   *)
  1.1604 -     # glibc up to 2.1.1 does not perform some relocations on ARM
  1.1605 -diff -ruN gcc-20030210.orig/libjava/sysdep/sh/locks.h gcc-20030210/libjava/sysdep/sh/locks.h
  1.1606 ---- gcc-20030210.orig/libjava/sysdep/sh/locks.h	Thu Jan  1 09:00:00 1970
  1.1607 -+++ gcc-20030210/libjava/sysdep/sh/locks.h	Sat Feb 22 01:40:14 2003
  1.1608 -@@ -0,0 +1,72 @@
  1.1609 -+// locks.h - Thread synchronization primitives. SuperH implementation.
  1.1610 -+
  1.1611 -+/* Copyright (C) 2002  Free Software Foundation
  1.1612 -+
  1.1613 -+   This file is part of libgcj.
  1.1614 -+
  1.1615 -+This software is copyrighted work licensed under the terms of the
  1.1616 -+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
  1.1617 -+details.  */
  1.1618 -+
  1.1619 -+#ifndef __SYSDEP_LOCKS_H__
  1.1620 -+#define __SYSDEP_LOCKS_H__
  1.1621 -+
  1.1622 -+typedef size_t obj_addr_t;	/* Integer type big enough for object	*/
  1.1623 -+				/* address.				*/
  1.1624 -+
  1.1625 -+static unsigned char __cas_lock = 0;
  1.1626 -+
  1.1627 -+inline static void
  1.1628 -+__cas_start_atomic (void)
  1.1629 -+{
  1.1630 -+  unsigned int val;
  1.1631 -+
  1.1632 -+  do
  1.1633 -+    __asm__ __volatile__ ("tas.b @%1; movt %0"
  1.1634 -+			  : "=r" (val)
  1.1635 -+			  : "r" (&__cas_lock)
  1.1636 -+			  : "memory");
  1.1637 -+  while (val == 0);
  1.1638 -+}
  1.1639 -+
  1.1640 -+inline static void
  1.1641 -+__cas_end_atomic (void)
  1.1642 -+{
  1.1643 -+  __asm__ __volatile__ (" " : : : "memory");
  1.1644 -+  __cas_lock = 0;
  1.1645 -+}
  1.1646 -+
  1.1647 -+inline static bool
  1.1648 -+compare_and_swap (volatile obj_addr_t *addr, obj_addr_t old,
  1.1649 -+		  obj_addr_t new_val)
  1.1650 -+{
  1.1651 -+  bool ret;
  1.1652 -+
  1.1653 -+  __cas_start_atomic ();
  1.1654 -+  if (*addr != old)
  1.1655 -+    ret = false;
  1.1656 -+  else
  1.1657 -+    {
  1.1658 -+      *addr = new_val;
  1.1659 -+      ret = true;
  1.1660 -+    }
  1.1661 -+  __cas_end_atomic ();
  1.1662 -+
  1.1663 -+  return ret;
  1.1664 -+}
  1.1665 -+
  1.1666 -+inline static void
  1.1667 -+release_set (volatile obj_addr_t *addr, obj_addr_t new_val)
  1.1668 -+{
  1.1669 -+  __asm__ __volatile__ (" " : : : "memory");
  1.1670 -+  *(addr) = new_val;
  1.1671 -+}
  1.1672 -+
  1.1673 -+inline static bool
  1.1674 -+compare_and_swap_release (volatile obj_addr_t *addr, obj_addr_t old,
  1.1675 -+			  obj_addr_t new_val)
  1.1676 -+{
  1.1677 -+  return compare_and_swap (addr, old, new_val);
  1.1678 -+}
  1.1679 -+
  1.1680 -+#endif /* ! __SYSDEP_LOCKS_H__ */
  1.1681 -diff -ruN gcc-20030210.orig/libstdc++-v3/acinclude.m4 gcc-20030210/libstdc++-v3/acinclude.m4
  1.1682 ---- gcc-20030210.orig/libstdc++-v3/acinclude.m4	Tue Jan 28 02:30:41 2003
  1.1683 -+++ gcc-20030210/libstdc++-v3/acinclude.m4	Sat Feb 22 01:40:14 2003
  1.1684 -@@ -1828,9 +1828,10 @@
  1.1685 -   GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
  1.1686 - 
  1.1687 -   # Passed down for canadian crosses.
  1.1688 --  if test x"$CANADIAN" = xyes; then
  1.1689 --    TOPLEVEL_INCLUDES='-I$(includedir)'
  1.1690 --  fi
  1.1691 -+  #if test x"$CANADIAN" = xyes; then
  1.1692 -+  #  TOPLEVEL_INCLUDES='-I$(includedir)'
  1.1693 -+  #fi
  1.1694 -+  TOPLEVEL_INCLUDES=''
  1.1695 - 
  1.1696 -   LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
  1.1697 - 
  1.1698 -diff -ruN gcc-20030210.orig/libstdc++-v3/aclocal.m4 gcc-20030210/libstdc++-v3/aclocal.m4
  1.1699 ---- gcc-20030210.orig/libstdc++-v3/aclocal.m4	Mon Feb 10 19:36:47 2003
  1.1700 -+++ gcc-20030210/libstdc++-v3/aclocal.m4	Sat Feb 22 01:40:14 2003
  1.1701 -@@ -1840,9 +1840,10 @@
  1.1702 -   GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
  1.1703 - 
  1.1704 -   # Passed down for canadian crosses.
  1.1705 --  if test x"$CANADIAN" = xyes; then
  1.1706 --    TOPLEVEL_INCLUDES='-I$(includedir)'
  1.1707 --  fi
  1.1708 -+  #if test x"$CANADIAN" = xyes; then
  1.1709 -+  #  TOPLEVEL_INCLUDES='-I$(includedir)'
  1.1710 -+  #fi
  1.1711 -+  TOPLEVEL_INCLUDES=''
  1.1712 - 
  1.1713 -   LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
  1.1714 - 
  1.1715 -diff -ruN gcc-20030210.orig/libstdc++-v3/configure gcc-20030210/libstdc++-v3/configure
  1.1716 ---- gcc-20030210.orig/libstdc++-v3/configure	Mon Feb 10 19:37:17 2003
  1.1717 -+++ gcc-20030210/libstdc++-v3/configure	Sat Feb 22 01:40:14 2003
  1.1718 -@@ -1982,7 +1982,7 @@
  1.1719 - # This must be Linux ELF.
  1.1720 - linux-gnu*)
  1.1721 -   case $host_cpu in
  1.1722 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
  1.1723 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh*)
  1.1724 -     lt_cv_deplibs_check_method=pass_all ;;
  1.1725 -   *)
  1.1726 -     # glibc up to 2.1.1 does not perform some relocations on ARM
  1.1727 -@@ -22340,9 +22340,10 @@
  1.1728 -   GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
  1.1729 - 
  1.1730 -   # Passed down for canadian crosses.
  1.1731 --  if test x"$CANADIAN" = xyes; then
  1.1732 --    TOPLEVEL_INCLUDES='-I$(includedir)'
  1.1733 --  fi
  1.1734 -+  #if test x"$CANADIAN" = xyes; then
  1.1735 -+  #  TOPLEVEL_INCLUDES='-I$(includedir)'
  1.1736 -+  #fi
  1.1737 -+  TOPLEVEL_INCLUDES=''
  1.1738 - 
  1.1739 -   LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
  1.1740 - 
  1.1741 -diff -ruN gcc-20030210.orig/libtool.m4 gcc-20030210/libtool.m4
  1.1742 ---- gcc-20030210.orig/libtool.m4	Fri Jan 31 19:16:59 2003
  1.1743 -+++ gcc-20030210/libtool.m4	Sat Feb 22 01:40:14 2003
  1.1744 -@@ -597,7 +597,7 @@
  1.1745 - # This must be Linux ELF.
  1.1746 - linux-gnu*)
  1.1747 -   case $host_cpu in
  1.1748 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
  1.1749 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
  1.1750 -     lt_cv_deplibs_check_method=pass_all ;;
  1.1751 -   *)
  1.1752 -     # glibc up to 2.1.1 does not perform some relocations on ARM
  1.1753 -diff -ruN gcc-20030210.orig/zlib/configure gcc-20030210/zlib/configure
  1.1754 ---- gcc-20030210.orig/zlib/configure	Tue Jan 28 10:44:15 2003
  1.1755 -+++ gcc-20030210/zlib/configure	Sat Feb 22 01:40:14 2003
  1.1756 -@@ -1571,7 +1571,7 @@
  1.1757 - # This must be Linux ELF.
  1.1758 - linux-gnu*)
  1.1759 -   case $host_cpu in
  1.1760 --  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
  1.1761 -+  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
  1.1762 -     lt_cv_deplibs_check_method=pass_all ;;
  1.1763 -   *)
  1.1764 -     # glibc up to 2.1.1 does not perform some relocations on ARM