$OpenBSD$
--- tclconfig/tcl.m4.orig	Mon Nov 21 20:54:51 2005
+++ tclconfig/tcl.m4	Fri Oct 19 15:36:23 2007
@@ -1440,28 +1440,46 @@ dnl AC_CHECK_TOOL(AR, ar, :)
 	    TCL_LIB_VERSIONS_OK=nodots
 	    ;;
 	OpenBSD-*)
-	    SHLIB_LD="${CC} -shared"
-	    SHLIB_LD_LIBS='${LIBS}'
-	    SHLIB_SUFFIX=".so"
-	    DL_OBJS="tclLoadDl.o"
-	    DL_LIBS=""
-	    LD_SEARCH_FLAGS=""
-	    AC_MSG_CHECKING(for ELF)
-	    AC_EGREP_CPP(yes, [
+		case `arch -s` in
+			m88k|vax)
+                SHLIB_CFLAGS=""
+                SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r"
+                SHLIB_LD_LIBS='${LIBS}'
+                SHLIB_SUFFIX=".a"
+                DL_OBJS="tclLoadAout.o"
+                DL_LIBS=""
+                LDFLAGS=""
+                CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+                LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+                SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+                ;;
+            *)
+                SHLIB_CFLAGS="-fPIC"
+                SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}"
+                SHLIB_LD_LIBS=""
+                SHLIB_SUFFIX=".so"
+                DL_OBJS="tclLoadDl.o"
+                DL_LIBS=""
+                CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+                LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+		 SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.${LIBtclx84_VERSION}'
+                AC_MSG_CHECKING(for ELF)
+                AC_EGREP_CPP(yes, [
 #ifdef __ELF__
-	yes
+        yes
 #endif
-	    ],
-		[AC_MSG_RESULT(yes)
-		SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'],
-		[AC_MSG_RESULT(no)
-		SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0']
-	    )
-
-	    # OpenBSD doesn't do version numbers with dots.
-	    UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
-	    TCL_LIB_VERSIONS_OK=nodots
-	    ;;
+                ],
+                AC_MSG_RESULT(yes)
+                [ LDFLAGS=-Wl,-export-dynamic ],
+                AC_MSG_RESULT(no)
+                LDFLAGS=""
+                )
+		;;
+		esac 
+		# OpenBSD doesn't do version numbers with dots.
+	        UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+       		TCL_LIB_VERSIONS_OK=nodots
+          ;;
 	FreeBSD-*)
 	    # FreeBSD 3.* and greater have ELF.
 	    SHLIB_CFLAGS="-fPIC"
@@ -3607,22 +3625,8 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
 
 AC_DEFUN(TEA_PROG_TCLSH, [
     AC_MSG_CHECKING([for tclsh])
-    if test -f "$TCL_BIN_DIR/Makefile" ; then
-        # tclConfig.sh is in Tcl build directory
-        if test "$TEA_PLATFORM" = "windows"; then
-            TCLSH_PROG=${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}
-        else
-            TCLSH_PROG=${TCL_BIN_DIR}/tclsh
-        fi
-    else
-        # tclConfig.sh is in $INSTALL/lib directory
-        REAL_TCL_BIN_DIR=`cd ${TCL_BIN_DIR}/../bin/;pwd`
-        if test "$TEA_PLATFORM" = "windows"; then
-            TCLSH_PROG=${REAL_TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}
-        else
-            TCLSH_PROG=${REAL_TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}
-        fi
-    fi
+    # tclConfig.sh is in $INSTALL/lib directory
+    TCLSH_PROG=${TCL_EXEC_PREFIX}/bin/tclsh${TCL_VERSION}
     AC_MSG_RESULT($TCLSH_PROG)
     AC_SUBST(TCLSH_PROG)
 ])
