diff -Naur gdb-7.7.1.orig/sim/ChangeLog gdb-7.7.1/sim/ChangeLog
--- gdb-7.7.1.orig/sim/ChangeLog	2014-05-05 23:51:24.000000000 +0200
+++ gdb-7.7.1/sim/ChangeLog	2014-05-06 16:38:54.868634927 +0200
@@ -57,6 +57,12 @@
 	* configure.tgt: Add it.
 	* configure: Regenerate.
 
+2013-04-02  Ralf Corsépius <ralf.corsepius@rtems.org>
+
+	* common/configure.ac: Add AC_CHECK_DECLS([strsignal]).
+	* common/nrun.c: Conditionally provide strsignal-decl.
+	* common/configure, common/config.h: Regenerate.
+
 2013-03-15  Steve Ellcey  <sellcey@mips.com>
 
 	* arm/wrapper.c (sim_complete_command): Make char arguments const.
@@ -127,6 +133,11 @@
 	* configure.ac: Add mips*-mti-elf* target.
 	* configure: Regenerate.
 
+2012-07-19  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* common/sim-events.c: Include <inttypes.h>.
+	Avoid bogus pointer to int casts.
+
 2012-06-15  Joel Brobecker  <brobecker@adacore.com>
 
 	* configure: Regenerate.
diff -Naur gdb-7.7.1.orig/sim/common/ChangeLog gdb-7.7.1/sim/common/ChangeLog
--- gdb-7.7.1.orig/sim/common/ChangeLog	2014-05-05 23:51:24.000000000 +0200
+++ gdb-7.7.1/sim/common/ChangeLog	2014-05-06 16:38:54.869634909 +0200
@@ -53,6 +53,10 @@
 	first argument to SIM_AC_OPTION_HARDWARE. Fail if hardware
 	is always required to be enabled by simulator.
 
+2012-10-08  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* gentmap.c: Include <string.h>.
+
 2012-08-28  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
 
 	* gennltvals.sh: Use libgloss/syscall.h for cr16.
diff -Naur gdb-7.7.1.orig/sim/common/config.in gdb-7.7.1/sim/common/config.in
--- gdb-7.7.1.orig/sim/common/config.in	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/common/config.in	2014-05-06 16:38:54.869634909 +0200
@@ -4,6 +4,10 @@
    language is requested. */
 #undef ENABLE_NLS
 
+/* Define to 1 if you have the declaration of `strsignal', and to 0 if you
+   don't. */
+#undef HAVE_DECL_STRSIGNAL
+
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
@@ -139,6 +143,10 @@
 /* Define to 1 if you have the `__setfpucw' function. */
 #undef HAVE___SETFPUCW
 
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#undef LT_OBJDIR
+
 /* Name of this package. */
 #undef PACKAGE
 
diff -Naur gdb-7.7.1.orig/sim/common/configure gdb-7.7.1/sim/common/configure
--- gdb-7.7.1.orig/sim/common/configure	2013-12-08 05:55:48.000000000 +0100
+++ gdb-7.7.1/sim/common/configure	2014-05-06 16:38:54.870634891 +0200
@@ -1961,6 +1961,51 @@
   eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
 } # ac_fn_c_check_type
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR
+# ------------------------------------
+# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+ac_fn_c_check_decl ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  as_decl_name=`echo $2|sed 's/ *(.*//'`
+  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+  (void) $as_decl_use;
+#else
+  (void) $as_decl_name;
+#endif
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_decl
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
@@ -10534,7 +10579,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10537 "configure"
+#line 10582 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10640,7 +10685,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10643 "configure"
+#line 10688 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11404,6 +11449,18 @@
 fi
 
 
+ac_fn_c_check_decl "$LINENO" "strsignal" "ac_cv_have_decl_strsignal" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strsignal" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRSIGNAL $ac_have_decl
+_ACEOF
+
+
 ac_config_files="$ac_config_files Makefile"
 
 ac_config_commands="$ac_config_commands default"
diff -Naur gdb-7.7.1.orig/sim/common/configure.ac gdb-7.7.1/sim/common/configure.ac
--- gdb-7.7.1.orig/sim/common/configure.ac	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/common/configure.ac	2014-05-06 16:38:54.870634891 +0200
@@ -51,5 +51,7 @@
 #include <sys/socket.h>
 ])
 
+AC_CHECK_DECLS([strsignal])
+
 AC_OUTPUT(Makefile,
 [case x$CONFIG_HEADERS in xcconfig.h:config.in) echo > stamp-h ;; esac])
diff -Naur gdb-7.7.1.orig/sim/common/gentmap.c gdb-7.7.1/sim/common/gentmap.c
--- gdb-7.7.1.orig/sim/common/gentmap.c	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/common/gentmap.c	2014-05-06 16:38:54.870634891 +0200
@@ -2,6 +2,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h> /* for strcmp */
 
 struct tdefs {
   char *symbol;
diff -Naur gdb-7.7.1.orig/sim/common/nrun.c gdb-7.7.1/sim/common/nrun.c
--- gdb-7.7.1.orig/sim/common/nrun.c	2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.7.1/sim/common/nrun.c	2014-05-06 16:38:54.871634872 +0200
@@ -31,6 +31,11 @@
 #endif
 #endif
 
+/* strsignal is either provided natively or by libiberty */
+#if !HAVE_DECL_STRSIGNAL
+extern char *strsignal(int sig);
+#endif
+
 #include "sim-main.h"
 
 #include "bfd.h"
diff -Naur gdb-7.7.1.orig/sim/common/sim-events.c gdb-7.7.1/sim/common/sim-events.c
--- gdb-7.7.1.orig/sim/common/sim-events.c	2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.7.1/sim/common/sim-events.c	2014-05-06 16:38:54.871634872 +0200
@@ -38,6 +38,8 @@
 #include <stdlib.h>
 #endif
 
+#include <inttypes.h>
+
 #include <signal.h> /* For SIGPROCMASK et al. */
 
 typedef enum {
@@ -418,14 +420,14 @@
 	   event = event->next, i++)
 	{
 	  ETRACE ((_ETRACE,
-		   "event time-from-event - time %ld, delta %ld - event %d, tag 0x%lx, time %ld, handler 0x%lx, data 0x%lx%s%s\n",
-		   (long)current_time,
-		   (long)events->time_from_event,
+		   "event time-from-event - time %" PRId64 ", delta %" PRId64 " - event %d, tag 0x%p, time %" PRId64 ", handler 0x%p, data 0x%p%s%s\n",
+		   current_time,
+		   events->time_from_event,
 		   i,
-		   (long)event,
-		   (long)event->time_of_event,
-		   (long)event->handler,
-		   (long)event->data,
+		   event,
+		   event->time_of_event,
+		   event->handler,
+		   event->data,
 		   (event->trace != NULL) ? ", " : "",
 		   (event->trace != NULL) ? event->trace : ""));
 	}
@@ -525,12 +527,12 @@
     new_event->trace = NULL;
   insert_sim_event (sd, new_event, delta_time);
   ETRACE ((_ETRACE,
-	   "event scheduled at %ld - tag 0x%lx - time %ld, handler 0x%lx, data 0x%lx%s%s\n",
+	   "event scheduled at %ld - tag 0x%p - time %ld, handler 0x%p, data 0x%p%s%s\n",
 	   (long)sim_events_time (sd),
-	   (long)new_event,
+	   new_event,
 	   (long)new_event->time_of_event,
-	   (long)new_event->handler,
-	   (long)new_event->data,
+	   new_event->handler,
+	   new_event->data,
 	   (new_event->trace != NULL) ? ", " : "",
 	   (new_event->trace != NULL) ? new_event->trace : ""));
   return new_event;
@@ -577,12 +579,12 @@
 #endif
 
   ETRACE ((_ETRACE,
-	   "signal scheduled at %ld - tag 0x%lx - time %ld, handler 0x%lx, data 0x%lx\n",
-	   (long)sim_events_time (sd),
-	   (long)new_event,
-	   (long)new_event->time_of_event,
-	   (long)new_event->handler,
-	   (long)new_event->data));
+	   "signal scheduled at %" PRId64 " - tag 0x%p - time %" PRId64 ", handler 0x%p, data 0x%p\n",
+	   sim_events_time (sd),
+	   new_event,
+	   new_event->time_of_event,
+	   new_event->handler,
+	   new_event->data));
 }
 #endif
 
@@ -613,12 +615,12 @@
   events->watchpoints = new_event;
   events->work_pending = 1;
   ETRACE ((_ETRACE,
-	  "event watching clock at %ld - tag 0x%lx - wallclock %ld, handler 0x%lx, data 0x%lx\n",
-	   (long)sim_events_time (sd),
-	   (long)new_event,
-	   (long)new_event->wallclock,
-	   (long)new_event->handler,
-	   (long)new_event->data));
+	  "event watching clock at %" PRId64 " - tag 0x%p - wallclock %d, handler 0x%p, data 0x%p\n",
+	   sim_events_time (sd),
+	   new_event,
+	   new_event->wallclock,
+	   new_event->handler,
+	   new_event->data));
   return new_event;
 }
 #endif
@@ -689,14 +691,14 @@
   events->watchpoints = new_event;
   events->work_pending = 1;
   ETRACE ((_ETRACE,
-	   "event watching host at %ld - tag 0x%lx - host-addr 0x%lx, 0x%lx..0x%lx, handler 0x%lx, data 0x%lx\n",
-	   (long)sim_events_time (sd),
-	   (long)new_event,
-	   (long)new_event->host_addr,
-	   (long)new_event->lb,
-	   (long)new_event->ub,
-	   (long)new_event->handler,
-	   (long)new_event->data));
+	   "event watching host at %" PRId64 " - tag 0x%p - host-addr 0x%p, 0x%x..0x%x, handler 0x%p, data 0x%p\n",
+	   sim_events_time (sd),
+	   new_event,
+	   new_event->host_addr,
+	   new_event->lb,
+	   new_event->ub,
+	   new_event->handler,
+	   new_event->data));
   return new_event;
 }
 #endif
@@ -769,14 +771,14 @@
   events->watchpoints = new_event;
   events->work_pending = 1;
   ETRACE ((_ETRACE,
-	   "event watching host at %ld - tag 0x%lx - host-addr 0x%lx, 0x%lx..0x%lx, handler 0x%lx, data 0x%lx\n",
-	   (long)sim_events_time (sd),
-	   (long)new_event,
-	   (long)new_event->host_addr,
-	   (long)new_event->lb,
-	   (long)new_event->ub,
-	   (long)new_event->handler,
-	   (long)new_event->data));
+	   "event watching host at %" PRId64 " - tag 0x%p - host-addr 0x%p, 0x%x..0x%x, handler 0x%p, data 0x%p\n",
+	   sim_events_time (sd),
+	   new_event,
+	   new_event->host_addr,
+	   new_event->lb,
+	   new_event->ub,
+	   new_event->handler,
+	   new_event->data));
   return new_event;
 }
 #endif
@@ -803,12 +805,12 @@
 	      sim_event *dead = *ptr_to_current;
 	      *ptr_to_current = dead->next;
 	      ETRACE ((_ETRACE,
-		       "event/watch descheduled at %ld - tag 0x%lx - time %ld, handler 0x%lx, data 0x%lx%s%s\n",
-		       (long) sim_events_time (sd),
-		       (long) event_to_remove,
-		       (long) dead->time_of_event,
-		       (long) dead->handler,
-		       (long) dead->data,
+		       "event/watch descheduled at %" PRId64 " - tag 0x%p - time %" PRId64 ", handler 0x%p, data 0x%p%s%s\n",
+		       sim_events_time (sd),
+		       event_to_remove,
+		       dead->time_of_event,
+		       dead->handler,
+		       dead->data,
 		       (dead->trace != NULL) ? ", " : "",
 		       (dead->trace != NULL) ? dead->trace : ""));
 	      sim_events_free (sd, dead);
@@ -819,9 +821,9 @@
 	}
     }
   ETRACE ((_ETRACE,
-	   "event/watch descheduled at %ld - tag 0x%lx - not found\n",
-	   (long) sim_events_time (sd),
-	   (long) event_to_remove));
+	   "event/watch descheduled at %" PRId64 " - tag 0x%p - not found\n",
+	   sim_events_time (sd),
+	   event_to_remove));
 }
 #endif
 
@@ -1146,11 +1148,11 @@
 	  sim_event_handler *handler = to_do->handler;
 	  void *data = to_do->data;
 	  ETRACE ((_ETRACE,
-		   "event issued at %ld - tag 0x%lx - handler 0x%lx, data 0x%lx%s%s\n",
-		   (long) event_time,
-		   (long) to_do,
-		   (long) handler,
-		   (long) data,
+		   "event issued at %" PRId64 " - tag 0x%p - handler 0x%p, data 0x%p%s%s\n",
+		   event_time,
+		   to_do,
+		   handler,
+		   data,
 		   (to_do->trace != NULL) ? ", " : "",
 		   (to_do->trace != NULL) ? to_do->trace : ""));
 	  sim_events_free (sd, to_do);
@@ -1174,11 +1176,11 @@
       events->queue = to_do->next;
       update_time_from_event (sd);
       ETRACE ((_ETRACE,
-	       "event issued at %ld - tag 0x%lx - handler 0x%lx, data 0x%lx%s%s\n",
-	       (long) event_time,
-	       (long) to_do,
-	       (long) handler,
-	       (long) data,
+	       "event issued at %" PRId64 " - tag 0x%p - handler 0x%p, data 0x%p%s%s\n",
+	       event_time,
+	       to_do,
+	       handler,
+	       data,
 	       (to_do->trace != NULL) ? ", " : "",
 	       (to_do->trace != NULL) ? to_do->trace : ""));
       sim_events_free (sd, to_do);
diff -Naur gdb-7.7.1.orig/sim/erc32/ChangeLog gdb-7.7.1/sim/erc32/ChangeLog
--- gdb-7.7.1.orig/sim/erc32/ChangeLog	2014-05-05 23:51:24.000000000 +0200
+++ gdb-7.7.1/sim/erc32/ChangeLog	2014-05-06 16:38:54.871634872 +0200
@@ -27,6 +27,21 @@
 	* help.c: Likewise.
 	* interf.c: Likewise.
 
+2012-08-16  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* func.c, sis.c: Include <inttypes.h>.
+	Apply PRI* macros to print 64 bit types.
+	* sis.h: Include <stdint.h>.
+	Derive 64 bit types from POSIX 64 types.
+	Don't define UINT64_MAX if already defined.
+
+2012-07-20  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* Makefile.in, configure.ac: Backport from rtems-4.11-gdb-7.4.1.
+	Use system-readline. Fix EXEEXT handling.
+	* erc32.c: Backport from rtems-4.11-gdb-7.4.1.
+	* configure: Regenerate.
+
 2012-06-15  Joel Brobecker  <brobecker@adacore.com>
 
 	* sys.h: Include "config.h".
diff -Naur gdb-7.7.1.orig/sim/erc32/configure gdb-7.7.1/sim/erc32/configure
--- gdb-7.7.1.orig/sim/erc32/configure	2013-12-08 05:55:48.000000000 +0100
+++ gdb-7.7.1/sim/erc32/configure	2014-05-06 16:38:54.872634854 +0200
@@ -601,8 +601,9 @@
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
 cgen_breaks
+READLINE_CFLAGS
+READLINE_DEPS
 READLINE
-TERMCAP
 REPORT_BUGS_TEXI
 REPORT_BUGS_TO
 PKGVERSION
@@ -761,6 +762,7 @@
 enable_sim_profile
 with_pkgversion
 with_bugurl
+with_system_readline
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1413,6 +1415,7 @@
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-pkgversion=PKG   Use PKG in the version string in place of "GDB"
   --with-bugurl=URL       Direct users to URL to report a bug
+  --with-system-readline  use installed readline library
 
 Some influential environment variables:
   CC          C compiler command
@@ -12265,7 +12268,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12268 "configure"
+#line 12271 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12371,7 +12374,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12374 "configure"
+#line 12377 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12882,42 +12885,19 @@
 done
 
 
-# In the Cygwin environment, we need some additional flags.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cygwin" >&5
-$as_echo_n "checking for cygwin... " >&6; }
-if test "${sim_cv_os_cygwin+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#ifdef __CYGWIN__
-lose
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "lose" >/dev/null 2>&1; then :
-  sim_cv_os_cygwin=yes
-else
-  sim_cv_os_cygwin=no
+# Check whether --with-system-readline was given.
+if test "${with_system_readline+set}" = set; then :
+  withval=$with_system_readline;
 fi
-rm -f conftest*
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $sim_cv_os_cygwin" >&5
-$as_echo "$sim_cv_os_cygwin" >&6; }
 
-if test x$sim_cv_os_cygwin = xyes; then
-  TERMCAP='`if test -r ../../libtermcap/libtermcap.a; then echo ../../libtermcap/libtermcap.a; else echo -ltermcap; fi` -luser32'
-else
-  # Keep in sync with gdb's configure.ac list.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5
-$as_echo_n "checking for library containing tgetent... " >&6; }
-if test "${ac_cv_search_tgetent+set}" = set; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "$with_system_readline" = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline" >&5
+$as_echo_n "checking for readline... " >&6; }
+  save_LIBS="$LIBS"
+  LIBS="-lreadline $save_LIBS"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12926,65 +12906,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char tgetent ();
+char add_history ();
 int
 main ()
 {
-return tgetent ();
+return add_history ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' termcap tinfo curses ncurses; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_tgetent=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if test "${ac_cv_search_tgetent+set}" = set; then :
-  break
-fi
-done
-if test "${ac_cv_search_tgetent+set}" = set; then :
-
-else
-  ac_cv_search_tgetent=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tgetent" >&5
-$as_echo "$ac_cv_search_tgetent" >&6; }
-ac_res=$ac_cv_search_tgetent
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-  TERMCAP=$ac_cv_search_tgetent
-else
-  TERMCAP=""
-fi
-
-fi
-
-
-# We prefer the in-tree readline.  Top-level dependencies make sure
-# src/readline (if it's there) is configured before src/sim.
-if test -r ../../readline/Makefile; then
-  READLINE=../../readline/libreadline.a
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5
-$as_echo_n "checking for readline in -lreadline... " >&6; }
-if test "${ac_cv_lib_readline_readline+set}" = set; then :
-  $as_echo_n "(cached) " >&6
+if ac_fn_c_try_link "$LINENO"; then :
+  READLINE=-lreadline
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lreadline $TERMCAP $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+   LIBS="-lreadline -lncurses $save_LIBS"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12993,33 +12928,39 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char readline ();
+char add_history ();
 int
 main ()
 {
-return readline ();
+return add_history ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_readline_readline=yes
+  READLINE="-lreadline -lncurses"
 else
-  ac_cv_lib_readline_readline=no
+  as_fn_error "unable to detect readline" "$LINENO" 5
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5
-$as_echo "$ac_cv_lib_readline_readline" >&6; }
-if test "x$ac_cv_lib_readline_readline" = x""yes; then :
-  READLINE=-lreadline
-else
-  as_fn_error "the required \"readline\" library is missing" "$LINENO" 5
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+  LIBS="$save_LIBS"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINE" >&5
+$as_echo "$READLINE" >&6; }
+  READLINE_DEPS=
+  READLINE_CFLAGS=
+else
+  READLINE='../../readline/libreadline.a -lncurses'
+  READLINE_DEPS='$(READLINE)'
+  READLINE_CFLAGS='-I$(READLINE_SRC)/..'
 fi
 
-fi
+
+
 
 
 ac_sources="$sim_link_files"
diff -Naur gdb-7.7.1.orig/sim/erc32/configure.ac gdb-7.7.1/sim/erc32/configure.ac
--- gdb-7.7.1.orig/sim/erc32/configure.ac	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/erc32/configure.ac	2014-05-06 16:38:54.873634836 +0200
@@ -7,29 +7,32 @@
 
 AC_CHECK_HEADERS(stdlib.h)
 
-# In the Cygwin environment, we need some additional flags.
-AC_CACHE_CHECK([for cygwin], sim_cv_os_cygwin,
-[AC_EGREP_CPP(lose, [
-#ifdef __CYGWIN__
-lose
-#endif],[sim_cv_os_cygwin=yes],[sim_cv_os_cygwin=no])])
+AC_ARG_WITH([system-readline],
+  [AS_HELP_STRING([--with-system-readline],
+                  [use installed readline library])])
 
-if test x$sim_cv_os_cygwin = xyes; then
-  TERMCAP='`if test -r ../../libtermcap/libtermcap.a; then echo ../../libtermcap/libtermcap.a; else echo -ltermcap; fi` -luser32'
+if test "$with_system_readline" = yes; then
+  AC_MSG_CHECKING([for readline])
+  save_LIBS="$LIBS"
+  LIBS="-lreadline $save_LIBS"
+  AC_LINK_IFELSE([AC_LANG_CALL([],
+    [add_history])], [READLINE=-lreadline],
+    [ LIBS="-lreadline -lncurses $save_LIBS"
+      AC_LINK_IFELSE([AC_LANG_CALL([],
+        [add_history])], [READLINE="-lreadline -lncurses"],
+        [AC_MSG_ERROR([unable to detect readline])])
+    ])
+  LIBS="$save_LIBS"
+  AC_MSG_RESULT($READLINE)
+  READLINE_DEPS=
+  READLINE_CFLAGS=
 else
-  # Keep in sync with gdb's configure.ac list.
-  AC_SEARCH_LIBS(tgetent, [termcap tinfo curses ncurses],
-    [TERMCAP=$ac_cv_search_tgetent], [TERMCAP=""])
-fi
-AC_SUBST(TERMCAP)
-
-# We prefer the in-tree readline.  Top-level dependencies make sure
-# src/readline (if it's there) is configured before src/sim.
-if test -r ../../readline/Makefile; then
-  READLINE=../../readline/libreadline.a
-else
-  AC_CHECK_LIB(readline, readline, READLINE=-lreadline,
-	       AC_ERROR([the required "readline" library is missing]), $TERMCAP)
+  READLINE='../../readline/libreadline.a -lncurses'
+  READLINE_DEPS='$(READLINE)'
+  READLINE_CFLAGS='-I$(READLINE_SRC)/..'
 fi
 AC_SUBST(READLINE)
+AC_SUBST(READLINE_DEPS)
+AC_SUBST(READLINE_CFLAGS)
+
 SIM_AC_OUTPUT
diff -Naur gdb-7.7.1.orig/sim/erc32/erc32.c gdb-7.7.1/sim/erc32/erc32.c
--- gdb-7.7.1.orig/sim/erc32/erc32.c	2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.7.1/sim/erc32/erc32.c	2014-05-06 16:38:54.873634836 +0200
@@ -414,7 +414,7 @@
     if (rom8) mec_memcfg &= ~0x20000;
     else mec_memcfg |= 0x20000;
 
-    mem_ramsz = (256 * 1024) << ((mec_memcfg >> 10) & 7);
+    mem_ramsz = (512 * 1024) << ((mec_memcfg >> 10) & 7);
     mem_romsz = (128 * 1024) << ((mec_memcfg >> 18) & 7);
 
     if (sparclite_board) {
diff -Naur gdb-7.7.1.orig/sim/erc32/func.c gdb-7.7.1/sim/erc32/func.c
--- gdb-7.7.1.orig/sim/erc32/func.c	2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.7.1/sim/erc32/func.c	2014-05-06 16:38:54.873634836 +0200
@@ -25,6 +25,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <ctype.h>
+#include <inttypes.h>
 #include "sis.h"
 #include "end.h"
 #include <dis-asm.h>
@@ -640,8 +641,8 @@
 	sregs->nbranch;
 #endif
 
-    printf("\n Cycles       : %9d\n\r", ebase.simtime - sregs->simstart);
-    printf(" Instructions : %9d\n", sregs->ninst);
+    printf("\n Cycles       : %9" PRId64 "\n\r", ebase.simtime - sregs->simstart);
+    printf(" Instructions : %9" PRId64 "\n", sregs->ninst);
 
 #ifdef STAT
     printf("   integer    : %9.2f %%\n", 100.0 * (float) iinst / (float) sregs->ninst);
@@ -671,8 +672,8 @@
     printf(" Processor utilisation       : %5.2f %%\n", 100.0 * (1.0 - ((float) sregs->pwdtime / (float) stime)));
     printf(" Real-time / simulator-time  : 1/%.2f \n",
       ((float) sregs->tottime) / ((float) (stime) / (sregs->freq * 1.0E6)));
-    printf(" Simulator performance       : %d KIPS\n",sregs->ninst/tottime/1000);
-    printf(" Used time (sys + user)      : %3d s\n\n", sregs->tottime);
+    printf(" Simulator performance       : %" PRId64 " KIPS\n",sregs->ninst/tottime/1000);
+    printf(" Used time (sys + user)      : %3" PRId64 " s\n\n", sregs->tottime);
 }
 
 
diff -Naur gdb-7.7.1.orig/sim/erc32/Makefile.in gdb-7.7.1/sim/erc32/Makefile.in
--- gdb-7.7.1.orig/sim/erc32/Makefile.in	2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.7.1/sim/erc32/Makefile.in	2014-05-06 16:38:54.871634872 +0200
@@ -18,12 +18,12 @@
 
 ## COMMON_PRE_CONFIG_FRAG
 
-TERMCAP_LIB = @TERMCAP@
+# TERMCAP_LIB = -lncurses
 READLINE_LIB = @READLINE@
 
 SIM_OBJS = exec.o erc32.o func.o help.o float.o interf.o
 SIM_EXTRA_LIBS = $(READLINE_LIB) $(TERMCAP_LIB) -lm
-SIM_EXTRA_ALL = sis
+SIM_EXTRA_ALL = sis$(EXEEXT)
 SIM_EXTRA_INSTALL = install-sis
 SIM_EXTRA_CLEAN = clean-sis
 
@@ -37,8 +37,8 @@
 # `sis' doesn't need interf.o.
 SIS_OFILES = exec.o erc32.o func.o help.o float.o
 
-sis: sis.o $(SIS_OFILES) $(COMMON_OBJS) $(LIBDEPS)
-	$(CC) $(ALL_CFLAGS) -o sis \
+sis$(EXEEXT): sis.o $(SIS_OFILES) $(COMMON_OBJS) $(LIBDEPS)
+	$(CC) $(ALL_CFLAGS) -o sis$(EXEEXT) \
 	  sis.o $(SIS_OFILES) $(COMMON_OBJS) $(EXTRA_LIBS)
 
 # FIXME: This computes the build host's endianness, doesn't it?
@@ -51,11 +51,11 @@
 
 # Copy the files into directories where they will be run.
 install-sis: installdirs
-	n=`echo sis | sed '$(program_transform_name)'`; \
-	$(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
+	n=`echo sis$(EXEEXT) | sed '$(program_transform_name)'`; \
+	$(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n
 
 clean-sis:
-	rm -f sis end end.h
+	rm -f sis$(EXEEXT) end end.h
 
 configure:
 	@echo "Rebuilding configure..."
diff -Naur gdb-7.7.1.orig/sim/erc32/sis.c gdb-7.7.1/sim/erc32/sis.c
--- gdb-7.7.1.orig/sim/erc32/sis.c	2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.7.1/sim/erc32/sis.c	2014-05-06 16:38:54.873634836 +0200
@@ -27,6 +27,7 @@
 #endif
 #include <stdio.h>
 #include <time.h>
+#include <inttypes.h>
 #include <sys/fcntl.h>
 #include "sis.h"
 #include <dis-asm.h>
@@ -123,7 +124,7 @@
 			        sregs->histind = 0;
 		        }
 		        if (dis) {
-			    printf(" %8u ", ebase.simtime);
+			    printf(" %8" PRIu64, ebase.simtime);
 			    dis_mem(sregs->pc, 1, &dinfo);
 		        }
 		    }
@@ -278,7 +279,7 @@
 	case CTRL_C:
 	    printf("\b\bInterrupt!\n");
 	case TIME_OUT:
-	    printf(" Stopped at time %d (%.3f ms)\n", ebase.simtime, 
+	    printf(" Stopped at time %" PRId64 " (%.3f ms)\n", ebase.simtime,
 	      ((double) ebase.simtime / (double) sregs.freq) / 1000.0);
 	    break;
 	case BPT_HIT:
@@ -288,7 +289,7 @@
 	case ERROR:
 	    printf("IU in error mode (%d)\n", sregs.trap);
 	    stat = 0;
-	    printf(" %8d ", ebase.simtime);
+	    printf(" %8" PRId64, ebase.simtime);
 	    dis_mem(sregs.pc, 1, &dinfo);
 	    break;
 	default:
diff -Naur gdb-7.7.1.orig/sim/erc32/sis.h gdb-7.7.1/sim/erc32/sis.h
--- gdb-7.7.1.orig/sim/erc32/sis.h	2014-01-08 10:23:36.000000000 +0100
+++ gdb-7.7.1/sim/erc32/sis.h	2014-05-06 16:38:54.873634836 +0200
@@ -21,6 +21,8 @@
 
 #include "config.h"
 #include "ansidecl.h"
+#include <stdint.h>
+
 #include "gdb/callback.h"
 #include "gdb/remote-sim.h"
 
@@ -52,10 +54,12 @@
 typedef double  float64;	/* 64-bit float */
 
 /* FIXME: what about host compilers that don't support 64-bit ints? */
-typedef unsigned long long uint64; /* 64-bit unsigned int */
-typedef long long int64;	   /* 64-bit signed int */
+typedef uint64_t uint64; /* 64-bit unsigned int */
+typedef int64_t int64;	   /* 64-bit signed int */
 
+#ifndef UINT64_MAX
 #define UINT64_MAX 18446744073709551615ULL
+#endif
 
 struct pstate {
 
diff -Naur gdb-7.7.1.orig/sim/microblaze/ChangeLog gdb-7.7.1/sim/microblaze/ChangeLog
--- gdb-7.7.1.orig/sim/microblaze/ChangeLog	2014-05-05 23:51:24.000000000 +0200
+++ gdb-7.7.1/sim/microblaze/ChangeLog	2014-05-06 16:38:54.873634836 +0200
@@ -6,6 +6,20 @@
 
 	* aclocal.m4, configure: Regenerate.
 
+2012-10-02  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* interp.c: Define SIGBUS, SIGTRAP, SIGQUIT on mingw32.
+	Extend comment on _POSIX/__MINGW32__.
+
+2012-10-02  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	Backport from rtems-4.11-gdb-7.4:
+
+	2012-04-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* interp.c: Don't include <sys/times.h>, <netinet/in.h>.
+	Define _POSIX on mingw32.
+
 2012-06-15  Joel Brobecker  <brobecker@adacore.com>
 
 	* config.in, configure: Regenerate.
diff -Naur gdb-7.7.1.orig/sim/microblaze/interp.c gdb-7.7.1/sim/microblaze/interp.c
--- gdb-7.7.1.orig/sim/microblaze/interp.c	2014-05-05 23:51:24.000000000 +0200
+++ gdb-7.7.1/sim/microblaze/interp.c	2014-05-06 16:38:54.873634836 +0200
@@ -17,11 +17,29 @@
    along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include "config.h"
+
+#ifdef __MINGW32__
+/* mingw-w64 defines the SIG* defines if _POSIX is defined */
+#define _POSIX
+#endif
+
 #include <signal.h>
+
+#ifdef __MINGW32__
+#ifndef SIGTRAP
+#define SIGTRAP 5
+#endif
+#ifndef SIGBUS
+#define SIGBUS 10
+#endif
+#ifndef SIGQUIT
+#define SIGQUIT 3
+#endif
+#endif
+
 #include "sysdep.h"
-#include <sys/times.h>
 #include <sys/param.h>
-#include <netinet/in.h>	/* for byte ordering macros */
+
 #include "bfd.h"
 #include "gdb/callback.h"
 #include "libiberty.h"
diff -Naur gdb-7.7.1.orig/sim/ppc/basics.h gdb-7.7.1/sim/ppc/basics.h
--- gdb-7.7.1.orig/sim/ppc/basics.h	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/ppc/basics.h	2014-05-06 16:38:54.874634818 +0200
@@ -95,6 +95,7 @@
 
 #include <stdarg.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 
 #ifndef NORETURN
diff -Naur gdb-7.7.1.orig/sim/ppc/ChangeLog gdb-7.7.1/sim/ppc/ChangeLog
--- gdb-7.7.1.orig/sim/ppc/ChangeLog	2014-05-05 23:51:24.000000000 +0200
+++ gdb-7.7.1/sim/ppc/ChangeLog	2014-05-06 16:38:54.874634818 +0200
@@ -28,6 +28,20 @@
 
 	* COPYING: Update to GPL version 3.
 
+2012-10-08  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* basics.h: Include stdlib.h.
+	* emul_unix.c: Include time.h.
+	* ppc-instructions: Add missing %s.
+	* vm_n.h: Use %zd to print size_t.
+
+2012-09-28  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	Backport from gcc-7.4-rtems4.11:
+
+	* device.c, device.h: Use (void) device_error.
+	* hw_glue.c: Use %zd to print sizes.
+
 2012-06-15  Joel Brobecker  <brobecker@adacore.com>
 
 	* configure: Regenerate.
diff -Naur gdb-7.7.1.orig/sim/ppc/device.c gdb-7.7.1/sim/ppc/device.c
--- gdb-7.7.1.orig/sim/ppc/device.c	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/ppc/device.c	2014-05-06 16:38:54.874634818 +0200
@@ -1815,7 +1815,7 @@
 /* I/O */
 
 EXTERN_DEVICE\
-(void volatile)
+(void)
 device_error(device *me,
 	     const char *fmt,
 	     ...)
diff -Naur gdb-7.7.1.orig/sim/ppc/device.h gdb-7.7.1/sim/ppc/device.h
--- gdb-7.7.1.orig/sim/ppc/device.h	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/ppc/device.h	2014-05-06 16:38:54.874634818 +0200
@@ -726,7 +726,7 @@
    */
 
 EXTERN_DEVICE\
-(void volatile) device_error
+(void) device_error
 (device *me,
  const char *fmt,
  ...) __attribute__ ((format (printf, 2, 3)));
diff -Naur gdb-7.7.1.orig/sim/ppc/emul_unix.c gdb-7.7.1/sim/ppc/emul_unix.c
--- gdb-7.7.1.orig/sim/ppc/emul_unix.c	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/ppc/emul_unix.c	2014-05-06 16:38:54.874634818 +0200
@@ -64,6 +64,8 @@
 #include <sys/time.h>
 #endif
 
+#include <time.h>
+
 #ifndef HAVE_TERMIOS_STRUCTURE
 #undef HAVE_SYS_TERMIOS_H
 #undef HAVE_TCGETATTR
diff -Naur gdb-7.7.1.orig/sim/ppc/hw_glue.c gdb-7.7.1/sim/ppc/hw_glue.c
--- gdb-7.7.1.orig/sim/ppc/hw_glue.c	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/ppc/hw_glue.c	2014-05-06 16:38:54.875634799 +0200
@@ -193,13 +193,13 @@
     if (glue->sizeof_output == 0)
       device_error(me, "at least one reg property size must be nonzero");
     if (glue->sizeof_output % sizeof(unsigned_word) != 0)
-      device_error(me, "reg property size must be %d aligned", sizeof(unsigned_word));
+      device_error(me, "reg property size must be %zd aligned", sizeof(unsigned_word));
     /* and the address */
     device_address_to_attach_address(device_parent(me),
 				     &unit.address, &glue->space, &glue->address,
 				     me);
     if (glue->address % (sizeof(unsigned_word) * max_nr_interrupts) != 0)
-      device_error(me, "reg property address must be %d aligned",
+      device_error(me, "reg property address must be %zd aligned",
 		   sizeof(unsigned_word) * max_nr_interrupts);
     glue->nr_outputs = glue->sizeof_output / sizeof(unsigned_word);
     glue->output = zalloc(glue->sizeof_output);
diff -Naur gdb-7.7.1.orig/sim/ppc/ppc-instructions gdb-7.7.1/sim/ppc/ppc-instructions
--- gdb-7.7.1.orig/sim/ppc/ppc-instructions	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/ppc/ppc-instructions	2014-05-06 16:38:54.875634799 +0200
@@ -331,7 +331,7 @@
 	  }
 	}
 	if (busy->vscr_busy)
-	  TRACE(trace_model, ("VSCR Register is now available.\n", spr_name(busy->spr_busy)));
+	  TRACE(trace_model, ("VSCR Register %s is now available.\n", spr_name(busy->spr_busy)));
 
 # Trace making registers busy
 void::model-static::model_trace_make_busy:model_data *model_ptr, unsigned32 int_mask, unsigned32 fp_mask, unsigned32 cr_mask
diff -Naur gdb-7.7.1.orig/sim/ppc/vm_n.h gdb-7.7.1/sim/ppc/vm_n.h
--- gdb-7.7.1.orig/sim/ppc/vm_n.h	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/ppc/vm_n.h	2014-05-06 16:38:54.875634799 +0200
@@ -59,7 +59,7 @@
 	unsigned_N val;
 	if (vm_data_map_read_buffer(map, &val, ea, sizeof(unsigned_N), processor, cia)
 	    != sizeof(unsigned_N)) {
-	  cpu_error(processor, cia, "misaligned %d byte read to 0x%lx failed",
+	  cpu_error(processor, cia, "misaligned %zd byte read to 0x%lx failed",
 		    sizeof(unsigned_N), (unsigned long)ea);
 	}
 	val = T2H_N(val);
@@ -107,7 +107,7 @@
 	unsigned_N data = H2T_N(val);
 	if (vm_data_map_write_buffer(map, &data, ea, sizeof(unsigned_N), 0, processor, cia)
 	    != sizeof(unsigned_N)) {
-	  cpu_error(processor, cia, "misaligned %d byte write to 0x%lx failed",
+	  cpu_error(processor, cia, "misaligned %zd byte write to 0x%lx failed",
 		    sizeof(unsigned_N), (unsigned long)ea);
 	}
 	if (WITH_MON & MONITOR_LOAD_STORE_UNIT) {
diff -Naur gdb-7.7.1.orig/sim/sh/ChangeLog gdb-7.7.1/sim/sh/ChangeLog
--- gdb-7.7.1.orig/sim/sh/ChangeLog	2014-05-05 23:51:24.000000000 +0200
+++ gdb-7.7.1/sim/sh/ChangeLog	2014-05-06 16:38:54.875634799 +0200
@@ -6,6 +6,10 @@
 
 	* aclocal.m4, configure: Regenerate.
 
+2012-10-08  Ralf Corsépius  <ralf.corsepius@rtems.org>
+
+	* gencode.c: Include stdlib.h, unistd.h, string.h.
+
 2012-06-15  Joel Brobecker  <brobecker@adacore.com>
 
 	* config.in, configure: Regenerate.
diff -Naur gdb-7.7.1.orig/sim/sh/gencode.c gdb-7.7.1/sim/sh/gencode.c
--- gdb-7.7.1.orig/sim/sh/gencode.c	2013-12-08 05:11:52.000000000 +0100
+++ gdb-7.7.1/sim/sh/gencode.c	2014-05-06 16:38:54.876634781 +0200
@@ -31,6 +31,9 @@
 */
 
 #include <stdio.h>
+#include <stdlib.h> /* for abort */
+#include <unistd.h> /* for exit */
+#include <string.h> /* for strlen, memcpy */
 
 #define MAX_NR_STUFF 42
 
