diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c7d73fb359d93d7ba26928410059df3510f6a1ca..34c62e38b779e51e065091f9860aa2b38bc182dd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
+
+	* config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define
+	and include netbsd_entry_point.
+	(SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF.
+	(NETBSD_ENTRY_POINT): Define.
+
 2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
 
 	* config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty
diff --git a/gcc/config/sh/netbsd-elf.h b/gcc/config/sh/netbsd-elf.h
index fd9f0c324ebdab1703eea036e392ca189775e81f..ce714020e371a69805e98bb685b94289cd734844 100644
--- a/gcc/config/sh/netbsd-elf.h
+++ b/gcc/config/sh/netbsd-elf.h
@@ -41,6 +41,13 @@ Boston, MA 02111-1307, USA.  */
                                  TARGET_VERSION_CPU, TARGET_VERSION_ENDIAN)
 
 
+/* Extra specs needed for NetBSD SuperH ELF targets.  */
+
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS						\
+  { "netbsd_entry_point", NETBSD_ENTRY_POINT },
+
+
 #define TARGET_OS_CPP_BUILTINS()					\
   do									\
     {									\
@@ -73,22 +80,12 @@ Boston, MA 02111-1307, USA.  */
 #define SUBTARGET_LINK_EMUL_SUFFIX "_nbsd"
 
 #undef SUBTARGET_LINK_SPEC
-#define SUBTARGET_LINK_SPEC \
-  "%{assert*} %{R*} \
-   %{shared:-shared} \
-   %{!shared: \
-     -dc -dp \
-     %{!nostdlib: \
-       %{!r*: \
-	 %{!e*:-e __start}}} \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \
-     %{static:-static}}"
+#define SUBTARGET_LINK_SPEC NETBSD_LINK_SPEC_ELF
 
 #undef LINK_SPEC
 #define LINK_SPEC SH_LINK_SPEC
 
+#define NETBSD_ENTRY_POINT "__start"
 
 /* Provide a CPP_SPEC appropriate for NetBSD.  */
 #undef SUBTARGET_CPP_SPEC