Revert SF patch #103655.  Martin Löwis says:

-shared does the following things:
- invoke the linker with -G -dy -z text (the latter only if
  -mimpure-text was not given)
- drop crt1.o from the list of objects being linked
- drop -lc from the list of libraries being linked
OTOH, -G is just passed through to the linker.

The things that -shared does are necessary: crt1.o defines _start, and
requires main, so it should not be present in a shared library.
Likewise, -z text should be used to detect position-dependent code at
compile time.
diff --git a/configure.in b/configure.in
index 909b914..1457a03 100644
--- a/configure.in
+++ b/configure.in
@@ -544,7 +544,7 @@
 	SunOS/4*) LDSHARED="ld";;
 	SunOS/5*) 
 		if test "$GCC" = "yes"
-		then LDSHARED='$(CC) -G'
+		then LDSHARED='$(CC) -shared'
 		else LDSHARED="ld -G";
 		fi ;;
 	hp*|HP*) LDSHARED="ld -b";;