-diff -uNr gcc-4.1.2.orig/gcc/config/arm/rtems-elf.h gcc-4.1.2/gcc/config/arm/rtems-elf.h
---- gcc-4.1.2.orig/gcc/config/arm/rtems-elf.h 2005-11-22 00:28:29.000000000 +0100
-+++ gcc-4.1.2/gcc/config/arm/rtems-elf.h 2007-04-05 04:50:02.000000000 +0200
-@@ -27,6 +27,7 @@
- #define TARGET_OS_CPP_BUILTINS() \
- do { \
- builtin_define ("__rtems__"); \
-+ builtin_define ("__USE_INIT_FINI__"); \
- builtin_assert ("system=rtems"); \
- } while (0)
-
-diff -uNr gcc-4.1.2.orig/gcc/config/c4x/rtems.h gcc-4.1.2/gcc/config/c4x/rtems.h
---- gcc-4.1.2.orig/gcc/config/c4x/rtems.h 2005-06-25 03:22:41.000000000 +0200
-+++ gcc-4.1.2/gcc/config/c4x/rtems.h 2007-04-05 04:50:02.000000000 +0200
-@@ -24,6 +24,5 @@
- #define TARGET_OS_CPP_BUILTINS() \
- do { \
- builtin_define ("__rtems__"); \
-- builtin_define ("__USE_INIT_FINI__"); \
- builtin_assert ("system=rtems"); \
- } while (0)
-diff -uNr gcc-4.1.2.orig/gcc/config/mips/elf.h gcc-4.1.2/gcc/config/mips/elf.h
---- gcc-4.1.2.orig/gcc/config/mips/elf.h 2005-07-09 10:46:34.000000000 +0200
-+++ gcc-4.1.2/gcc/config/mips/elf.h 2007-04-05 04:50:03.000000000 +0200
-@@ -48,5 +48,3 @@
-
- #undef ENDFILE_SPEC
- #define ENDFILE_SPEC "crtend%O%s crtn%O%s"
--
--#define NO_IMPLICIT_EXTERN_C 1
-diff -uNr gcc-4.1.2.orig/gcc/config/mips/mips.h gcc-4.1.2/gcc/config/mips/mips.h
---- gcc-4.1.2.orig/gcc/config/mips/mips.h 2006-02-17 22:38:59.000000000 +0100
-+++ gcc-4.1.2/gcc/config/mips/mips.h 2007-04-05 04:49:10.000000000 +0200
-@@ -450,6 +450,8 @@
- #endif
- #endif /* IN_LIBGCC2 */
-
-+#define TARGET_LIBGCC_SDATA_SECTION ".sdata"
-+
- #ifndef MULTILIB_ENDIAN_DEFAULT
- #if TARGET_ENDIAN_DEFAULT == 0
- #define MULTILIB_ENDIAN_DEFAULT "EL"
-@@ -2712,7 +2714,6 @@
- /* Define the strings to put out for each section in the object file. */
- #define TEXT_SECTION_ASM_OP "\t.text" /* instructions */
- #define DATA_SECTION_ASM_OP "\t.data" /* large data */
--#define SDATA_SECTION_ASM_OP "\t.sdata" /* small data */
-
- #undef READONLY_DATA_SECTION_ASM_OP
- #define READONLY_DATA_SECTION_ASM_OP "\t.rdata" /* read-only data */
-diff -uNr gcc-4.1.2.orig/gcc/config.gcc gcc-4.1.2/gcc/config.gcc
---- gcc-4.1.2.orig/gcc/config.gcc 2006-10-16 01:12:23.000000000 +0200
-+++ gcc-4.1.2/gcc/config.gcc 2007-04-05 04:50:03.000000000 +0200
-@@ -761,6 +761,11 @@
- tmake_file=bfin/t-bfin-elf
- use_collect2=no
- ;;
-+bfin*-rtems*)
-+ tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h"
-+ tmake_file=bfin/t-bfin-elf
-+ use_collect2=no
-+ ;;
- bfin*-*)
- tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
- tmake_file=bfin/t-bfin
-@@ -1560,7 +1565,7 @@
- tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
- use_fixproto=yes
- ;;
--mips*-*-rtems*)
-+mips-*-rtems*)
- tm_file="elfos.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
- tmake_file="mips/t-elf t-rtems mips/t-rtems"
- ;;
-diff -uNr gcc-4.1.2.orig/gcc/crtstuff.c gcc-4.1.2/gcc/crtstuff.c
---- gcc-4.1.2.orig/gcc/crtstuff.c 2005-11-15 02:21:29.000000000 +0100
-+++ gcc-4.1.2/gcc/crtstuff.c 2007-04-05 04:49:10.000000000 +0200
-@@ -225,6 +225,9 @@
- in one DSO or the main program is not used in another object. The
- dynamic linker takes care of this. */
-
-+#ifdef TARGET_LIBGCC_SDATA_SECTION
-+extern void *__dso_handle __attribute__ ((__section__ (TARGET_LIBGCC_SDATA_SECTION)));
-+#endif
- #ifdef HAVE_GAS_HIDDEN
- extern void *__dso_handle __attribute__ ((__visibility__ ("hidden")));
- #endif
-diff -uNr gcc-4.1.2.orig/Makefile.in gcc-4.1.2/Makefile.in
---- gcc-4.1.2.orig/Makefile.in 2006-04-04 23:03:05.000000000 +0200
-+++ gcc-4.1.2/Makefile.in 2007-04-05 04:50:03.000000000 +0200
-@@ -329,9 +329,9 @@
- # CFLAGS will be just -g. We want to ensure that TARGET libraries
- # (which we know are built with gcc) are built with optimizations so
- # prepend -O2 when setting CFLAGS_FOR_TARGET.
--CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
-+CFLAGS_FOR_TARGET = $(strip -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
- SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
--CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
-+CXXFLAGS_FOR_TARGET = $(strip $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET))
- LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
- LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
- LDFLAGS_FOR_TARGET =