diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/bfd/sysdep.h gdb-6.4/bfd/sysdep.h
--- /usr1/rtems/work-tools/original/gdb-6.4/bfd/sysdep.h	Thu May  5 13:51:14 2005
+++ gdb-6.4/bfd/sysdep.h	Fri Mar 24 11:31:32 2006
@@ -135,7 +135,7 @@
 #endif
 
 #if !HAVE_DECL_STRSTR
-extern char *strstr ();
+extern char *strstr (const char *haystack, const char *needle);
 #endif
 
 #ifdef HAVE_FTELLO
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/gdb/config/sparc/embedded.mt gdb-6.4/gdb/config/sparc/embedded.mt
--- /usr1/rtems/work-tools/original/gdb-6.4/gdb/config/sparc/embedded.mt	Wed Dec 31 18:00:00 1969
+++ gdb-6.4/gdb/config/sparc/embedded.mt	Fri Apr  7 10:56:45 2006
@@ -0,0 +1,5 @@
+# Target: SPARC embedded with simulator
+TDEPFILES= sparc-tdep.o
+
+SIM_OBS = remote-sim.o
+SIM = ../sim/erc32/libsim.a
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/gdb/configure.tgt gdb-6.4/gdb/configure.tgt
--- /usr1/rtems/work-tools/original/gdb-6.4/gdb/configure.tgt	Mon Aug 15 16:46:38 2005
+++ gdb-6.4/gdb/configure.tgt	Fri Apr  7 10:55:37 2006
@@ -198,6 +198,7 @@
 sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
 			gdb_target=sol2-64
 			;;
+sparc-*-rtems*)		gdb_target=embedded ;;
 sparc-*-*)		gdb_target=sparc ;;
 sparc64-*-*)		gdb_target=sparc64 ;;
 
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/sim/Makefile.in gdb-6.4/sim/Makefile.in
--- /usr1/rtems/work-tools/original/gdb-6.4/sim/Makefile.in	Fri Jan 28 18:53:13 2005
+++ gdb-6.4/sim/Makefile.in	Fri Mar 24 11:32:53 2006
@@ -87,6 +87,7 @@
 	"exec_prefix=$(exec_prefix)" \
 	"bindir=$(bindir)" \
 	"mandir=$(mandir)" \
+	"libdir=$(libdir)" \
 	"against=$(against)" \
 	"AR=$(AR)" \
 	"AR_FLAGS=$(AR_FLAGS)" \
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/sim/configure gdb-6.4/sim/configure
--- /usr1/rtems/work-tools/original/gdb-6.4/sim/configure	Tue May 17 09:11:24 2005
+++ gdb-6.4/sim/configure	Wed Apr  5 12:39:21 2006
@@ -3515,6 +3515,14 @@
 	   testsuite=yes
 	   common=yes
 	   ;;
+       sparc-*-rtems*|sparc-*-elf*)
+
+
+subdirs="$subdirs erc32"
+
+	   testsuite=yes
+	   common=yes
+	   ;;
        powerpc*-*-* )
 
 
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/sim/configure.ac gdb-6.4/sim/configure.ac
--- /usr1/rtems/work-tools/original/gdb-6.4/sim/configure.ac	Tue May 17 09:11:24 2005
+++ gdb-6.4/sim/configure.ac	Wed Apr  5 12:39:19 2006
@@ -109,6 +109,11 @@
 	   testsuite=yes
 	   common=yes
 	   ;;
+       sparc-*-rtems*|sparc-*-elf*)
+           AC_CONFIG_SUBDIRS(erc32)
+	   testsuite=yes
+	   common=yes
+	   ;;
        powerpc*-*-* )
            AC_CONFIG_SUBDIRS(ppc)
 	   common=yes
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/sim/erc32/Makefile.in gdb-6.4/sim/erc32/Makefile.in
--- /usr1/rtems/work-tools/original/gdb-6.4/sim/erc32/Makefile.in	Tue Mar  7 09:32:49 2000
+++ gdb-6.4/sim/erc32/Makefile.in	Wed Apr  5 15:15:12 2006
@@ -53,7 +53,7 @@
 # Copy the files into directories where they will be run.
 install-sis: installdirs
 	n=`echo sis | sed '$(program_transform_name)'`; \
-	$(INSTALL_PROGRAM) sis$(EXEEXT) $(bindir)/$$n$(EXEEXT)
+	$(INSTALL_PROGRAM) sis$(EXEEXT) $(DESTDIR)$(bindir)/$$n$(EXEEXT)
 
 clean-sis:
 	rm -f sis end end.h
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/sim/erc32/exec.c gdb-6.4/sim/erc32/exec.c
--- /usr1/rtems/work-tools/original/gdb-6.4/sim/erc32/exec.c	Mon Mar  7 05:09:05 2005
+++ gdb-6.4/sim/erc32/exec.c	Fri Mar 24 11:32:53 2006
@@ -1713,7 +1713,7 @@
     	    sregs->fdp[rs2 | 1] = sregs->fs[rs2 & ~1];
     	    sregs->fdp[rs2 & ~1] = sregs->fs[rs2 | 1];
     default:
-      ;
+      break;
     }
 #endif
 
@@ -1886,7 +1886,7 @@
 	sregs->fs[rd & ~1] = sregs->fdp[rd | 1];
 	sregs->fs[rd | 1] = sregs->fdp[rd & ~1];
     default:
-      ;
+      break;
     }
 #endif
     if (sregs->fpstate == FP_EXC_PE) {
diff -uNr /usr1/rtems/work-tools/original/gdb-6.4/sim/mips/dv-tx3904tmr.c gdb-6.4/sim/mips/dv-tx3904tmr.c
--- /usr1/rtems/work-tools/original/gdb-6.4/sim/mips/dv-tx3904tmr.c	Thu Apr 15 20:35:06 1999
+++ gdb-6.4/sim/mips/dv-tx3904tmr.c	Fri Mar 24 11:32:53 2006
@@ -675,6 +675,7 @@
 
 	case 3: /* disabled */
 	default:
+	  break;
 	}
 
       /* update counter and report */
