diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 29b4605b079d0d81b862fccefdc7366bdce7a68e..ecfac19759c9aa446cf7af4ae0b49e6b6a81bb68 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,19 @@
+2011-11-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* config.host (*-*-rtems*): Add t-rtems to tmake_file.
+	(i[34567]86-*-rtems*): Remove t-rtems from tmake_file.
+	(lm32-*-elf*, lm32-*-rtems*): Split into ...
+	(lm32-*-elf*): ... this.
+	(lm32-*-rtems*): ... and this.
+	Add to tmake_file.
+	(m32r-*-rtems*): Add to tmake_file.
+	(moxie-*-rtems*): Likewise.
+	(sparc-*-rtems*): Likewise.
+	Remove t-rtems from tmake_file.
+	(sparc64-*-rtems*): Likewise.
+	* config/t-rtems (HOST_LIBGCC2_CFLAGS): Use LIBGCC2_INCLUDES
+	instead.
+
 2011-11-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	PR bootstrap/50982
diff --git a/libgcc/config.host b/libgcc/config.host
index dd81f5f01ce9ae13115c22f97a83072cbe64eefa..835c5ceffdbc18ab867d003f9253ecee160f3f92 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -229,6 +229,7 @@ case ${host} in
   esac
   ;;
 *-*-rtems*)
+  tmake_file="$tmake_file t-rtems"
   extra_parts="crtbegin.o crtend.o"
   ;;
 *-*-solaris2*)
@@ -568,8 +569,8 @@ i[34567]86-*-nto-qnx*)
 	extra_parts=crtbegin.o
 	;;
 i[34567]86-*-rtems*)
+	tmake_file="$tmake_file i386/t-softfp i386/t-crtstuff"
 	extra_parts="$extra_parts crti.o crtn.o"
-	tmake_file="${tmake_file} i386/t-softfp i386/t-crtstuff t-rtems"
 	;;
 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
 	tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
@@ -675,10 +676,14 @@ iq2000*-*-elf*)
 	# Don't use default.
 	extra_parts=
         ;;
-lm32-*-elf*|lm32-*-rtems*)
+lm32-*-elf*)
         extra_parts="$extra_parts crti.o crtn.o"
         tmake_file="lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
 	;;
+lm32-*-rtems*)
+        tmake_file="$tmake_file lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
+        extra_parts="$extra_parts crti.o crtn.o"
+	;;
 lm32-*-uclinux*)
         extra_parts="$extra_parts crtbegin.o crtendS.o crtbeginT.o"
         tmake_file="lm32/t-lm32 lm32/t-uclinux t-libgcc-pic t-softfp-sfdf t-softfp"
@@ -687,7 +692,7 @@ m32r-*-elf*)
 	tmake_file=t-fdpbit
  	;;
 m32r-*-rtems*)
-	tmake_file="m32r/t-m32r t-fdpbit"
+	tmake_file="$tmake_file m32r/t-m32r t-fdpbit"
 	;;
 m32rle-*-elf*)
 	tmake_file=t-fdpbit
@@ -819,7 +824,7 @@ moxie-*-elf | moxie-*-uclinux*)
 	extra_parts="$extra_parts crti.o crtn.o"
 	;;
 moxie-*-rtems*)
-	tmake_file="moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp"
+	tmake_file="$tmake_file moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp"
 	# Don't use default.
 	extra_parts=
 	;;
@@ -1029,7 +1034,7 @@ sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
 	md_unwind_header=sparc/linux-unwind.h
 	;;
 sparc-*-rtems*)
-	tmake_file="sparc/t-elf sparc/t-softmul t-crtfm t-rtems t-fdpbit"
+	tmake_file="$tmake_file sparc/t-elf sparc/t-softmul t-crtfm t-fdpbit"
 	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
 	;;
 sparc*-*-solaris2*)
@@ -1042,7 +1047,7 @@ sparc64-*-elf*)
 	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
 	;;
 sparc64-*-rtems*)
-	tmake_file="sparc/t-elf t-crtfm t-rtems"
+	tmake_file="$tmake_file sparc/t-elf t-crtfm"
 	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
 	;;
 sparc-wrs-vxworks)
diff --git a/libgcc/config/t-rtems b/libgcc/config/t-rtems
index 85e931e60f6e5d896a06d01733141b4b53118625..85f1da90d3bb4740e13018b62bd23f3429d34b5e 100644
--- a/libgcc/config/t-rtems
+++ b/libgcc/config/t-rtems
@@ -1,4 +1,4 @@
 # If we are building next to newlib, this will let us find the RTEMS
 # limits.h when building libgcc2.  Otherwise, newlib must be installed
 # first.
-HOST_LIBGCC2_CFLAGS = -I$(srcdir)/../newlib/libc/sys/rtems/include
+LIBGCC2_INCLUDES = -I$(srcdir)/../newlib/libc/sys/rtems/include