Index: libgcc/config.host
===================================================================
--- libgcc/config.host	(revision 140710)
+++ libgcc/config.host	(working copy)
@@ -356,6 +356,8 @@
  	;;
 m32rle-*-elf*)
 	;;
+m32r*-*-rtems*)
+	;;
 m32r-*-linux*)
  	;;
 m32rle-*-linux*)
@@ -567,7 +569,7 @@
 am33_2.0-*-linux*)
 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
 	;;
-m32c-*-elf*)
+m32c-*-elf*|m32c-*-rtems*)
  	;;
 *)
 	echo "*** Configuration ${host} not supported" 1>&2
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc	(revision 140710)
+++ gcc/config.gcc	(working copy)
@@ -1365,6 +1365,11 @@
 	tm_file="dbxelf.h elfos.h svr4.h m32r/little.h ${tm_file}"
 	extra_parts="crtinit.o crtfini.o m32rx/crtinit.o m32rx/crtfini.o"
 	;;
+m32r-*-rtems*)
+	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32r/rtems.h rtems.h"
+	tmake_file="m32r/t-m32r t-rtems"
+	extra_parts="crtinit.o crtfini.o"
+ 	;;
 m32r-*-linux*)
 	tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} m32r/linux.h"
 	# We override the tmake_file for linux -- why?
@@ -2374,6 +2379,12 @@
 	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
 	use_collect2=no
 	;;
+m32c-*-rtems*)
+	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32c/rtems.h rtems.h"
+	tmake_file="${tmake_file} t-rtems"
+	c_target_objs="m32c-pragma.o"
+	cxx_target_objs="m32c-pragma.o"
+ 	;;
 m32c-*-elf*)
 	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
 	c_target_objs="m32c-pragma.o"
Index: gcc/config/m32c/rtems.h
===================================================================
--- gcc/config/m32c/rtems.h	(revision 0)
+++ gcc/config/m32c/rtems.h	(revision 0)
@@ -0,0 +1,33 @@
+/* Definitions for rtems targeting a M32C using ELF.
+   Copyright (C) 2008, Free Software Foundation, Inc.
+   Contributed by Joel Sherrill (joel@OARcorp.com).
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+/* Target OS builtins.  */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS()		\
+  do						\
+    {						\
+	builtin_define ("__rtems__");		\
+	builtin_define ("__USE_INIT_FINI__");	\
+	builtin_assert ("system=rtems");	\
+    }						\
+  while (0)
+
+/* Use the default */
+#undef LINK_GCC_C_SEQUENCE_SPEC
Index: gcc/config/m32r/rtems.h
===================================================================
--- gcc/config/m32r/rtems.h	(revision 0)
+++ gcc/config/m32r/rtems.h	(revision 0)
@@ -0,0 +1,33 @@
+/* Definitions for rtems targeting a M32R using ELF.
+   Copyright (C) 2008, Free Software Foundation, Inc.
+   Contributed by Joel Sherrill (joel@OARcorp.com).
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+/* Target OS builtins.  */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS()		\
+  do						\
+    {						\
+	builtin_define ("__rtems__");		\
+	builtin_define ("__USE_INIT_FINI__");	\
+	builtin_assert ("system=rtems");	\
+    }						\
+  while (0)
+
+/* Use the default */
+#undef LINK_GCC_C_SEQUENCE_SPEC
