Index: c/src/lib/libbsp/sparc/leon3/Makefile.am
===================================================================
--- c/src/lib/libbsp/sparc/leon3/Makefile.am	(revision 2f8704b6c8c3ce65cdf2b589a98de1d1d9dc8ffa)
+++ c/src/lib/libbsp/sparc/leon3/Makefile.am	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -27,5 +27,8 @@
 dist_project_lib_DATA += startup/linkcmds
 dist_project_lib_DATA += startup/linkcmds.leon3
-dist_project_lib_DATA += startup/linkcmds.ngmp
+dist_project_lib_DATA += startup/linkcmds.ut699
+dist_project_lib_DATA += startup/linkcmds.gr712rc
+dist_project_lib_DATA += startup/linkcmds.ut700
+dist_project_lib_DATA += startup/linkcmds.gr740
 
 noinst_LIBRARIES += libbsp.a
Index: c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg
===================================================================
--- c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/make/custom/gr712rc.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,18 @@
+#
+#  Config file for the GR712RC LEON3 SPARC processor.
+#
+
+include $(RTEMS_ROOT)/make/custom/default.cfg
+
+RTEMS_CPU=sparc
+RTEMS_CPU_MODEL=leon3
+
+#  This contains the compiler options necessary to select the CPU model
+#  and (hopefully) optimize for it.
+CPU_CFLAGS = -mcpu=leon3 -mfix-gr712rc
+
+# optimize flag: typically -O2
+CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
Index: c/src/lib/libbsp/sparc/leon3/make/custom/gr740.cfg
===================================================================
--- c/src/lib/libbsp/sparc/leon3/make/custom/gr740.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/make/custom/gr740.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,1 @@
+include $(RTEMS_ROOT)/make/custom/leon3.cfg
Index: c/src/lib/libbsp/sparc/leon3/make/custom/leon3.cfg
===================================================================
--- c/src/lib/libbsp/sparc/leon3/make/custom/leon3.cfg	(revision 2f8704b6c8c3ce65cdf2b589a98de1d1d9dc8ffa)
+++ c/src/lib/libbsp/sparc/leon3/make/custom/leon3.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -10,5 +10,5 @@
 #  This contains the compiler options necessary to select the CPU model
 #  and (hopefully) optimize for it.
-CPU_CFLAGS = -mcpu=leon3 -msoft-float
+CPU_CFLAGS = -mcpu=leon3
 
 # optimize flag: typically -O2
Index: c/src/lib/libbsp/sparc/leon3/make/custom/ngmp.cfg
===================================================================
--- c/src/lib/libbsp/sparc/leon3/make/custom/ngmp.cfg	(revision 2f8704b6c8c3ce65cdf2b589a98de1d1d9dc8ffa)
+++ 	(revision )
@@ -1,1 +1,0 @@
-include $(RTEMS_ROOT)/make/custom/leon3.cfg
Index: c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg
===================================================================
--- c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/make/custom/ut699.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,18 @@
+#
+#  Config file for the UT699 LEON3 SPARC processor.
+#
+
+include $(RTEMS_ROOT)/make/custom/default.cfg
+
+RTEMS_CPU=sparc
+RTEMS_CPU_MODEL=leon3
+
+#  This contains the compiler options necessary to select the CPU model
+#  and (hopefully) optimize for it.
+CPU_CFLAGS = -mcpu=leon -mfix-ut699
+
+# optimize flag: typically -O2
+CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
Index: c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg
===================================================================
--- c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/make/custom/ut700.cfg	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,18 @@
+#
+#  Config file for the UT699e/UT700 LEON3 SPARC processor.
+#
+
+include $(RTEMS_ROOT)/make/custom/default.cfg
+
+RTEMS_CPU=sparc
+RTEMS_CPU_MODEL=leon3
+
+#  This contains the compiler options necessary to select the CPU model
+#  and (hopefully) optimize for it.
+CPU_CFLAGS = -mcpu=leon3 -mfix-ut700
+
+# optimize flag: typically -O2
+CFLAGS_OPTIMIZE_V = -O2 -g
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
Index: c/src/lib/libbsp/sparc/leon3/preinstall.am
===================================================================
--- c/src/lib/libbsp/sparc/leon3/preinstall.am	(revision 2f8704b6c8c3ce65cdf2b589a98de1d1d9dc8ffa)
+++ c/src/lib/libbsp/sparc/leon3/preinstall.am	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -82,7 +82,19 @@
 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.leon3
 
-$(PROJECT_LIB)/linkcmds.ngmp: startup/linkcmds.ngmp $(PROJECT_LIB)/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.ngmp
-PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.ngmp
+$(PROJECT_LIB)/linkcmds.ut699: startup/linkcmds.ut699 $(PROJECT_LIB)/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.ut699
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.ut699
+
+$(PROJECT_LIB)/linkcmds.gr712rc: startup/linkcmds.gr712rc $(PROJECT_LIB)/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.gr712rc
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.gr712rc
+
+$(PROJECT_LIB)/linkcmds.ut700: startup/linkcmds.ut700 $(PROJECT_LIB)/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.ut700
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.ut700
+
+$(PROJECT_LIB)/linkcmds.gr740: startup/linkcmds.gr740 $(PROJECT_LIB)/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.gr740
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.gr740
 
 $(PROJECT_INCLUDE)/bsp/gnatcommon.h: ../shared/include/gnatcommon.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
Index: c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc
===================================================================
--- c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr712rc	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,20 @@
+/*  linkcmds
+ */
+
+/* Default values, can be overridden */
+
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 2M;
+_PROM_START = DEFINED (_PROM_START) ? _PROM_START : 0x00000000;
+
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 4M;
+_RAM_START = DEFINED (_RAM_START) ? _RAM_START : 0x40000000;
+
+/* these are the maximum values */
+
+MEMORY
+{
+  rom     : ORIGIN = 0x00000000, LENGTH = 256M
+  ram     : ORIGIN = 0x40000000, LENGTH = 1024M
+}
+
+INCLUDE linkcmds.base
Index: c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr740
===================================================================
--- c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr740	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/startup/linkcmds.gr740	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,19 @@
+/* Default values, can be overridden */
+
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 0;
+
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 64M;
+
+/* these are the maximum values */
+
+MEMORY
+{
+  rom     : ORIGIN = 0xC0000000, LENGTH = 256M
+  ram     : ORIGIN = 0x00000000, LENGTH = 2048M
+  sram    : ORIGIN = 0xD0000000, LENGTH = 256M
+}
+
+_PROM_START = ORIGIN (rom);
+_RAM_START = ORIGIN (ram);
+
+INCLUDE linkcmds.base
Index: c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ngmp
===================================================================
--- c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ngmp	(revision 2f8704b6c8c3ce65cdf2b589a98de1d1d9dc8ffa)
+++ 	(revision )
@@ -1,19 +1,0 @@
-/* Default values, can be overridden */
-
-_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 0;
-
-_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 64M;
-
-/* these are the maximum values */
-
-MEMORY
-{
-  rom     : ORIGIN = 0xC0000000, LENGTH = 256M
-  ram     : ORIGIN = 0x00000000, LENGTH = 2048M
-  sram    : ORIGIN = 0xD0000000, LENGTH = 256M
-}
-
-_PROM_START = ORIGIN (rom);
-_RAM_START = ORIGIN (ram);
-
-INCLUDE linkcmds.base
Index: c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699
===================================================================
--- c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut699	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,20 @@
+/*  linkcmds
+ */
+
+/* Default values, can be overridden */
+
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 2M;
+_PROM_START = DEFINED (_PROM_START) ? _PROM_START : 0x00000000;
+
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 4M;
+_RAM_START = DEFINED (_RAM_START) ? _RAM_START : 0x40000000;
+
+/* these are the maximum values */
+
+MEMORY
+{
+  rom     : ORIGIN = 0x00000000, LENGTH = 256M
+  ram     : ORIGIN = 0x40000000, LENGTH = 1024M
+}
+
+INCLUDE linkcmds.base
Index: c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700
===================================================================
--- c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
+++ c/src/lib/libbsp/sparc/leon3/startup/linkcmds.ut700	(revision 4debaca6d2d6248f97bf3fbbd39a8afca0ab4beb)
@@ -0,0 +1,20 @@
+/*  linkcmds
+ */
+
+/* Default values, can be overridden */
+
+_PROM_SIZE = DEFINED (_PROM_SIZE) ? _PROM_SIZE : 2M;
+_PROM_START = DEFINED (_PROM_START) ? _PROM_START : 0x00000000;
+
+_RAM_SIZE = DEFINED (_RAM_SIZE) ? _RAM_SIZE : 4M;
+_RAM_START = DEFINED (_RAM_START) ? _RAM_START : 0x40000000;
+
+/* these are the maximum values */
+
+MEMORY
+{
+  rom     : ORIGIN = 0x00000000, LENGTH = 256M
+  ram     : ORIGIN = 0x40000000, LENGTH = 1024M
+}
+
+INCLUDE linkcmds.base
