You cannot use LD to link on sh, you must use gcc otherwise shared
libraries will not work since ld doesn't know about the hidden gcc
shared libary requirements.

--- perl-5.8.7/Cross/Makefile	2006/09/25 05:52:56	1.1
+++ perl-5.8.7/Cross/Makefile	2006/09/25 05:57:34
@@ -12,7 +12,7 @@
 
 export CC = $(CROSS)gcc
 export CXX = $(CROSS)g++
-export LD = $(CROSS)ld
+export LD = $(CC)
 export STRIP = $(CROSS)strip
 export AR = $(CROSS)ar
 export RANLIB = $(CROSS)ranlib

--- perl-5.8.7/Makefile.SH.orig	2003-07-10 14:59:04.000000000 -0700
+++ perl-5.8.7/Makefile.SH	2003-07-10 15:14:08.000000000 -0700
@@ -494,7 +494,7 @@
 	case "$useshrplib" in
 	true)
 		$spitshell >>Makefile <<'!NO!SUBS!'
-	$(LD) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs) -soname libperl.so.5
+	$(CC) -o $@ $(SHRPLDFLAGS) perl$(OBJ_EXT) $(obj) $(libs) -Wl,-soname,libperl.so.5
 !NO!SUBS!
 		case "$osname" in
 		aix)