--- configure.in.orig	Fri Jan 26 23:46:36 2007
+++ configure.in	Fri Jan 26 23:47:56 2007
@@ -648,31 +648,15 @@
 	LD_SEARCH_FLAGS=""
 	;;
     NetBSD-*|FreeBSD-*|OpenBSD-*)
-	# Not available on all versions:  check for include file.
-	AC_CHECK_HEADER(dlfcn.h, [
-	    SHLIB_CFLAGS="-fpic"
-	    SHLIB_LD="ld -Bshareable -x"
-	    SHLIB_LD_LIBS=""
-	    SHLIB_SUFFIX=".so"
-	    DL_OBJS="tclLoadDl2.o"
-	    DL_LIBS=""
-	    LD_FLAGS=""
-	    LD_SEARCH_FLAGS=""
-	], [
-	    SHLIB_CFLAGS=""
-	    SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-	    SHLIB_LD_LIBS='${LIBS}'
-	    SHLIB_SUFFIX="..o"
-	    DL_OBJS="tclLoadAout.o"
-	    DL_LIBS=""
-	    LD_FLAGS=""
-	    LD_SEARCH_FLAGS=""
-	])
-
-	# FreeBSD doesn't handle version numbers with dots.  Also, have to
-	# append a dummy version number to .so file names.
-
-	TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.0'
+	SHLIB_CFLAGS="-fpic"
+	SHLIB_LD='${CC} -shared -Wl,-x'
+	SHLIB_SEARCH_FLAGS='-Wl,-soname,${TCL_LIB_FILE}'
+	SHLIB_SUFFIX=".so"
+	DL_OBJS="tclLoadDl.o"
+	DL_LIBS=""
+	LD_FLAGS=""
+	LD_SEARCH_FLAGS=""
+	TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1'
 	TCL_UNSHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.a'
 	TCL_LIB_VERSIONS_OK=nodots
 	;;
@@ -1012,7 +996,7 @@
     TCL_SHLIB_CFLAGS="${SHLIB_CFLAGS}"
     TCL_LD_SEARCH_FLAGS="${LD_SEARCH_FLAGS}"
     eval "TCL_LIB_FILE=libtcl${TCL_SHARED_LIB_SUFFIX}"
-    MAKE_LIB="\${SHLIB_LD} -o ${TCL_LIB_FILE} \${OBJS} ${SHLIB_LD_LIBS}"
+    MAKE_LIB="\${SHLIB_LD} -o ${TCL_LIB_FILE} ${SHLIB_SEARCH_FLAGS} \${OBJS} ${SHLIB_LD_LIBS}"
     RANLIB=":"
 else
     if test "$AIX" = "no" ; then
