1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/gcc/3.2.3/gcc-20030210-sh-linux-1.patch Sat May 19 22:52:47 2007 +0000
1.3 @@ -0,0 +1,1761 @@
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