diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 99b5e65495efba40c08c7a1378522ae6160c3d48..75367cbd9ce879057c00474990f0b2ee3e9b8dd4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-04-27  Joel Sherrill  <joel@rtems.org>
+
+	* config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
+	xilink.ld and flags not relevant to RTEMS.
+
 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
 
 	* toplev.c (backend_init_target): Avoid calling init_reload when using
diff --git a/gcc/config/microblaze/rtems.h b/gcc/config/microblaze/rtems.h
index 68aa381b370a8413f149d4b03e516ec15620391b..56f3f7087d513a635a30a578b312149633c2129a 100644
--- a/gcc/config/microblaze/rtems.h
+++ b/gcc/config/microblaze/rtems.h
@@ -23,3 +23,10 @@ along with GCC; see the file COPYING3.  If not see
   builtin_define( "__rtems__" );		\
   builtin_assert( "system=rtems" );		\
 } while (0)
+
+/* Redefine to include only items relevant for RTEMS */
+#undef LINK_SPEC
+#define LINK_SPEC "%{shared:-shared} -N -relax \
+  %{mbig-endian:-EB --oformat=elf32-microblaze} \
+  %{mlittle-endian:-EL --oformat=elf32-microblazeel} \
+  %{mxl-gp-opt:%{G*}} %{!mxl-gp-opt: -G 0}"