diff --git a/ld/config/.Sanitize b/ld/config/.Sanitize
index 007c7d774af..a021d27cf94 100644
--- a/ld/config/.Sanitize
+++ b/ld/config/.Sanitize
@@ -59,11 +59,13 @@ news.mt
 ose68.mt
 rtbsd.mh
 sa29200.mt
+sparc64-elf.mt
 sparc-ll.mh
 st2000.mt
 sun3.mh
 sun3.mt
 sun4.mt
+sun4sol2.mt
 vax.mt
 vxworks68.mt
 z8ksim.mt
@@ -76,3 +78,17 @@ Things-to-lose:
 
 Do-last:
 
+if ( echo $* | grep keep-v9 > /dev/null ) ; then
+	if [ -n "${verbose}" ] ; then
+		echo Keeping `pwd`/sparc64-elf.mt.
+	fi
+else
+	if [ -n "${verbose}" ] ; then
+		echo Removing `pwd`/sparc64-elf.mt.
+	fi
+	if [ -n "${safe}" ] ; then
+		mv sparc64-elf.mt .Recover
+	else
+		rm sparc64-elf.mt
+	fi
+fi
diff --git a/ld/config/sun4sol2.mt b/ld/config/sun4sol2.mt
new file mode 100644
index 00000000000..34750f853b5
--- /dev/null
+++ b/ld/config/sun4sol2.mt
@@ -0,0 +1,5 @@
+EMUL=elf32_sparc
+OTHER_EMULATIONS= em_elf32_sparc.o
+em_elf32_sparc.c: $(srcdir)/emulparams/elf32-sparc.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+	${GENSCRIPTS} elf32-sparc.sh