Updated build system files and minor fix to the dnotify implementation. master
authorPat Thoyts <patthoyts@users.sourceforge.net>
Sun, 22 Oct 2006 10:48:19 +0000 (10:48 +0000)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Sun, 22 Oct 2006 10:48:19 +0000 (10:48 +0000)
configure
configure.in
demos/Fmonitor.tcl
tclconfig/ChangeLog
tclconfig/tcl.m4
unix/tclUnixFileMonitor.c

index 45213539d800cd9d040d83cc737f0feda1d05b05..86c50919758315e3b61bcf805762909bea443453 100755 (executable)
--- a/configure
+++ b/configure
@@ -308,7 +308,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS TCL_VERSION TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS CLEANFILES TCL_INCLUDES TCL_THREADS SHARED_BUILD AR TCLSH_PROG CELIB_DIR LIBOBJS DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING STLIB_LD SHLIB_LD SHLIB_CFLAGS SHLIB_LD_LIBS LDFLAGS_DEBUG LDFLAGS_OPTIMIZE LD_LIBRARY_PATH_VAR TCL_DBGX CFLAGS_DEFAULT LDFLAGS_DEFAULT MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CYGPATH EXEEXT PKG_LIB_FILE PKG_STUB_LIB_FILE PKG_STUB_SOURCES PKG_STUB_OBJECTS PKG_TCL_SOURCES PKG_HEADERS PKG_INCLUDES PKG_LIBS PKG_CFLAGS TCL_VERSION TCL_BIN_DIR TCL_SRC_DIR TCL_LIB_FILE TCL_LIB_FLAG TCL_LIB_SPEC TCL_STUB_LIB_FILE TCL_STUB_LIB_FLAG TCL_STUB_LIB_SPEC TCL_LIBS TCL_DEFS TCL_EXTRA_CFLAGS TCL_LD_FLAGS TCL_SHLIB_LD_LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE RANLIB ac_ct_RANLIB EGREP MATH_LIBS PKG_SOURCES PKG_OBJECTS CLEANFILES TCL_INCLUDES TCL_THREADS SHARED_BUILD AR CELIB_DIR LIBOBJS DL_LIBS CFLAGS_DEBUG CFLAGS_OPTIMIZE CFLAGS_WARNING STLIB_LD SHLIB_LD SHLIB_LD_LIBS SHLIB_CFLAGS LD_LIBRARY_PATH_VAR TCL_DBGX CFLAGS_DEFAULT LDFLAGS_DEFAULT MAKE_LIB MAKE_SHARED_LIB MAKE_STATIC_LIB MAKE_STUB_LIB RANLIB_STUB TCLSH_PROG LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -842,17 +842,19 @@ Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-threads        build with threads
-  --enable-shared         build and link with shared libraries --enable-shared
-  --enable-64bit          enable 64bit support (where applicable)
-  --enable-64bit-vis      enable 64bit Sparc VIS support
+  --enable-shared         build and link with shared libraries (default: on)
+  --enable-64bit          enable 64bit support (default: off)
+  --enable-64bit-vis      enable 64bit Sparc VIS support (default: off)
   --enable-wince          enable Win/CE support (where applicable)
-  --disable-load          disallow dynamic loading and "load" command
-  --enable-symbols        build with debugging symbols --disable-symbols
+  --enable-load           allow dynamic loading and "load" command (default:
+                          on)
+  --enable-symbols        build with debugging symbols (default: off)
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-tcl              directory containing tcl configuration (tclConfig.sh)
+  --with-tcl              directory containing tcl configuration
+                          (tclConfig.sh)
   --with-tclinclude       directory containing the public Tcl header files
   --with-celib=DIR        use Windows/CE support library from DIR
 
@@ -1323,7 +1325,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
     # TEA extensions pass this us the version of TEA they think they
     # are compatible with.
-    TEA_VERSION="3.2"
+    TEA_VERSION="3.5"
 
     echo "$as_me:$LINENO: checking for correct TEA configuration" >&5
 echo $ECHO_N "checking for correct TEA configuration... $ECHO_C" >&6
@@ -1334,15 +1336,15 @@ echo "$as_me: error:
 The PACKAGE_NAME variable must be defined by your TEA configure.in" >&2;}
    { (exit 1); exit 1; }; }
     fi
-    if test x"3.2" = x ; then
+    if test x"3.5" = x ; then
        { { echo "$as_me:$LINENO: error:
 TEA version not specified." >&5
 echo "$as_me: error:
 TEA version not specified." >&2;}
    { (exit 1); exit 1; }; }
-    elif test "3.2" != "${TEA_VERSION}" ; then
-       echo "$as_me:$LINENO: result: warning: requested TEA version \"3.2\", have \"${TEA_VERSION}\"" >&5
-echo "${ECHO_T}warning: requested TEA version \"3.2\", have \"${TEA_VERSION}\"" >&6
+    elif test "3.5" != "${TEA_VERSION}" ; then
+       echo "$as_me:$LINENO: result: warning: requested TEA version \"3.5\", have \"${TEA_VERSION}\"" >&5
+echo "${ECHO_T}warning: requested TEA version \"3.5\", have \"${TEA_VERSION}\"" >&6
     else
        echo "$as_me:$LINENO: result: ok (TEA ${TEA_VERSION})" >&5
 echo "${ECHO_T}ok (TEA ${TEA_VERSION})" >&6
@@ -1504,12 +1506,12 @@ echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >
                        `ls -dr ../tcl[8-9].[0-9] 2>/dev/null` \
                        `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
                        ../../tcl \
-                        `ls -dr ../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
-                        `ls -dr ../../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../../tcl[8-9].[0-9] 2>/dev/null` \
                        `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
                        ../../../tcl \
-                        `ls -dr ../../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
-                        `ls -dr ../../../tcl[8-9].[0-9] 2>/dev/null` \
+                       `ls -dr ../../../tcl[8-9].[0-9].[0-9]* 2>/dev/null` \
+                       `ls -dr ../../../tcl[8-9].[0-9] 2>/dev/null` \
                        `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
                    if test -f "$i/unix/tclConfig.sh" ; then
                        ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
@@ -1518,9 +1520,37 @@ echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >
                done
            fi
 
+           # on Darwin, check in Framework installation locations
+           if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
+                       `ls -d /Library/Frameworks 2>/dev/null` \
+                       `ls -d /Network/Library/Frameworks 2>/dev/null` \
+                       `ls -d /System/Library/Frameworks 2>/dev/null` \
+                       ; do
+                   if test -f "$i/Tcl.framework/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # on Windows, check in common installation locations
+           if test "${TEA_PLATFORM}" = "windows" \
+               -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d C:/Tcl/lib 2>/dev/null` \
+                       `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
            # check in a few common install locations
            if test x"${ac_cv_c_tclconfig}" = x ; then
-               for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
                        `ls -d ${prefix}/lib 2>/dev/null` \
                        `ls -d /usr/local/lib 2>/dev/null` \
                        `ls -d /usr/contrib/lib 2>/dev/null` \
@@ -1552,54 +1582,70 @@ fi
 
        if test x"${ac_cv_c_tclconfig}" = x ; then
            TCL_BIN_DIR="# no Tcl configs found"
-           { echo "$as_me:$LINENO: WARNING: \"Cannot find Tcl configuration definitions\"" >&5
-echo "$as_me: WARNING: \"Cannot find Tcl configuration definitions\"" >&2;}
+           { echo "$as_me:$LINENO: WARNING: Can't find Tcl configuration definitions" >&5
+echo "$as_me: WARNING: Can't find Tcl configuration definitions" >&2;}
            exit 0
        else
            no_tcl=
            TCL_BIN_DIR=${ac_cv_c_tclconfig}
-           echo "$as_me:$LINENO: result: found $TCL_BIN_DIR/tclConfig.sh" >&5
-echo "${ECHO_T}found $TCL_BIN_DIR/tclConfig.sh" >&6
+           echo "$as_me:$LINENO: result: found ${TCL_BIN_DIR}/tclConfig.sh" >&5
+echo "${ECHO_T}found ${TCL_BIN_DIR}/tclConfig.sh" >&6
        fi
     fi
 
 
-    echo "$as_me:$LINENO: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
-echo $ECHO_N "checking for existence of $TCL_BIN_DIR/tclConfig.sh... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for existence of ${TCL_BIN_DIR}/tclConfig.sh" >&5
+echo $ECHO_N "checking for existence of ${TCL_BIN_DIR}/tclConfig.sh... $ECHO_C" >&6
 
-    if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+    if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
         echo "$as_me:$LINENO: result: loading" >&5
 echo "${ECHO_T}loading" >&6
-       . $TCL_BIN_DIR/tclConfig.sh
+       . ${TCL_BIN_DIR}/tclConfig.sh
     else
-        echo "$as_me:$LINENO: result: file not found" >&5
-echo "${ECHO_T}file not found" >&6
+        echo "$as_me:$LINENO: result: could not find ${TCL_BIN_DIR}/tclConfig.sh" >&5
+echo "${ECHO_T}could not find ${TCL_BIN_DIR}/tclConfig.sh" >&6
     fi
 
-    #
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
+    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
+
     # If the TCL_BIN_DIR is the build directory (not the install directory),
     # then set the common variable name to the value of the build variables.
     # For example, the variable TCL_LIB_SPEC will be set to the value
     # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
     # instead of TCL_BUILD_LIB_SPEC since it will work with both an
     # installed and uninstalled version of Tcl.
-    #
-
-    if test -f $TCL_BIN_DIR/Makefile ; then
+    if test -f ${TCL_BIN_DIR}/Makefile ; then
         TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
         TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
         TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
+    elif test "`uname -s`" = "Darwin"; then
+       # If Tcl was built as a framework, attempt to use the libraries
+       # from the framework at the given location so that linking works
+       # against Tcl.framework installed in an arbitary location.
+       case ${TCL_DEFS} in
+           *TCL_FRAMEWORK*)
+               if test -f ${TCL_BIN_DIR}/${TCL_LIB_FILE}; then
+                   for i in "`cd ${TCL_BIN_DIR}; pwd`" \
+                            "`cd ${TCL_BIN_DIR}/../..; pwd`"; do
+                       if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then
+                           TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}"
+                           break
+                       fi
+                   done
+               fi
+               if test -f ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}; then
+                   TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}"
+                   TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"
+               fi
+               ;;
+       esac
     fi
 
-    #
     # eval is required to do the TCL_DBGX substitution
-    #
-
-    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
     eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
     eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
-
-    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
     eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
     eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
 
@@ -1620,8 +1666,6 @@ echo "${ECHO_T}file not found" >&6
 
 
 
-    #AC_SUBST(TCL_BUILD_LIB_SPEC)
-    #AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
 
 
 #--------------------------------------------------------------------
@@ -4521,10 +4565,11 @@ fi
 
     echo "$as_me:$LINENO: checking dirent.h" >&5
 echo $ECHO_N "checking dirent.h... $ECHO_C" >&6
-    if test "${tcl_cv_dirent_h+set}" = set; then
+if test "${tcl_cv_dirent_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+
+    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -4589,7 +4634,8 @@ fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 fi
-
+echo "$as_me:$LINENO: result: $tcl_cv_dirent_h" >&5
+echo "${ECHO_T}$tcl_cv_dirent_h" >&6
 
     if test $tcl_cv_dirent_h = no; then
 
@@ -4599,8 +4645,6 @@ _ACEOF
 
     fi
 
-    echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
     if test "${ac_cv_header_errno_h+set}" = set; then
   echo "$as_me:$LINENO: checking for errno.h" >&5
 echo $ECHO_N "checking for errno.h... $ECHO_C" >&6
@@ -6029,7 +6073,6 @@ fi
 done
 
 
-
        # Let the user call this, because if it triggers, they will
        # need a compat/strtod.c that is correct.  Users can also
        # use Tcl_GetDouble(FromObj) instead.
@@ -6285,17 +6328,36 @@ echo "$as_me: error: ${with_tclinclude} directory does not contain tcl.h" >&2;}
    { (exit 1); exit 1; }; }
            fi
        else
+           if test "`uname -s`" = "Darwin"; then
+               # If Tcl was built as a framework, attempt to use
+               # the framework's Headers directory
+               case ${TCL_DEFS} in
+                   *TCL_FRAMEWORK*)
+                       list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`"
+                       ;;
+               esac
+           fi
+
+           # Look in the source dir only if Tcl is not installed,
+           # and in that situation, look there before installed locations.
+           if test -f "${TCL_BIN_DIR}/Makefile" ; then
+               list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`"
+           fi
+
            # Check order: pkg --prefix location, Tcl's --prefix location,
-           # directory of tclConfig.sh, and Tcl source directory.
-           # Looking in the source dir is not ideal, but OK.
+           # relative to directory of tclConfig.sh.
 
            eval "temp_includedir=${includedir}"
-           list="`ls -d ${temp_includedir}      2>/dev/null` \
+           list="$list \
+               `ls -d ${temp_includedir}        2>/dev/null` \
                `ls -d ${TCL_PREFIX}/include     2>/dev/null` \
-               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null` \
-               `ls -d ${TCL_SRC_DIR}/generic    2>/dev/null`"
+               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
            if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
                list="$list /usr/local/include /usr/include"
+               if test x"${TCL_INCLUDE_SPEC}" != x ; then
+                   d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'`
+                   list="$list `ls -d ${d} 2>/dev/null`"
+               fi
            fi
            for i in $list ; do
                if test -f "$i/tcl.h" ; then
@@ -6344,14 +6406,24 @@ if test "${enable_threads+set}" = set; then
   enableval="$enable_threads"
   tcl_ok=$enableval
 else
-  tcl_ok=
+  tcl_ok=yes
 fi;
 
+    if test "${enable_threads+set}" = set; then
+       enableval="$enable_threads"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
     if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
        TCL_THREADS=1
 
        if test "${TEA_PLATFORM}" != "windows" ; then
-           # We are always OK on Windows, so check what this platform wants.
+           # We are always OK on Windows, so check what this platform wants:
+
+           # USE_THREAD_ALLOC tells us to try the special thread-based
+           # allocator that significantly reduces lock contention
 
 cat >>confdefs.h <<\_ACEOF
 #define USE_THREAD_ALLOC 1
@@ -6362,6 +6434,13 @@ cat >>confdefs.h <<\_ACEOF
 #define _REENTRANT 1
 _ACEOF
 
+           if test "`uname -s`" = "SunOS" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _POSIX_PTHREAD_SEMANTICS 1
+_ACEOF
+
+           fi
 
 cat >>confdefs.h <<\_ACEOF
 #define _THREAD_SAFE 1
@@ -6437,12 +6516,11 @@ else
 fi
 
            if test "$tcl_ok" = "no"; then
-               # Check a little harder for __pthread_mutex_init in the
-               # same library, as some systems hide it there until
-               # pthread.h is defined.  We could alternatively do an
-               # AC_TRY_COMPILE with pthread.h, but that will work with
-               # libpthread really doesn't exist, like AIX 4.2.
-               # [Bug: 4359]
+               # Check a little harder for __pthread_mutex_init in the same
+               # library, as some systems hide it there until pthread.h is
+               # defined.  We could alternatively do an AC_TRY_COMPILE with
+               # pthread.h, but that will work with libpthread really doesn't
+               # exist, like AIX 4.2.  [Bug: 4359]
                echo "$as_me:$LINENO: checking for __pthread_mutex_init in -lpthread" >&5
 echo $ECHO_N "checking for __pthread_mutex_init in -lpthread... $ECHO_C" >&6
 if test "${ac_cv_lib_pthread___pthread_mutex_init+set}" = set; then
                            THREADS_LIBS=" -pthread"
                        else
                            TCL_THREADS=0
-                           { echo "$as_me:$LINENO: WARNING: \"Don t know how to find pthread lib on your system - thread support disabled\"" >&5
-echo "$as_me: WARNING: \"Don t know how to find pthread lib on your system - thread support disabled\"" >&2;}
+                           { echo "$as_me:$LINENO: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&5
+echo "$as_me: WARNING: Do not know how to find pthread lib on your system - thread support disabled" >&2;}
                        fi
                    fi
                fi
            fi
+       fi
+    else
+       TCL_THREADS=0
+    fi
+    # Do checking message here to not mess up interleaved configure output
+    echo "$as_me:$LINENO: checking for building with threads" >&5
+echo $ECHO_N "checking for building with threads... $ECHO_C" >&6
+    if test "${TCL_THREADS}" = 1; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TCL_THREADS 1
+_ACEOF
+
+       echo "$as_me:$LINENO: result: yes (default)" >&5
+echo "${ECHO_T}yes (default)" >&6
+    else
+       echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    fi
+    # TCL_THREADS sanity checking.  See if our request for building with
+    # threads is the same as the way Tcl was built.  If not, warn the user.
+    case ${TCL_DEFS} in
+       *THREADS=1*)
+           if test "${TCL_THREADS}" = "0"; then
+               { echo "$as_me:$LINENO: WARNING:
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads." >&5
+echo "$as_me: WARNING:
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads." >&2;}
+           fi
+           ;;
+       *)
+           if test "${TCL_THREADS}" = "1"; then
+               { echo "$as_me:$LINENO: WARNING:
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core." >&5
+echo "$as_me: WARNING:
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core." >&2;}
+           fi
+           ;;
+    esac
 
-           # Does the pthread-implementation provide
-           # 'pthread_attr_setstacksize' ?
 
-           ac_saved_libs=$LIBS
-           LIBS="$LIBS $THREADS_LIBS"
 
-for ac_func in pthread_attr_setstacksize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+#--------------------------------------------------------------------
+# The statement below defines a collection of symbols related to
+# building as a shared library instead of a static library.
+#--------------------------------------------------------------------
+
+
+    echo "$as_me:$LINENO: checking how to build libraries" >&5
+echo $ECHO_N "checking how to build libraries... $ECHO_C" >&6
+    # Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+  tcl_ok=$enableval
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  tcl_ok=yes
+fi;
+
+    if test "${enable_shared+set}" = set; then
+       enableval="$enable_shared"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
+
+    if test "$tcl_ok" = "yes" ; then
+       echo "$as_me:$LINENO: result: shared" >&5
+echo "${ECHO_T}shared" >&6
+       SHARED_BUILD=1
+    else
+       echo "$as_me:$LINENO: result: static" >&5
+echo "${ECHO_T}static" >&6
+       SHARED_BUILD=0
+
+cat >>confdefs.h <<\_ACEOF
+#define STATIC_BUILD 1
+_ACEOF
+
+    fi
+
+
+
+#--------------------------------------------------------------------
+# Package specific configuration.
+#--------------------------------------------------------------------
+
+
+
+    echo "$as_me:$LINENO: checking for kqueue" >&5
+echo $ECHO_N "checking for kqueue... $ECHO_C" >&6
+    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/time.h>
 
 int
 main ()
 {
-return f != $ac_func;
+
+   struct kevent kev;
+   int kq, n;
+   kq = kqueue();
+   n = kevent(kq, NULL, 0, &kev, 1, NULL);
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -6822,304 +6954,42 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
+        { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
+  have_kqueue=yes; cat >>confdefs.h <<\_ACEOF
+#define HAVE_KQUEUE 1
+_ACEOF
+
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
+have_kqueue=no
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+    echo "$as_me:$LINENO: result: $have_kqueue" >&5
+echo "${ECHO_T}$have_kqueue" >&6
 
-fi
-done
 
-           LIBS=$ac_saved_libs
 
-for ac_func in readdir_r
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
+    echo "$as_me:$LINENO: checking for F_NOTIFY" >&5
+echo $ECHO_N "checking for F_NOTIFY... $ECHO_C" >&6
+    cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
+#define _GNU_SOURCE
+#include <fcntl.h>
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-       fi
-    else
-       TCL_THREADS=0
-    fi
-    # Do checking message here to not mess up interleaved configure output
-    echo "$as_me:$LINENO: checking for building with threads" >&5
-echo $ECHO_N "checking for building with threads... $ECHO_C" >&6
-    if test "${TCL_THREADS}" = "1"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TCL_THREADS 1
-_ACEOF
-
-       #LIBS="$LIBS $THREADS_LIBS"
-       echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-    else
-       echo "$as_me:$LINENO: result: no (default)" >&5
-echo "${ECHO_T}no (default)" >&6
-    fi
-    # TCL_THREADS sanity checking.  See if our request for building with
-    # threads is the same as the way Tcl was built.  If not, warn the user.
-    case ${TCL_DEFS} in
-       *THREADS=1*)
-           if test "${TCL_THREADS}" = "0"; then
-               { echo "$as_me:$LINENO: WARNING:
-    Building ${PACKAGE_NAME} without threads enabled, but building against a Tcl
-    that IS thread-enabled." >&5
-echo "$as_me: WARNING:
-    Building ${PACKAGE_NAME} without threads enabled, but building against a Tcl
-    that IS thread-enabled." >&2;}
-           fi
-           ;;
-       *)
-           if test "${TCL_THREADS}" = "1"; then
-               { echo "$as_me:$LINENO: WARNING:
-    --enable-threads requested, but attempting building against a Tcl
-    that is NOT thread-enabled." >&5
-echo "$as_me: WARNING:
-    --enable-threads requested, but attempting building against a Tcl
-    that is NOT thread-enabled." >&2;}
-           fi
-           ;;
-    esac
-
-
-
-#--------------------------------------------------------------------
-# The statement below defines a collection of symbols related to
-# building as a shared library instead of a static library.
-#--------------------------------------------------------------------
-
-
-    echo "$as_me:$LINENO: checking how to build libraries" >&5
-echo $ECHO_N "checking how to build libraries... $ECHO_C" >&6
-    # Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval="$enable_shared"
-  tcl_ok=$enableval
-else
-  tcl_ok=yes
-fi;
-
-    if test "${enable_shared+set}" = set; then
-       enableval="$enable_shared"
-       tcl_ok=$enableval
-    else
-       tcl_ok=yes
-    fi
-
-    if test "$tcl_ok" = "yes" ; then
-       echo "$as_me:$LINENO: result: shared" >&5
-echo "${ECHO_T}shared" >&6
-       SHARED_BUILD=1
-    else
-       echo "$as_me:$LINENO: result: static" >&5
-echo "${ECHO_T}static" >&6
-       SHARED_BUILD=0
-
-cat >>confdefs.h <<\_ACEOF
-#define STATIC_BUILD 1
-_ACEOF
-
-    fi
-
-
-
-#--------------------------------------------------------------------
-# Package specific configuration.
-#--------------------------------------------------------------------
-
-
-
-    echo "$as_me:$LINENO: checking for kqueue" >&5
-echo $ECHO_N "checking for kqueue... $ECHO_C" >&6
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <sys/types.h>
-#include <sys/event.h>
-#include <sys/time.h>
-
-int
-main ()
-{
-
-   struct kevent kev;
-   int kq, n;
-   kq = kqueue();
-   n = kevent(kq, NULL, 0, &kev, 1, NULL);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  have_kqueue=yes; cat >>confdefs.h <<\_ACEOF
-#define HAVE_KQUEUE 1
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-have_kqueue=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-    echo "$as_me:$LINENO: result: $have_kqueue" >&5
-echo "${ECHO_T}$have_kqueue" >&6
-
-
-
-    echo "$as_me:$LINENO: checking for F_NOTIFY" >&5
-echo $ECHO_N "checking for F_NOTIFY... $ECHO_C" >&6
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#define _GNU_SOURCE
-#include <fcntl.h>
-
-int
-main ()
+int
+main ()
 {
  fcntl(0, F_NOTIFY, DN_MODIFY);
   ;
@@ -7169,56 +7039,12 @@ echo "${ECHO_T}$have_f_notify" >&6
 #--------------------------------------------------------------------
 
 
-    # Allow the user to provide this setting in the env
-    if test "x${TCLSH_PROG}" = "x" ; then
-       echo "$as_me:$LINENO: checking for tclsh" >&5
-echo $ECHO_N "checking for tclsh... $ECHO_C" >&6
-
-       if test "${ac_cv_path_tclsh+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target tclsh in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/tclsh[8-9]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_tclsh" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_tclsh=$j
-                       break
-                   fi
-               fi
-           done
-       done
-
-fi
-
-
-       if test -f "$ac_cv_path_tclsh" ; then
-           TCLSH_PROG=$ac_cv_path_tclsh
-           echo "$as_me:$LINENO: result: $TCLSH_PROG" >&5
-echo "${ECHO_T}$TCLSH_PROG" >&6
-       else
-           { { echo "$as_me:$LINENO: error: No tclsh found in PATH: $search_path" >&5
-echo "$as_me: error: No tclsh found in PATH: $search_path" >&2;}
-   { (exit 1); exit 1; }; }
-       fi
-    fi
-
-
-
 
 
-    # Step 0: Enable 64 bit support?
+    # Step 0.a: Enable 64 bit support?
 
-    echo "$as_me:$LINENO: checking if 64bit support is enabled" >&5
-echo $ECHO_N "checking if 64bit support is enabled... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking if 64bit support is requested" >&5
+echo $ECHO_N "checking if 64bit support is requested... $ECHO_C" >&6
     # Check whether --enable-64bit or --disable-64bit was given.
 if test "${enable_64bit+set}" = set; then
   enableval="$enable_64bit"
@@ -7265,36 +7091,43 @@ echo "${ECHO_T}$doWince" >&6
     fi
 
     # Step 1: set the variable "system" to hold the name and version number
-    # for the system.  This can usually be done via the "uname" command, but
-    # there are a few systems, like Next, where this doesn't work.
+    # for the system.
 
-    echo "$as_me:$LINENO: checking system version (for dynamic loading)" >&5
-echo $ECHO_N "checking system version (for dynamic loading)... $ECHO_C" >&6
-    if test -f /usr/lib/NextStep/software_version; then
-       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-    else
-       system=`uname -s`-`uname -r`
-       if test "$?" -ne 0 ; then
-           echo "$as_me:$LINENO: result: unknown (can't find uname command)" >&5
-echo "${ECHO_T}unknown (can't find uname command)" >&6
-           system=unknown
+
+    echo "$as_me:$LINENO: checking system version" >&5
+echo $ECHO_N "checking system version... $ECHO_C" >&6
+if test "${tcl_cv_sys_version+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+       if test "${TEA_PLATFORM}" = "windows" ; then
+           tcl_cv_sys_version=windows
+       elif test -f /usr/lib/NextStep/software_version; then
+           tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
        else
-           # Special check for weird MP-RAS system (uname returns weird
-           # results, and the version is kept in special file).
+           tcl_cv_sys_version=`uname -s`-`uname -r`
+           if test "$?" -ne 0 ; then
+               { echo "$as_me:$LINENO: WARNING: can't find uname command" >&5
+echo "$as_me: WARNING: can't find uname command" >&2;}
+               tcl_cv_sys_version=unknown
+           else
+               # Special check for weird MP-RAS system (uname returns weird
+               # results, and the version is kept in special file).
 
-           if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
-               system=MP-RAS-`awk '{print }' /etc/.relid'`
-           fi
-           if test "`uname -s`" = "AIX" ; then
-               system=AIX-`uname -v`.`uname -r`
-           fi
-           if test "${TEA_PLATFORM}" = "windows" ; then
-               system=windows
+               if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+                   tcl_cv_sys_version=MP-RAS-`awk '{print $3}' /etc/.relid`
+               fi
+               if test "`uname -s`" = "AIX" ; then
+                   tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+               fi
            fi
-           echo "$as_me:$LINENO: result: $system" >&5
-echo "${ECHO_T}$system" >&6
        fi
-    fi
+
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_sys_version" >&5
+echo "${ECHO_T}$tcl_cv_sys_version" >&6
+    system=$tcl_cv_sys_version
+
 
     # Step 2: check for existence of -ldl library.  This is needed because
     # Linux can use either -ldl or -ldld for dynamic loading.
@@ -7369,24 +7202,31 @@ else
 fi
 
 
-    # Step 3: set configuration options based on system name and version.
-    # This is similar to Tcl's unix/tcl.m4 except that we've added a
-    # "windows" case and CC_SEARCH_FLAGS becomes LD_SEARCH_FLAGS for us
-    # (and we have no CC_SEARCH_FLAGS).
+    # Require ranlib early so we can override it in special cases below.
+
+
+
+    # Step 3: set configuration options based on system name and version.
+    # This is similar to Tcl's unix/tcl.m4 except that we've added a
+    # "windows" case.
 
     do64bit_ok=no
     LDFLAGS_ORIG="$LDFLAGS"
+    # When ld needs options to work in 64-bit mode, put them in
+    # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]
+    # is disabled by the user. [Bug 1016796]
+    LDFLAGS_ARCH=""
     TCL_EXPORT_FILE_SUFFIX=""
     UNSHARED_LIB_SUFFIX=""
     TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
     ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
     TCL_LIB_VERSIONS_OK=ok
     CFLAGS_DEBUG=-g
+    CFLAGS_OPTIMIZE=-O
     if test "$GCC" = "yes" ; then
        CFLAGS_OPTIMIZE=-O2
        CFLAGS_WARNING="-Wall -Wno-implicit-int"
     else
-       CFLAGS_OPTIMIZE=-O
        CFLAGS_WARNING=""
     fi
     TCL_NEEDS_EXP_FILE=0
@@ -7433,47 +7273,41 @@ fi
        windows)
            # This is a 2-stage check to make sure we have the 64-bit SDK
            # We have to know where the SDK is installed.
-           if test "$do64bit" = "yes" ; then
+           # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs
+           # MACHINE is IX86 for LINK, but this is used by the manifest,
+           # which requires x86|amd64|ia64.
+           MACHINE="X86"
+           if test "$do64bit" != "no" ; then
                if test "x${MSSDK}x" = "xx" ; then
-                   MSSDK="C:/Progra~1/Microsoft SDK"
+                   MSSDK="C:/Progra~1/Microsoft Platform SDK"
                fi
-               # Ensure that this path has no spaces to work in autoconf
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for MSSDK (${MSSDK})" >&5
-echo $ECHO_N "checking short pathname for MSSDK (${MSSDK})... $ECHO_C" >&6
-
-       shortpath=
-       case "${MSSDK}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${MSSDK}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           MSSDK=$shortpath
-           echo "$as_me:$LINENO: result: ${MSSDK}" >&5
-echo "${ECHO_T}${MSSDK}" >&6
-       fi
-    fi
-
-               if test ! -d "${MSSDK}/bin/win64" ; then
-                   { echo "$as_me:$LINENO: WARNING: could not find 64-bit SDK to enable 64bit mode" >&5
-echo "$as_me: WARNING: could not find 64-bit SDK to enable 64bit mode" >&2;}
+               MSSDK=`echo "$MSSDK" | sed -e  's!\\\!/!g'`
+               PATH64=""
+               case "$do64bit" in
+                   amd64|x64|yes)
+                       MACHINE="AMD64" ; # default to AMD64 64-bit build
+                       PATH64="${MSSDK}/Bin/Win64/x86/AMD64"
+                       ;;
+                   ia64)
+                       MACHINE="IA64"
+                       PATH64="${MSSDK}/Bin/Win64"
+                       ;;
+               esac
+               if test ! -d "${PATH64}" ; then
+                   { echo "$as_me:$LINENO: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&5
+echo "$as_me: WARNING: Could not find 64-bit $MACHINE SDK to enable 64bit mode" >&2;}
+                   { echo "$as_me:$LINENO: WARNING: Ensure latest Platform SDK is installed" >&5
+echo "$as_me: WARNING: Ensure latest Platform SDK is installed" >&2;}
                    do64bit="no"
                else
+                   echo "$as_me:$LINENO: result:    Using 64-bit $MACHINE mode" >&5
+echo "${ECHO_T}   Using 64-bit $MACHINE mode" >&6
                    do64bit_ok="yes"
                fi
            fi
 
            if test "$doWince" != "no" ; then
-               if test "$do64bit" = "yes" ; then
+               if test "$do64bit" != "no" ; then
                    { { echo "$as_me:$LINENO: error: Windows/CE and 64-bit builds incompatible" >&5
 echo "$as_me: error: Windows/CE and 64-bit builds incompatible" >&2;}
    { (exit 1); exit 1; }; }
@@ -7541,33 +7375,9 @@ echo "$as_me: error: Cannot find celib support library directory" >&2;}
        else
            no_celib=
            CELIB_DIR=${ac_cv_c_celibconfig}
+           CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
            echo "$as_me:$LINENO: result: found $CELIB_DIR" >&5
 echo "${ECHO_T}found $CELIB_DIR" >&6
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for CELIB_DIR (${ac_cv_c_celibconfig})" >&5
-echo $ECHO_N "checking short pathname for CELIB_DIR (${ac_cv_c_celibconfig})... $ECHO_C" >&6
-
-       shortpath=
-       case "${ac_cv_c_celibconfig}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${ac_cv_c_celibconfig}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           CELIB_DIR=$shortpath
-           echo "$as_me:$LINENO: result: ${CELIB_DIR}" >&5
-echo "${ECHO_T}${CELIB_DIR}" >&6
-       fi
-    fi
-
        fi
     fi
 
@@ -7605,57 +7415,8 @@ echo "${ECHO_T}${CELIB_DIR}" >&6
                        SDKROOT="C:/Windows CE Tools"
                    fi
                fi
-               # Ensure that this path has no spaces to work in autoconf
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for WCEROOT (${WCEROOT})" >&5
-echo $ECHO_N "checking short pathname for WCEROOT (${WCEROOT})... $ECHO_C" >&6
-
-       shortpath=
-       case "${WCEROOT}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${WCEROOT}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           WCEROOT=$shortpath
-           echo "$as_me:$LINENO: result: ${WCEROOT}" >&5
-echo "${ECHO_T}${WCEROOT}" >&6
-       fi
-    fi
-
-
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-
-
-       echo "$as_me:$LINENO: checking short pathname for SDKROOT (${SDKROOT})" >&5
-echo $ECHO_N "checking short pathname for SDKROOT (${SDKROOT})... $ECHO_C" >&6
-
-       shortpath=
-       case "${SDKROOT}" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [file attributes {${SDKROOT}} -shortname] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           echo "$as_me:$LINENO: result: not changed" >&5
-echo "${ECHO_T}not changed" >&6
-       else
-           SDKROOT=$shortpath
-           echo "$as_me:$LINENO: result: ${SDKROOT}" >&5
-echo "${ECHO_T}${SDKROOT}" >&6
-       fi
-    fi
-
+               WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`
+               SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`
                if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
                    -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
                    { { echo "$as_me:$LINENO: error: could not find PocketPC SDK or target compiler to enable WinCE mode $CEVERSION,$TARGETCPU,$ARCH,$PLATFORM" >&5
@@ -7680,27 +7441,37 @@ echo "$as_me: error: could not find PocketPC SDK or target compiler to enable Wi
                    runtime=-MD
                fi
 
-                if test "$do64bit" = "yes" ; then
+                if test "$do64bit" != "no" ; then
                    # All this magic is necessary for the Win64 SDK RC1 - hobbs
-                   CC="${MSSDK}/Bin/Win64/cl.exe"
-                   CFLAGS="${CFLAGS} -I${MSSDK}/Include/prerelease \
-                       -I${MSSDK}/Include/Win64/crt \
-                       -I${MSSDK}/Include"
-                   RC="${MSSDK}/bin/rc.exe"
-                   lflags="-MACHINE:IA64 -LIBPATH:${MSSDK}/Lib/IA64 \
-                       -LIBPATH:${MSSDK}/Lib/Prerelease/IA64 -nologo"
-                   LINKBIN="${MSSDK}/bin/win64/link.exe"
+                   CC="\"${PATH64}/cl.exe\""
+                   CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""
+                   RC="\"${MSSDK}/bin/rc.exe\""
+                   lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
+                   LINKBIN="\"${PATH64}/link.exe\""
                    CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
                    CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+                   # Avoid 'unresolved external symbol __security_cookie'
+                   # errors, c.f. http://support.microsoft.com/?id=894573
+
+    vars="bufferoverflowU.lib"
+    for i in $vars; do
+       if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
+           # Convert foo.lib to -lfoo for GCC.  No-op if not *.lib
+           i=`echo "$i" | sed -e 's/^\([^-].*\)\.lib$/-l\1/i'`
+       fi
+       PKG_LIBS="$PKG_LIBS $i"
+    done
+
+
                elif test "$doWince" != "no" ; then
                    CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"
                    if test "${TARGETCPU}" = "X86"; then
-                       CC="${CEBINROOT}/cl.exe"
+                       CC="\"${CEBINROOT}/cl.exe\""
                    else
-                       CC="${CEBINROOT}/cl${ARCH}.exe"
+                       CC="\"${CEBINROOT}/cl${ARCH}.exe\""
                    fi
                    CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
-                   RC="${WCEROOT}/Common/EVC/bin/rc.exe"
+                   RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""
                    arch=`echo ${ARCH} | awk '{print tolower($0)}'`
                    defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"
                    if test "${SHARED_BUILD}" = "1" ; then
@@ -7728,7 +7499,7 @@ _ACEOF
                    CFLAGS_OPTIMIZE="-nologo -Ox"
                    lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
                    lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
-                   LINKBIN="${CEBINROOT}/link.exe"
+                   LINKBIN="\"${CEBINROOT}/link.exe\""
 
                else
                    RC="rc"
@@ -7779,43 +7550,34 @@ _ACEOF
        AIX-*)
            if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" ; then
                # AIX requires the _r compiler when gcc isn't being used
-               if test "${CC}" != "cc_r" ; then
-                   CC=${CC}_r
-               fi
+               case "${CC}" in
+                   *_r)
+                       # ok ...
+                       ;;
+                   *)
+                       CC=${CC}_r
+                       ;;
+               esac
                echo "$as_me:$LINENO: result: Using $CC for compiling with threads" >&5
 echo "${ECHO_T}Using $CC for compiling with threads" >&6
            fi
            LIBS="$LIBS -lc"
            SHLIB_CFLAGS=""
-           SHLIB_SUFFIX=".so"
            SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
 
            DL_OBJS="tclLoadDl.o"
            LD_LIBRARY_PATH_VAR="LIBPATH"
 
-           # AIX v<=4.1 has some different flags than 4.2+
-           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
-               #LIBOBJS="$LIBOBJS tclLoadAix.o"
-               case $LIBOBJS in
-    "tclLoadAix.$ac_objext"   | \
-  *" tclLoadAix.$ac_objext"   | \
-    "tclLoadAix.$ac_objext "* | \
-  *" tclLoadAix.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS tclLoadAix.$ac_objext" ;;
-esac
-
-               DL_LIBS="-lld"
-           fi
-
            # Check to enable 64-bit flags for compiler/linker on AIX 4+
            if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then
                if test "$GCC" = "yes" ; then
-                   { echo "$as_me:$LINENO: WARNING: \"64bit mode not supported with GCC on $system\"" >&5
-echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
+                   { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
                else
                    do64bit_ok=yes
                    CFLAGS="$CFLAGS -q64"
-                   LDFLAGS="$LDFLAGS -q64"
+                   LDFLAGS_ARCH="-q64"
                    RANLIB="${RANLIB} -X64"
                    AR="${AR} -X64"
                    SHLIB_LD_FLAGS="-b64"
@@ -7828,10 +7590,11 @@ echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
                # AIX-5 has dl* in libc.so
                DL_LIBS=""
                if test "$GCC" = "yes" ; then
-                   LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+                   CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
                else
-                   LD_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
+                   CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
                fi
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
            else
                if test "$GCC" = "yes" ; then
                    SHLIB_LD="gcc -shared"
@@ -7840,11 +7603,25 @@ echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
                fi
                SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}"
                DL_LIBS="-ldl"
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
                TCL_NEEDS_EXP_FILE=1
                TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'
            fi
 
+           # AIX v<=4.1 has some different flags than 4.2+
+           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
+               case $LIBOBJS in
+    "tclLoadAix.$ac_objext"   | \
+  *" tclLoadAix.$ac_objext"   | \
+    "tclLoadAix.$ac_objext "* | \
+  *" tclLoadAix.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS tclLoadAix.$ac_objext" ;;
+esac
+
+               DL_LIBS="-lld"
+           fi
+
            # On AIX <=v4 systems, libbsd.a has to be linked in to support
            # non-blocking file IO.  This library has to be linked in after
            # the MATH_LIBS or it breaks the pow() function.  The way to
@@ -7942,6 +7719,79 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+
+           #-----------------------------------------------------------
+           # Check for inet_ntoa in -lbind, for BeOS (which also needs
+           # -lsocket, even if the network functions are in -lnet which
+           # is always linked to, for compatibility.
+           #-----------------------------------------------------------
+           echo "$as_me:$LINENO: checking for inet_ntoa in -lbind" >&5
+echo $ECHO_N "checking for inet_ntoa in -lbind... $ECHO_C" >&6
+if test "${ac_cv_lib_bind_inet_ntoa+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbind  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char inet_ntoa ();
+int
+main ()
+{
+inet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_bind_inet_ntoa=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_bind_inet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_bind_inet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_bind_inet_ntoa" >&6
+if test $ac_cv_lib_bind_inet_ntoa = yes; then
+  LIBS="$LIBS -lbind -lsocket"
+fi
+
            ;;
        BSD/OS-2.1*|BSD/OS-3*)
            SHLIB_CFLAGS=""
@@ -7950,6 +7800,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        BSD/OS-4.*)
@@ -7960,6 +7811,7 @@ _ACEOF
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
            LDFLAGS="$LDFLAGS -export-dynamic"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        dgux*)
@@ -7969,6 +7821,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        HP-UX-*.11.*)
@@ -7978,6 +7831,9 @@ cat >>confdefs.h <<\_ACEOF
 #define _XOPEN_SOURCE_EXTENDED 1
 _ACEOF
 
+           # Needed by Tcl, but not most extensions
+           #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])
+           #LIBS="$LIBS -lxnet"               # Use the XOPEN network library
 
            SHLIB_SUFFIX=".sl"
            echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
@@ -8056,13 +7912,14 @@ fi
                DL_OBJS="tclLoadShl.o"
                DL_LIBS="-ldld"
                LDFLAGS="$LDFLAGS -Wl,-E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
                LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
                LD_LIBRARY_PATH_VAR="SHLIB_PATH"
            fi
            if test "$GCC" = "yes" ; then
                SHLIB_LD="gcc -shared"
                SHLIB_LD_LIBS='${LIBS}'
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            fi
 
            # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
@@ -8078,16 +7935,18 @@ fi
                            do64bit_ok=yes
                            SHLIB_LD="${CC} -shared"
                            SHLIB_LD_LIBS='${LIBS}'
+                           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+                           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
                            ;;
                        *)
-                           { echo "$as_me:$LINENO: WARNING: \"64bit mode not supported with GCC on $system\"" >&5
-echo "$as_me: WARNING: \"64bit mode not supported with GCC on $system\"" >&2;}
+                           { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
                            ;;
                    esac
                else
                    do64bit_ok=yes
                    CFLAGS="$CFLAGS +DD64"
-                   LDFLAGS="$LDFLAGS +DD64"
+                   LDFLAGS_ARCH="+DD64"
                fi
            fi
            ;;
@@ -8169,20 +8028,10 @@ fi
                DL_OBJS="tclLoadShl.o"
                DL_LIBS="-ldld"
                LDFLAGS="$LDFLAGS -Wl,-E"
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
            fi
-           LD_LIBRARY_PATH_VAR="SHLIB_PATH"
-           ;;
-       IRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           SHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'
            ;;
        IRIX-5.*)
            SHLIB_CFLAGS=""
@@ -8191,16 +8040,18 @@ fi
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            ;;
-       IRIX-6.*|IRIX64-6.5*)
+       IRIX-6.*)
            SHLIB_CFLAGS=""
            SHLIB_LD="ld -n32 -shared -rdata_shared"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "$GCC" = "yes" ; then
                CFLAGS="$CFLAGS -mabi=n32"
                LDFLAGS="$LDFLAGS -mabi=n32"
@@ -8224,7 +8075,8 @@ fi
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
 
            # Check to enable 64-bit flags for compiler/linker
 
@@ -8236,7 +8088,7 @@ echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;}
                    do64bit_ok=yes
                    SHLIB_LD="ld -64 -shared -rdata_shared"
                    CFLAGS="$CFLAGS -64"
-                   LDFLAGS="$LDFLAGS -64"
+                   LDFLAGS_ARCH="-64"
                fi
            fi
            ;;
@@ -8249,176 +8101,28 @@ echo "$as_me: WARNING: 64bit mode not supported by gcc" >&2;}
            # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
            # when you inline the string and math operations.  Turn this off to
            # get rid of the warnings.
-
            #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-           else
-               if test "${ac_cv_header_dld_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking dld.h usability" >&5
-echo $ECHO_N "checking dld.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <dld.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
+           SHLIB_LD="${CC} -shared"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           if test "`uname -m`" = "alpha" ; then
+               CFLAGS="$CFLAGS -mieee"
+           fi
 
-# Is the header present?
-echo "$as_me:$LINENO: checking dld.h presence" >&5
-echo $ECHO_N "checking dld.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <dld.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: dld.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: dld.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: dld.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: dld.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: dld.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## -------------------------------------- ##
-## Report this to the filemonitor lists.  ##
-## -------------------------------------- ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_dld_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
-
-fi
-if test $ac_cv_header_dld_h = yes; then
-
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS="tclLoadDld.o"
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""
-fi
-
-
-           fi
-           if test "`uname -m`" = "alpha" ; then
-               CFLAGS="$CFLAGS -mieee"
-           fi
-
-           # The combo of gcc + glibc has a bug related
-           # to inlining of functions like strtod(). The
-           # -fno-builtin flag should address this problem
-           # but it does not work. The -fno-inline flag
-           # is kind of overkill but it works.
-           # Disable inlining only when one of the
-           # files in compat/*.c is being linked in.
-           if test x"${USE_COMPAT}" != x ; then
-               CFLAGS="$CFLAGS -fno-inline"
-           fi
+           # The combo of gcc + glibc has a bug related
+           # to inlining of functions like strtod(). The
+           # -fno-builtin flag should address this problem
+           # but it does not work. The -fno-inline flag
+           # is kind of overkill but it works.
+           # Disable inlining only when one of the
+           # files in compat/*.c is being linked in.
+           if test x"${USE_COMPAT}" != x ; then
+               CFLAGS="$CFLAGS -fno-inline"
+           fi
 
            ;;
        GNU*)
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS=""
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS=""
-           else
-               if test "${ac_cv_header_dld_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking dld.h usability" >&5
-echo $ECHO_N "checking dld.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <dld.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking dld.h presence" >&5
-echo $ECHO_N "checking dld.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <dld.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: dld.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: dld.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: dld.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: dld.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: dld.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: dld.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: dld.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dld.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: dld.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## -------------------------------------- ##
-## Report this to the filemonitor lists.  ##
-## -------------------------------------- ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for dld.h" >&5
-echo $ECHO_N "checking for dld.h... $ECHO_C" >&6
-if test "${ac_cv_header_dld_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_dld_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dld_h" >&5
-echo "${ECHO_T}$ac_cv_header_dld_h" >&6
-
-fi
-if test $ac_cv_header_dld_h = yes; then
-
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS=""
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""
-fi
-
-
-           fi
+           SHLIB_LD="${CC} -shared"
+           DL_OBJS=""
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
            if test "`uname -m`" = "alpha" ; then
                CFLAGS="$CFLAGS -mieee"
            fi
            ;;
-       MP-RAS-02*)
-           SHLIB_CFLAGS="-K PIC"
-           SHLIB_LD="cc -G"
-           SHLIB_LD_LIBS=""
-           SHLIB_SUFFIX=".so"
-           DL_OBJS="tclLoadDl.o"
-           DL_LIBS="-ldl"
-           LD_SEARCH_FLAGS=""
-           ;;
-       MP-RAS-*)
-           SHLIB_CFLAGS="-K PIC"
-           SHLIB_LD="cc -G"
-           SHLIB_LD_LIBS=""
+       Lynx*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
+           CFLAGS_OPTIMIZE=-02
+           SHLIB_LD="${CC} -shared "
            DL_OBJS="tclLoadDl.o"
-           DL_LIBS="-ldl"
-           LDFLAGS="$LDFLAGS -Wl,-Bexport"
-           LD_SEARCH_FLAGS=""
-           ;;
-       NetBSD-*|FreeBSD-[1-2].*)
-           # Not available on all versions:  check for include file.
-           if test "${ac_cv_header_dlfcn_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for dlfcn.h" >&5
-echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6
-if test "${ac_cv_header_dlfcn_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
-echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking dlfcn.h usability" >&5
-echo $ECHO_N "checking dlfcn.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <dlfcn.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking dlfcn.h presence" >&5
-echo $ECHO_N "checking dlfcn.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <dlfcn.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: dlfcn.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: dlfcn.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: dlfcn.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: dlfcn.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## -------------------------------------- ##
-## Report this to the filemonitor lists.  ##
-## -------------------------------------- ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for dlfcn.h" >&5
-echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6
-if test "${ac_cv_header_dlfcn_h+set}" = set; then
+           DL_LIBS="-mshared -ldl"
+           LD_FLAGS="-Wl,--export-dynamic"
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           ;;
+       MP-RAS-02*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       MP-RAS-*)
+           SHLIB_CFLAGS="-K PIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+       NetBSD-*|FreeBSD-[1-2].*)
+           # NetBSD/SPARC needs -fPIC, -fpic will not do.
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+           echo "$as_me:$LINENO: checking for ELF" >&5
+echo $ECHO_N "checking for ELF... $ECHO_C" >&6
+if test "${tcl_cv_ld_elf+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_header_dlfcn_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5
-echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6
-
-fi
-if test $ac_cv_header_dlfcn_h = yes; then
 
-               # NetBSD/SPARC needs -fPIC, -fpic will not do.
-               SHLIB_CFLAGS="-fPIC"
-               SHLIB_LD="ld -Bshareable -x"
-               SHLIB_LD_LIBS=""
-               SHLIB_SUFFIX=".so"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS=""
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-               echo "$as_me:$LINENO: checking for ELF" >&5
-echo $ECHO_N "checking for ELF... $ECHO_C" >&6
                cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8766,48 +8203,49 @@ cat >>conftest.$ac_ext <<_ACEOF
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "yes" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+  tcl_cv_ld_elf=yes
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
-
+  tcl_cv_ld_elf=no
 fi
 rm -f conftest*
 
-
-else
-
-               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=""
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
-
 fi
+echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+echo "${ECHO_T}$tcl_cv_ld_elf" >&6
+           if test $tcl_cv_ld_elf = yes; then
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+           else
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+           fi
 
-
-
-           # FreeBSD doesn't handle version numbers with dots.
+           # Ancient FreeBSD doesn't handle version numbers with dots.
 
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
        OpenBSD-*)
-           SHLIB_LD="${CC} -shared"
+           # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do.
+           case `machine` in
+           sparc|sparc64)
+               SHLIB_CFLAGS="-fPIC";;
+           *)
+               SHLIB_CFLAGS="-fpic";;
+           esac
+           SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
            echo "$as_me:$LINENO: checking for ELF" >&5
 echo $ECHO_N "checking for ELF... $ECHO_C" >&6
-           cat >conftest.$ac_ext <<_ACEOF
+if test "${tcl_cv_ld_elf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+               cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -8821,17 +8259,20 @@ cat >>conftest.$ac_ext <<_ACEOF
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "yes" >/dev/null 2>&1; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+  tcl_cv_ld_elf=yes
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
-
+  tcl_cv_ld_elf=no
 fi
 rm -f conftest*
 
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_ld_elf" >&5
+echo "${ECHO_T}$tcl_cv_ld_elf" >&6
+           if test $tcl_cv_ld_elf = yes; then
+               LDFLAGS=-Wl,-export-dynamic
+           else
+               LDFLAGS=""
+           fi
 
            # OpenBSD doesn't do version numbers with dots.
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
@@ -8846,7 +8287,8 @@ rm -f conftest*
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
            LDFLAGS="$LDFLAGS -export-dynamic"
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "${TCL_THREADS}" = "1" ; then
                # The -pthread needs to go in the CFLAGS, not LIBS
                LIBS=`echo $LIBS | sed s/-pthread//`
@@ -8865,16 +8307,35 @@ rm -f conftest*
        Darwin-*)
            CFLAGS_OPTIMIZE="-Os"
            SHLIB_CFLAGS="-fno-common"
-           SHLIB_LD="cc -dynamiclib \${LDFLAGS}"
+           if test $do64bit = yes; then
+               do64bit_ok=yes
+               case `arch` in
+                   ppc)
+                       CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5";;
+                   i386)
+                       CFLAGS="$CFLAGS -arch x86_64";;
+                   *)
+                       { echo "$as_me:$LINENO: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&5
+echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >&2;}
+                       do64bit_ok=no;;
+               esac
+           else
+               # Check for combined 32-bit and 64-bit fat build
+               echo "$CFLAGS " | grep -E -q -- '-arch (ppc64|x86_64) ' && \
+                   echo "$CFLAGS " | grep -E -q -- '-arch (ppc|i386) ' && \
+                   fat_32_64=yes
+           fi
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS here:
+           SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
            echo "$as_me:$LINENO: checking if ld accepts -single_module flag" >&5
 echo $ECHO_N "checking if ld accepts -single_module flag... $ECHO_C" >&6
 if test "${tcl_cv_ld_single_module+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-               hold_ldflags=$LDFLAGS
-               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
-               cat >conftest.$ac_ext <<_ACEOF
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
+               cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -8919,27 +8380,31 @@ tcl_cv_ld_single_module=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
-               LDFLAGS=$hold_ldflags
+               LDFLAGS=$hold_ldflags
 fi
 echo "$as_me:$LINENO: result: $tcl_cv_ld_single_module" >&5
 echo "${ECHO_T}$tcl_cv_ld_single_module" >&6
            if test $tcl_cv_ld_single_module = yes; then
-               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
+               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
            fi
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".dylib"
            DL_OBJS="tclLoadDyld.o"
            DL_LIBS=""
-           LDFLAGS="$LDFLAGS -prebind"
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int($2)}'`" -lt 4 -a \
+               "`echo "${CFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int($2)}'`" -lt 4 && \
+               LDFLAGS="$LDFLAGS -prebind"
+           LDFLAGS="$LDFLAGS -headerpad_max_install_names"
            echo "$as_me:$LINENO: checking if ld accepts -search_paths_first flag" >&5
 echo $ECHO_N "checking if ld accepts -search_paths_first flag... $ECHO_C" >&6
 if test "${tcl_cv_ld_search_paths_first+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-               hold_ldflags=$LDFLAGS
-               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
-               cat >conftest.$ac_ext <<_ACEOF
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+               cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -8984,15 +8449,22 @@ tcl_cv_ld_search_paths_first=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
-               LDFLAGS=$hold_ldflags
+               LDFLAGS=$hold_ldflags
 fi
 echo "$as_me:$LINENO: result: $tcl_cv_ld_search_paths_first" >&5
 echo "${ECHO_T}$tcl_cv_ld_search_paths_first" >&6
            if test $tcl_cv_ld_search_paths_first = yes; then
-               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
            fi
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+
+           # TEA specific: for Tk extensions, remove 64-bit arch flags from
+           # CFLAGS for combined 32-bit and 64-bit fat builds as neither TkAqua
+           # nor TkX11 can be built for 64-bit at present.
+           test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}" && \
+               CFLAGS="`echo "$CFLAGS " | sed -e 's/-arch ppc64 / /g' -e 's/-arch x86_64 / /g'`"
            ;;
        NEXTSTEP-*)
            SHLIB_CFLAGS=""
@@ -9001,6 +8473,7 @@ echo "${ECHO_T}$tcl_cv_ld_search_paths_first" >&6
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadNext.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OS/390-*)
@@ -9020,6 +8493,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadOSF.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-1.*)
@@ -9034,6 +8508,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-V*)
@@ -9048,6 +8523,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
            LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "$GCC" = "yes" ; then
                CFLAGS="$CFLAGS -mieee"
@@ -9078,18 +8554,9 @@ _ACEOF
            DL_OBJS="tclLoadDl.o"
            # dlopen is in -lc on QNX
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
-       RISCos-*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           SHLIB_SUFFIX=".a"
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           ;;
        SCO_SV-3.2*)
            # Note, dlopen is available only on SCO 3.2.5 and greater. However,
            # this test works, since "uname -s" was non-standard in 3.2.4 and
@@ -9106,6 +8573,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SINIX*5.4*)
@@ -9115,6 +8583,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SunOS-4*)
@@ -9124,7 +8593,8 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
 
            # SunOS can't handle version numbers with dots in them in library
            # specs, like -ltcl7.5, so use -ltcl75 instead.  Also, it
@@ -9135,7 +8605,8 @@ _ACEOF
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
-       SunOS-5.[0-6]*)
+       SunOS-5.[0-6])
+           # Careful to not let 5.10+ fall into this case
 
            # Note: If _REENTRANT isn't defined, then Solaris
            # won't define thread-safe library routines.
@@ -9162,14 +8633,15 @@ _ACEOF
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
-               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            fi
            ;;
        SunOS-5*)
-
            # Note: If _REENTRANT isn't defined, then Solaris
            # won't define thread-safe library routines.
 
@@ -9191,7 +8663,7 @@ _ACEOF
                arch=`isainfo`
                if test "$arch" = "sparcv9 sparc" ; then
                        if test "$GCC" = "yes" ; then
-                           if test "`gcc -dumpversion` | awk -F. '{print }'" -lt "3" ; then
+                           if test "`gcc -dumpversion | awk -F. '{print $1}'`" -lt "3" ; then
                                { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&5
 echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;}
                            else
@@ -9204,15 +8676,26 @@ echo "$as_me: WARNING: 64bit mode not supported with GCC < 3.2 on $system" >&2;}
                            do64bit_ok=yes
                            if test "$do64bitVIS" = "yes" ; then
                                CFLAGS="$CFLAGS -xarch=v9a"
-                               LDFLAGS="$LDFLAGS -xarch=v9a"
+                               LDFLAGS_ARCH="-xarch=v9a"
                            else
                                CFLAGS="$CFLAGS -xarch=v9"
-                               LDFLAGS="$LDFLAGS -xarch=v9"
+                               LDFLAGS_ARCH="-xarch=v9"
                            fi
+                           # Solaris 64 uses this as well
+                           #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
                        fi
+               elif test "$arch" = "amd64 i386" ; then
+                   if test "$GCC" = "yes" ; then
+                       { echo "$as_me:$LINENO: WARNING: 64bit mode not supported with GCC on $system" >&5
+echo "$as_me: WARNING: 64bit mode not supported with GCC on $system" >&2;}
+                   else
+                       do64bit_ok=yes
+                       CFLAGS="$CFLAGS -xarch=amd64"
+                       LDFLAGS="$LDFLAGS -xarch=amd64"
+                   fi
                else
-                   { echo "$as_me:$LINENO: WARNING: \"64bit mode only supported sparcv9 system\"" >&5
-echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
+                   { echo "$as_me:$LINENO: WARNING: 64bit mode not supported for $arch" >&5
+echo "$as_me: WARNING: 64bit mode not supported for $arch" >&2;}
                fi
            fi
 
@@ -9225,8 +8708,9 @@ echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
-               if test "$do64bit" = "yes" ; then
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               if test "$do64bit_ok" = "yes" ; then
                    # We need to specify -static-libgcc or we need to
                    # add the path to the sparv9 libgcc.
                    # JH: static-libgcc is necessary for core Tcl, but may
@@ -9235,26 +8719,14 @@ echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
                    # for finding sparcv9 libgcc, get the regular libgcc
                    # path, remove so name and append 'sparcv9'
                    #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
-                   #LD_SEARCH_FLAGS="${LD_SEARCH_FLAGS},-R,$v9gcclibdir"
+                   #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
                fi
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
                LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
            fi
            ;;
-       ULTRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           if test "$GCC" != "yes" ; then
-               CFLAGS="$CFLAGS -DHAVE_TZSET -std1"
-           fi
-           ;;
        UNIX_SV* | UnixWare-5*)
            SHLIB_CFLAGS="-KPIC"
            SHLIB_LD="cc -G"
@@ -9264,249 +8736,32 @@ echo "$as_me: WARNING: \"64bit mode only supported sparcv9 system\"" >&2;}
            DL_LIBS="-ldl"
            # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
            # that don't grok the -Bexport option.  Test that it does.
-           hold_ldflags=$LDFLAGS
            echo "$as_me:$LINENO: checking for ld accepts -Bexport flag" >&5
 echo $ECHO_N "checking for ld accepts -Bexport flag... $ECHO_C" >&6
-           LDFLAGS="$LDFLAGS -Wl,-Bexport"
-           cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-int i;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  found=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-LDFLAGS=$hold_ldflags found=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-           echo "$as_me:$LINENO: result: $found" >&5
-echo "${ECHO_T}$found" >&6
-           LD_SEARCH_FLAGS=""
-           ;;
-    esac
-
-    if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
-    { echo "$as_me:$LINENO: WARNING: \"64bit support being disabled -- don\'t know magic for this platform\"" >&5
-echo "$as_me: WARNING: \"64bit support being disabled -- don\'t know magic for this platform\"" >&2;}
-    fi
-
-    # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic
-    # Loading for Tcl -- What Became of It?".  Proc. 2nd Tcl/Tk Workshop,
-    # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need
-    # to determine which of several header files defines the a.out file
-    # format (a.out.h, sys/exec.h, or sys/exec_aout.h).  At present, we
-    # support only a file format that is more or less version-7-compatible.
-    # In particular,
-    #  - a.out files must begin with `struct exec'.
-    #  - the N_TXTOFF on the `struct exec' must compute the seek address
-    #    of the text segment
-    #  - The `struct exec' must contain a_magic, a_text, a_data, a_bss
-    #    and a_entry fields.
-    # The following compilation should succeed if and only if either sys/exec.h
-    # or a.out.h is usable for the purpose.
-    #
-    # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the
-    # `struct exec' includes a second header that contains information that
-    # duplicates the v7 fields that are needed.
-
-    if test "x$DL_OBJS" = "xtclLoadAout.o" ; then
-       echo "$as_me:$LINENO: checking sys/exec.h" >&5
-echo $ECHO_N "checking sys/exec.h... $ECHO_C" >&6
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/exec.h>
-int
-main ()
-{
-
-           struct exec foo;
-           unsigned long seek;
-           int flag;
-#if defined(__mips) || defined(mips)
-           seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-           seek = N_TXTOFF (foo);
-#endif
-           flag = (foo.a_magic == OMAGIC);
-           return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  tcl_ok=usable
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-tcl_ok=unusable
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-       echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
-       if test $tcl_ok = usable; then
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_SYS_EXEC_H 1
-_ACEOF
-
-       else
-           echo "$as_me:$LINENO: checking a.out.h" >&5
-echo $ECHO_N "checking a.out.h... $ECHO_C" >&6
-           cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <a.out.h>
-int
-main ()
-{
-
-               struct exec foo;
-               unsigned long seek;
-               int flag;
-#if defined(__mips) || defined(mips)
-               seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-               seek = N_TXTOFF (foo);
-#endif
-               flag = (foo.a_magic == OMAGIC);
-               return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  tcl_ok=usable
+if test "${tcl_cv_ld_Bexport+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-tcl_ok=unusable
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-           echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
-           if test $tcl_ok = usable; then
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_A_OUT_H 1
-_ACEOF
 
-           else
-               echo "$as_me:$LINENO: checking sys/exec_aout.h" >&5
-echo $ECHO_N "checking sys/exec_aout.h... $ECHO_C" >&6
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
                cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <sys/exec_aout.h>
+
 int
 main ()
-{
-
-                   struct exec foo;
-                   unsigned long seek;
-                   int flag;
-#if defined(__mips) || defined(mips)
-                   seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-                   seek = N_TXTOFF (foo);
-#endif
-                   flag = (foo.a_midmag == OMAGIC);
-                   return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-
+{
+int i;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -9519,36 +8774,39 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
-        { ac_try='test -s conftest.$ac_objext'
+        { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  tcl_ok=usable
+  tcl_cv_ld_Bexport=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-tcl_ok=unusable
+tcl_cv_ld_Bexport=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-               echo "$as_me:$LINENO: result: $tcl_ok" >&5
-echo "${ECHO_T}$tcl_ok" >&6
-               if test $tcl_ok = usable; then
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_SYS_EXEC_AOUT_H 1
-_ACEOF
-
-               else
-                   DL_OBJS=""
-               fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+               LDFLAGS=$hold_ldflags
+fi
+echo "$as_me:$LINENO: result: $tcl_cv_ld_Bexport" >&5
+echo "${ECHO_T}$tcl_cv_ld_Bexport" >&6
+           if test $tcl_cv_ld_Bexport = yes; then
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
            fi
-       fi
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
+           ;;
+    esac
+
+    if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
+       { echo "$as_me:$LINENO: WARNING: 64bit support being disabled -- don't know magic for this platform" >&5
+echo "$as_me: WARNING: 64bit support being disabled -- don't know magic for this platform" >&2;}
     fi
 
-    # Step 5: disable dynamic loading if requested via a command-line switch.
+    # Step 4: disable dynamic loading if requested via a command-line switch.
 
     # Check whether --enable-load or --disable-load was given.
 if test "${enable_load+set}" = set; then
@@ -9572,9 +8830,11 @@ fi;
        DL_OBJS="tclLoadNone.o"
        DL_LIBS=""
        LDFLAGS="$LDFLAGS_ORIG"
+       CC_SEARCH_FLAGS=""
        LD_SEARCH_FLAGS=""
        BUILD_DLTEST=""
     fi
+    LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"
 
     # If we're running gcc, then change the C flags for compiling shared
     # libraries to the right flags for gcc, instead of those for the
@@ -9593,12 +8853,8 @@ fi;
                    ;;
                Darwin-*)
                    ;;
-               RISCos-*)
-                   ;;
                SCO_SV-3.2*)
                    ;;
-               ULTRIX-4.*)
-                   ;;
                windows)
                    ;;
                *)
@@ -9628,6 +8884,7 @@ fi;
 
 
 
+
     # These must be called after we do the basic CFLAGS checks and
     # verify any possible 64-bit or similar switches are necessary
 
@@ -9840,6 +9097,109 @@ _ACEOF
        tcl_flags="$tcl_flags _LARGEFILE64_SOURCE"
     fi
 
+
+    if test "${tcl_cv_flag__largefile_source64+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/stat.h>
+int
+main ()
+{
+char *p = (char *)open64;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  tcl_cv_flag__largefile_source64=no
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE_SOURCE64 1
+#include <sys/stat.h>
+int
+main ()
+{
+char *p = (char *)open64;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  tcl_cv_flag__largefile_source64=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+tcl_cv_flag__largefile_source64=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    if test "x${tcl_cv_flag__largefile_source64}" = "xyes" ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define _LARGEFILE_SOURCE64 1
+_ACEOF
+
+       tcl_flags="$tcl_flags _LARGEFILE_SOURCE64"
+    fi
+
     if test "x${tcl_flags}" = "x" ; then
        echo "$as_me:$LINENO: result: none" >&5
 echo "${ECHO_T}none" >&6
@@ -9977,7 +9337,7 @@ echo "${ECHO_T}${tcl_cv_type_64bit}" >&6
        # Now check for auxiliary declarations
        echo "$as_me:$LINENO: checking for struct dirent64" >&5
 echo $ECHO_N "checking for struct dirent64... $ECHO_C" >&6
-       if test "${tcl_cv_struct_dirent64+set}" = set; then
+if test "${tcl_cv_struct_dirent64+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
@@ -10027,7 +9387,8 @@ tcl_cv_struct_dirent64=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
+echo "$as_me:$LINENO: result: $tcl_cv_struct_dirent64" >&5
+echo "${ECHO_T}$tcl_cv_struct_dirent64" >&6
        if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -10035,12 +9396,10 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
        fi
-       echo "$as_me:$LINENO: result: ${tcl_cv_struct_dirent64}" >&5
-echo "${ECHO_T}${tcl_cv_struct_dirent64}" >&6
 
        echo "$as_me:$LINENO: checking for struct stat64" >&5
 echo $ECHO_N "checking for struct stat64... $ECHO_C" >&6
-       if test "${tcl_cv_struct_stat64+set}" = set; then
+if test "${tcl_cv_struct_stat64+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
@@ -10090,7 +9449,8 @@ tcl_cv_struct_stat64=no
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
+echo "$as_me:$LINENO: result: $tcl_cv_struct_stat64" >&5
+echo "${ECHO_T}$tcl_cv_struct_stat64" >&6
        if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -10098,8 +9458,108 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
        fi
-       echo "$as_me:$LINENO: result: ${tcl_cv_struct_stat64}" >&5
-echo "${ECHO_T}${tcl_cv_struct_stat64}" >&6
+
+
+
+for ac_func in open64 lseek64
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
 
        echo "$as_me:$LINENO: checking for off64_t" >&5
 echo $ECHO_N "checking for off64_t... $ECHO_C" >&6
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-       if test "x${tcl_cv_type_off64_t}" = "xyes" ; then
+                       if test "x${tcl_cv_type_off64_t}" = "xyes" && \
+               test "x${ac_cv_func_lseek64}" = "xyes" && \
+               test "x${ac_cv_func_open64}" = "xyes" ; then
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_TYPE_OFF64_T 1
 _ACEOF
 
+           echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+           echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
        fi
-       echo "$as_me:$LINENO: result: ${tcl_cv_type_off64_t}" >&5
-echo "${ECHO_T}${tcl_cv_type_off64_t}" >&6
     fi
 
 
@@ -10173,9 +9638,6 @@ echo "${ECHO_T}${tcl_cv_type_off64_t}" >&6
 
 
 
-
-    DBGX=""
-
     echo "$as_me:$LINENO: checking for build with symbols" >&5
 echo $ECHO_N "checking for build with symbols... $ECHO_C" >&6
     # Check whether --enable-symbols or --disable-symbols was given.
@@ -10185,6 +9647,7 @@ if test "${enable_symbols+set}" = set; then
 else
   tcl_ok=no
 fi;
+    DBGX=""
     if test "$tcl_ok" = "no"; then
        CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
        LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
@@ -10279,8 +9742,11 @@ _ACEOF
        else
            eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       if test "$GCC" = "yes"; then
+           PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
+       fi
        # These aren't needed on Windows (either MSVC or gcc)
        RANLIB=:
        RANLIB_STUB=:
@@ -10296,7 +9762,7 @@ _ACEOF
        else
            eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
     fi
 
@@ -10324,47 +9790,35 @@ _ACEOF
 #--------------------------------------------------------------------
 
 
-    # Allow the user to provide this setting in the env
-    if test "x${TCLSH_PROG}" = "x" ; then
-       echo "$as_me:$LINENO: checking for tclsh" >&5
+    echo "$as_me:$LINENO: checking for tclsh" >&5
 echo $ECHO_N "checking for tclsh... $ECHO_C" >&6
-
-       if test "${ac_cv_path_tclsh+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target tclsh in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/tclsh[8-9]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_tclsh" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_tclsh=$j
-                       break
-                   fi
-               fi
-           done
-       done
-
-fi
-
-
-       if test -f "$ac_cv_path_tclsh" ; then
-           TCLSH_PROG=$ac_cv_path_tclsh
-           echo "$as_me:$LINENO: result: $TCLSH_PROG" >&5
-echo "${ECHO_T}$TCLSH_PROG" >&6
-       else
-           { { echo "$as_me:$LINENO: error: No tclsh found in PATH: $search_path" >&5
-echo "$as_me: error: No tclsh found in PATH: $search_path" >&2;}
-   { (exit 1); exit 1; }; }
-       fi
+    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 location
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
+        fi
+        list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \
+              `ls -d ${TCL_BIN_DIR}/..     2>/dev/null` \
+              `ls -d ${TCL_PREFIX}/bin     2>/dev/null`"
+        for i in $list ; do
+            if test -f "$i/${TCLSH_PROG}" ; then
+                REAL_TCL_BIN_DIR="`cd "$i"; pwd`"
+                break
+            fi
+        done
+        TCLSH_PROG="${REAL_TCL_BIN_DIR}/${TCLSH_PROG}"
     fi
+    echo "$as_me:$LINENO: result: ${TCLSH_PROG}" >&5
+echo "${ECHO_T}${TCLSH_PROG}" >&6
 
 
 #TEA_PROG_WISH
@@ -11058,7 +10512,6 @@ s,@TCL_INCLUDES@,$TCL_INCLUDES,;t t
 s,@TCL_THREADS@,$TCL_THREADS,;t t
 s,@SHARED_BUILD@,$SHARED_BUILD,;t t
 s,@AR@,$AR,;t t
-s,@TCLSH_PROG@,$TCLSH_PROG,;t t
 s,@CELIB_DIR@,$CELIB_DIR,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@DL_LIBS@,$DL_LIBS,;t t
@@ -11067,10 +10520,8 @@ s,@CFLAGS_OPTIMIZE@,$CFLAGS_OPTIMIZE,;t t
 s,@CFLAGS_WARNING@,$CFLAGS_WARNING,;t t
 s,@STLIB_LD@,$STLIB_LD,;t t
 s,@SHLIB_LD@,$SHLIB_LD,;t t
-s,@SHLIB_CFLAGS@,$SHLIB_CFLAGS,;t t
 s,@SHLIB_LD_LIBS@,$SHLIB_LD_LIBS,;t t
-s,@LDFLAGS_DEBUG@,$LDFLAGS_DEBUG,;t t
-s,@LDFLAGS_OPTIMIZE@,$LDFLAGS_OPTIMIZE,;t t
+s,@SHLIB_CFLAGS@,$SHLIB_CFLAGS,;t t
 s,@LD_LIBRARY_PATH_VAR@,$LD_LIBRARY_PATH_VAR,;t t
 s,@TCL_DBGX@,$TCL_DBGX,;t t
 s,@CFLAGS_DEFAULT@,$CFLAGS_DEFAULT,;t t
@@ -11080,6 +10531,7 @@ s,@MAKE_SHARED_LIB@,$MAKE_SHARED_LIB,;t t
 s,@MAKE_STATIC_LIB@,$MAKE_STATIC_LIB,;t t
 s,@MAKE_STUB_LIB@,$MAKE_STUB_LIB,;t t
 s,@RANLIB_STUB@,$RANLIB_STUB,;t t
+s,@TCLSH_PROG@,$TCLSH_PROG,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 
index 738a010e022ca80e6dec93c63c70f296bc3bb18b..03f8f0da9ba4238f1fbff15ef3f0096cbc7c8d8b 100755 (executable)
@@ -27,7 +27,7 @@ AC_INIT([filemonitor], [0.6])
 # as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
 #--------------------------------------------------------------------
 
-TEA_INIT([3.2])
+TEA_INIT([3.5])
 
 AC_CONFIG_AUX_DIR(tclconfig)
 
index 6ed780b5ce2673aa585efc7f1cd20fa9c1fcde20..bfc0e54d75d3a69b3fef3646810c4f64bf7d5ee2 100644 (file)
@@ -35,8 +35,10 @@ proc MonitorBegin {} {
     variable App
     Log "Creating monitors for '$App(path)'"
     foreach op {access modify create delete rename attrib size security} {
-        lappend App(monitors) [filemonitor create $op $App(path) \
-                                   [list MonitorEvent $op $App(path)]]
+        catch {
+            lappend App(monitors) [filemonitor create $op $App(path) \
+                                       [list MonitorEvent $op $App(path)]]
+        }
     }
     .b1 configure -text "Stop Monitor" -command MonitorStop
 }
index 16b7e21e72d3c10b08b6a4c8d1590307ec7daa6d..63093345d383493131ef2c417ab95db6fceb9668 100644 (file)
@@ -1,3 +1,186 @@
+2006-08-18  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4 (Darwin): add support for --enable-64bit on x86_64, for
+       universal builds including x86_64 and for use of -mmacosx-version-min
+       instead of MACOSX_DEPLOYMENT_TARGET. For Tk extensions, remove 64-bit
+       arch flags from CFLAGS like in the Tk configure, as neither TkAqua nor
+       TkX11 can be built for 64-bit at present.
+
+2006-03-28  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: []-quote AC_DEFUN functions.
+       (TEA_PATH_TKCONFIG): Fixed Windows-specific check for tkConfig.sh.
+       (TEA_MAKE_LIB): Prepend 'lib' for Windows-gcc configs.
+
+2006-03-07  Joe English  <jenglish@users.sourceforge.net>
+
+       * tcl.m4: Set SHLIB_LD_FLAGS='${LIBS}' on NetBSD,
+       as per the other *BSD variants [Bug 1334613].
+
+2006-01-25  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       *** Bump to TEA version 3.5 ***
+
+       * tcl.m4: keep LD_SEARCH_FLAGS and CC_SEARCH_FLAGS synchronous
+       with core tcl.m4 meaning.
+
+2006-01-24  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4 (Darwin): use makefile variable LDFLAGS_DEFAULT instead of
+       LDFLAGS in SHLIB_LD, to ensure linker flags in sampleextension Makefile
+       are picked up. [Bug 1403343]
+
+2006-01-23  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: add C:/Tcl/lib and C:/Progra~1/Tcl/lib dirs to check for
+       *Config.sh on Windows. [Bug 1407544]
+
+2006-01-23  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4 (Darwin): for Tk extensions, remove -arch ppc64 from CFLAGS
+       like in the Tk configure, as neither TkAqua nor TkX11 can be built for
+       64bit at present (no 64bit GUI libraries).
+
+2006-01-22  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: restore system=windows on Windows.
+       Remove error if 'ar' isn't found (it may not be on Windows).
+       Do not add -lxnet or define _XOPEN_SOURCE on HP-UX by default.
+       Ensure the C|LDFLAGS_DEFAULT gets the fully sub'd value at
+       configure time.
+
+2006-01-10  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4: add caching, use AC_CACHE_CHECK instead of AC_CACHE_VAL
+       where possible, consistent message quoting, sync relevant
+       tcl/unix/tcl.m4 HEAD changes and gratuitous formatting differences
+       (notably sunc removal of support for for ancient BSD's, IRIX 4,
+       RISCos and Ultrix by kennykb), Darwin improvements to
+       TEA_LOAD_*CONFIG to make linking work against Tcl/Tk frameworks
+       installed in arbitrary location, change TEA_PROG_* search order
+       (look in *_BIN_DIR parents before *_PREFIX).
+
+2006-01-05  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: add dkf's system config refactor
+
+2006-01-04  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: remove extraneous ' that causes bash 3.1 to choke
+
+2005-12-19  Joe English  <jenglish@users.sourceforge.net>
+
+       * tcl.m4 (TEA_PATH_TCLCONFIG &c): Look for tclConfig.sh &c 
+       in ${libdir}, where they are installed by default [Patch #1377407].
+
+2005-12-05  Don Porter  <dgp@users.sf.net>
+
+       * tcl.m4 (TEA_PUBLIC_*_HEADERS):        Better support for finding
+       header files for uninstalled Tcl and Tk.
+
+2005-12-02  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: correctly bump TEA_VERSION var to 3.4
+
+2005-12-01  Daniel Steffen  <das@users.sourceforge.net>
+
+       * unix/tcl.m4 (Darwin): fixed error when MACOSX_DEPLOYMENT_TARGET unset
+
+2005-11-29  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4:  *** Bump to TEA version 3.4 ***
+       Add Windows x64 build support.
+       Remove TEA_PATH_NOSPACE and handle the problem with ""s where
+       necessary - the macro relied on TCLSH_PROG which didn't work for
+       cross-compiles.
+
+2005-11-27  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4 (Darwin): add 64bit support, add CFLAGS to SHLIB_LD to
+       support passing -isysroot in env(CFLAGS) to configure (flag can't
+       be present twice, so can't be in both CFLAGS and LDFLAGS during
+       configure), don't use -prebind when deploying on 10.4.
+       (TEA_ENABLE_LANGINFO, TEA_TIME_HANDLER): add/fix caching.
+
+2005-10-30  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4: fixed two tests for TEA_WINDOWINGSYSTEM = "aqua" that
+       should have been for `uname -s` = "Darwin" instead; added some
+       missing quoting.
+       (TEA_PROG_TCLSH, TEA_PROG_WISH): fix incorrect assumption that
+       install location of tclConfig.sh/tkConfig.sh allows to determine
+       the tclsh/wish install dir via ../bin. Indeed tcl/tk can be
+       configured with arbitrary --libdir and --bindir (independent of
+       prefix) and such a configuration is in fact standard with Darwin
+       framework builds. At least now also check ${TCL_PREFIX}/bin
+       resp. ${TK_PREFIX}/bin for presence of tclsh resp. wish (if tcl/tk
+       have been configured with arbitrary --bindir, this will still not
+       find them, for a general solution *Config.sh would need to contain
+       the values of bindir/libdir/includedir passed to configure).
+
+2005-10-07  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: Fix Solaris 5.10 check and Solaris AMD64 64-bit builds.
+
+2005-10-04  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4 (TEA_PRIVATE_TCL_HEADERS): add / to finish sed macro
+       (TEA_ENABLE_THREADS): don't check for pthread_attr_setstacksize func
+
+2005-09-13  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tcl.m4: *** Update to TEA version 3.3 ***
+       define TEA_WINDOWINGSYSTEM in TEA_LOAD_TKCONFIG.
+       Make --enable-threads the default (users can --disable-threads).
+       Improve AIX ${CC}_r fix to better check existing ${CC} value.
+       Do the appropriate evals to not require the *TOP_DIR_NATIVE vars
+       be set for extensions that use private headers.
+       Make aqua check for Xlib compat headers the same as win32.
+
+2005-07-26  Mo DeJong  <mdejong@users.sourceforge.net>
+
+       * tcl.m4 (TEA_PROG_TCLSH, TEA_BUILD_TCLSH,
+       TEA_PROG_WISH, TEA_BUILD_WISH): Remove
+       TEA_BUILD_TCLSH and TEA_BUILD_WISH because
+       of complaints that it broke the build when
+       only an installed version of Tcl was available
+       at extension build time. The TEA_PROG_TCLSH and
+       TEA_PROG_WISH macros will no longer search the
+       path at all. The build tclsh or installed
+       tclsh shell will now be found by TEA_PROG_TCLSH.
+
+2005-07-24  Mo DeJong  <mdejong@users.sourceforge.net>
+
+       * tcl.m4 (TEA_PROG_TCLSH, TEA_BUILD_TCLSH,
+       TEA_PROG_WISH, TEA_BUILD_WISH):
+       Split confused search for tclsh on PATH and
+       build and install locations into two macros.
+       TEA_PROG_TCLSH and TEA_PROG_WISH search the
+       system PATH for an installed tclsh or wish.
+       The TEA_BUILD_TCLSH and TEA_BUILD_WISH
+       macros determine the name of tclsh or
+       wish in the Tcl or Tk build directory even
+       if tclsh or wish has not yet been built.
+       [Tcl bug 1160114]
+       [Tcl patch 1244153]
+
+2005-06-23  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4 (TEA_PRIVATE_TK_HEADERS): add ${TK_SRC_DIR}/macosx to
+       TK_INCLUDES when building against TkAqua.
+
+       * tcl.m4 (TEA_PATH_X): fixed missing comma in AC_DEFINE
+
+       * tcl.m4: changes to better support framework builds of Tcl and Tk out
+       of the box: search framework install locations for *Config.sh, and if in
+       presence of a framework build, use the framework's Headers and
+       PrivateHeaders directories for public and private includes. [FR 947735]
+
+2005-06-18  Daniel Steffen  <das@users.sourceforge.net>
+
+       * tcl.m4 (Darwin): add -headerpad_max_install_names to LDFLAGS to
+       ensure we can always relocate binaries with install_name_tool.
+
 2005-06-04  Daniel Steffen  <das@users.sourceforge.net>
 
        * tcl.m4 (TEA_PATH_X): for TEA_WINDOWINGSYSTEM == aqua, check if xlib
index e1287fd861a7982cbe73ca9f026f615d41735ce0..e626cb9768e74c1e91755ccc8e88a8c42319cac2 100644 (file)
 
 AC_PREREQ(2.50)
 
+dnl TEA extensions pass us the version of TEA they think they
+dnl are compatible with (must be set in TEA_INIT below)
+dnl TEA_VERSION="3.5"
+
+# Possible values for key variables defined:
+#
+# TEA_WINDOWINGSYSTEM - win32 aqua x11 (mirrors 'tk windowingsystem')
+# TEA_PLATFORM        - windows unix
+#
+
 #------------------------------------------------------------------------
 # TEA_PATH_TCLCONFIG --
 #
@@ -32,7 +42,7 @@ AC_PREREQ(2.50)
 #                              the tclConfig.sh file
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PATH_TCLCONFIG, [
+AC_DEFUN([TEA_PATH_TCLCONFIG], [
     dnl Make sure we are initialized
     AC_REQUIRE([TEA_INIT])
     #
@@ -44,7 +54,10 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
     if test x"${no_tcl}" = x ; then
        # we reset no_tcl in case something fails here
        no_tcl=true
-       AC_ARG_WITH(tcl, [  --with-tcl              directory containing tcl configuration (tclConfig.sh)], with_tclconfig=${withval})
+       AC_ARG_WITH(tcl,
+           AC_HELP_STRING([--with-tcl],
+               [directory containing tcl configuration (tclConfig.sh)]),
+           with_tclconfig=${withval})
        AC_MSG_CHECKING([for Tcl configuration])
        AC_CACHE_VAL(ac_cv_c_tclconfig,[
 
@@ -72,12 +85,12 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
                        `ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \
                        `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
                        ../../tcl \
-                        `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
-                        `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
                        `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \
                        ../../../tcl \
-                        `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
-                        `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
+                       `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \
+                       `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \
                        `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do
                    if test -f "$i/unix/tclConfig.sh" ; then
                        ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
@@ -86,9 +99,37 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
                done
            fi
 
+           # on Darwin, check in Framework installation locations
+           if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
+                       `ls -d /Library/Frameworks 2>/dev/null` \
+                       `ls -d /Network/Library/Frameworks 2>/dev/null` \
+                       `ls -d /System/Library/Frameworks 2>/dev/null` \
+                       ; do
+                   if test -f "$i/Tcl.framework/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)`
+                       break
+                   fi
+               done
+           fi
+
+           # on Windows, check in common installation locations
+           if test "${TEA_PLATFORM}" = "windows" \
+               -a x"${ac_cv_c_tclconfig}" = x ; then
+               for i in `ls -d C:/Tcl/lib 2>/dev/null` \
+                       `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tclConfig.sh" ; then
+                       ac_cv_c_tclconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
            # check in a few common install locations
            if test x"${ac_cv_c_tclconfig}" = x ; then
-               for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
                        `ls -d ${prefix}/lib 2>/dev/null` \
                        `ls -d /usr/local/lib 2>/dev/null` \
                        `ls -d /usr/contrib/lib 2>/dev/null` \
@@ -118,12 +159,12 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
 
        if test x"${ac_cv_c_tclconfig}" = x ; then
            TCL_BIN_DIR="# no Tcl configs found"
-           AC_MSG_WARN("Cannot find Tcl configuration definitions")
+           AC_MSG_WARN([Can't find Tcl configuration definitions])
            exit 0
        else
            no_tcl=
            TCL_BIN_DIR=${ac_cv_c_tclconfig}
-           AC_MSG_RESULT([found $TCL_BIN_DIR/tclConfig.sh])
+           AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh])
        fi
     fi
 ])
@@ -146,7 +187,7 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
 #                              the tkConfig.sh file
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PATH_TKCONFIG, [
+AC_DEFUN([TEA_PATH_TKCONFIG], [
     #
     # Ok, lets find the tk configuration
     # First, look for one uninstalled.
@@ -156,7 +197,10 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
     if test x"${no_tk}" = x ; then
        # we reset no_tk in case something fails here
        no_tk=true
-       AC_ARG_WITH(tk, [  --with-tk               directory containing tk configuration (tkConfig.sh)], with_tkconfig=${withval})
+       AC_ARG_WITH(tk,
+           AC_HELP_STRING([--with-tk],
+               [directory containing tk configuration (tkConfig.sh)]),
+           with_tkconfig=${withval})
        AC_MSG_CHECKING([for Tk configuration])
        AC_CACHE_VAL(ac_cv_c_tkconfig,[
 
@@ -197,9 +241,25 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
                    fi
                done
            fi
+
+           # on Darwin, check in Framework installation locations
+           if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then
+               for i in `ls -d ~/Library/Frameworks 2>/dev/null` \
+                       `ls -d /Library/Frameworks 2>/dev/null` \
+                       `ls -d /Network/Library/Frameworks 2>/dev/null` \
+                       `ls -d /System/Library/Frameworks 2>/dev/null` \
+                       ; do
+                   if test -f "$i/Tk.framework/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i/Tk.framework; pwd)`
+                       break
+                   fi
+               done
+           fi
+
            # check in a few common install locations
            if test x"${ac_cv_c_tkconfig}" = x ; then
-               for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
                        `ls -d ${prefix}/lib 2>/dev/null` \
                        `ls -d /usr/local/lib 2>/dev/null` \
                        `ls -d /usr/contrib/lib 2>/dev/null` \
@@ -211,6 +271,20 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
                    fi
                done
            fi
+
+           # on Windows, check in common installation locations
+           if test "${TEA_PLATFORM}" = "windows" \
+               -a x"${ac_cv_c_tkconfig}" = x ; then
+               for i in `ls -d C:/Tcl/lib 2>/dev/null` \
+                       `ls -d C:/Progra~1/Tcl/lib 2>/dev/null` \
+                       ; do
+                   if test -f "$i/tkConfig.sh" ; then
+                       ac_cv_c_tkconfig=`(cd $i; pwd)`
+                       break
+                   fi
+               done
+           fi
+
            # check in a few other private locations
            if test x"${ac_cv_c_tkconfig}" = x ; then
                for i in \
@@ -225,17 +299,17 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
                done
            fi
        ])
+
        if test x"${ac_cv_c_tkconfig}" = x ; then
            TK_BIN_DIR="# no Tk configs found"
-           AC_MSG_WARN("Cannot find Tk configuration definitions")
+           AC_MSG_WARN([Can't find Tk configuration definitions])
            exit 0
        else
            no_tk=
            TK_BIN_DIR=${ac_cv_c_tkconfig}
-           AC_MSG_RESULT([found $TK_BIN_DIR/tkConfig.sh])
+           AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh])
        fi
     fi
-
 ])
 
 #------------------------------------------------------------------------
@@ -257,40 +331,56 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
 #
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_LOAD_TCLCONFIG, [
-    AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh])
+AC_DEFUN([TEA_LOAD_TCLCONFIG], [
+    AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh])
 
-    if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
+    if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then
         AC_MSG_RESULT([loading])
-       . $TCL_BIN_DIR/tclConfig.sh
+       . ${TCL_BIN_DIR}/tclConfig.sh
     else
-        AC_MSG_RESULT([file not found])
+        AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh])
     fi
 
-    #
+    # eval is required to do the TCL_DBGX substitution
+    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
+    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
+
     # If the TCL_BIN_DIR is the build directory (not the install directory),
     # then set the common variable name to the value of the build variables.
     # For example, the variable TCL_LIB_SPEC will be set to the value
     # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
     # instead of TCL_BUILD_LIB_SPEC since it will work with both an
     # installed and uninstalled version of Tcl.
-    #
-
-    if test -f $TCL_BIN_DIR/Makefile ; then
+    if test -f ${TCL_BIN_DIR}/Makefile ; then
         TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
         TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
         TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
+    elif test "`uname -s`" = "Darwin"; then
+       # If Tcl was built as a framework, attempt to use the libraries
+       # from the framework at the given location so that linking works
+       # against Tcl.framework installed in an arbitary location.
+       case ${TCL_DEFS} in
+           *TCL_FRAMEWORK*)
+               if test -f ${TCL_BIN_DIR}/${TCL_LIB_FILE}; then
+                   for i in "`cd ${TCL_BIN_DIR}; pwd`" \
+                            "`cd ${TCL_BIN_DIR}/../..; pwd`"; do
+                       if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then
+                           TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}"
+                           break
+                       fi
+                   done
+               fi
+               if test -f ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}; then
+                   TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}"
+                   TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"
+               fi
+               ;;
+       esac
     fi
 
-    #
     # eval is required to do the TCL_DBGX substitution
-    #
-
-    eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
     eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
     eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
-
-    eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
     eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
     eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
 
@@ -311,8 +401,6 @@ AC_DEFUN(TEA_LOAD_TCLCONFIG, [
     AC_SUBST(TCL_EXTRA_CFLAGS)
     AC_SUBST(TCL_LD_FLAGS)
     AC_SUBST(TCL_SHLIB_LD_LIBS)
-    #AC_SUBST(TCL_BUILD_LIB_SPEC)
-    #AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
 ])
 
 #------------------------------------------------------------------------
@@ -331,43 +419,74 @@ AC_DEFUN(TEA_LOAD_TCLCONFIG, [
 #              TK_BIN_DIR
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_LOAD_TKCONFIG, [
+AC_DEFUN([TEA_LOAD_TKCONFIG], [
     AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh])
 
     if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then
         AC_MSG_RESULT([loading])
-       . $TK_BIN_DIR/tkConfig.sh
+       . ${TK_BIN_DIR}/tkConfig.sh
     else
         AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh])
     fi
 
-    #
+    # eval is required to do the TK_DBGX substitution
+    eval "TK_LIB_FILE=\"${TK_LIB_FILE}\""
+    eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\""
+
     # If the TK_BIN_DIR is the build directory (not the install directory),
     # then set the common variable name to the value of the build variables.
     # For example, the variable TK_LIB_SPEC will be set to the value
     # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC
     # instead of TK_BUILD_LIB_SPEC since it will work with both an
     # installed and uninstalled version of Tcl.
-    #
-
-    if test -f $TK_BIN_DIR/Makefile ; then
+    if test -f ${TK_BIN_DIR}/Makefile ; then
         TK_LIB_SPEC=${TK_BUILD_LIB_SPEC}
         TK_STUB_LIB_SPEC=${TK_BUILD_STUB_LIB_SPEC}
         TK_STUB_LIB_PATH=${TK_BUILD_STUB_LIB_PATH}
+    elif test "`uname -s`" = "Darwin"; then
+       # If Tk was built as a framework, attempt to use the libraries
+       # from the framework at the given location so that linking works
+       # against Tk.framework installed in an arbitary location.
+       case ${TK_DEFS} in
+           *TK_FRAMEWORK*)
+               if test -f ${TK_BIN_DIR}/${TK_LIB_FILE}; then
+                   for i in "`cd ${TK_BIN_DIR}; pwd`" \
+                            "`cd ${TK_BIN_DIR}/../..; pwd`"; do
+                       if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then
+                           TK_LIB_SPEC="-F`dirname "$i"` -framework ${TK_LIB_FILE}"
+                           break
+                       fi
+                   done
+               fi
+               if test -f ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}; then
+                   TK_STUB_LIB_SPEC="-L${TK_BIN_DIR} ${TK_STUB_LIB_FLAG}"
+                   TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"
+               fi
+               ;;
+       esac
     fi
 
-    #
     # eval is required to do the TK_DBGX substitution
-    #
-
-    eval "TK_LIB_FILE=\"${TK_LIB_FILE}\""
     eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\""
     eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\""
-
-    eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\""
     eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\""
     eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\""
 
+    # Ensure windowingsystem is defined
+    if test "${TEA_PLATFORM}" = "unix" ; then
+       case ${TK_DEFS} in
+           *MAC_OSX_TK*)
+               AC_DEFINE(MAC_OSX_TK, 1, [Are we building against Mac OS X TkAqua?])
+               TEA_WINDOWINGSYSTEM="aqua"
+               ;;
+           *)
+               TEA_WINDOWINGSYSTEM="x11"
+               ;;
+       esac
+    elif test "${TEA_PLATFORM}" = "windows" ; then
+       TEA_WINDOWINGSYSTEM="win32"
+    fi
+
     AC_SUBST(TK_VERSION)
     AC_SUBST(TK_BIN_DIR)
     AC_SUBST(TK_SRC_DIR)
@@ -405,10 +524,11 @@ AC_DEFUN(TEA_LOAD_TKCONFIG, [
 #              SHARED_BUILD    Value of 1 or 0
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_ENABLE_SHARED, [
+AC_DEFUN([TEA_ENABLE_SHARED], [
     AC_MSG_CHECKING([how to build libraries])
     AC_ARG_ENABLE(shared,
-       [  --enable-shared         build and link with shared libraries [--enable-shared]],
+       AC_HELP_STRING([--enable-shared],
+           [build and link with shared libraries (default: on)]),
        [tcl_ok=$enableval], [tcl_ok=yes])
 
     if test "${enable_shared+set}" = set; then
@@ -432,12 +552,18 @@ AC_DEFUN(TEA_ENABLE_SHARED, [
 #------------------------------------------------------------------------
 # TEA_ENABLE_THREADS --
 #
-#      Specify if thread support should be enabled.  If "yes" is
-#      specified as an arg (optional), threads are enabled by default.
+#      Specify if thread support should be enabled.  If "yes" is specified
+#      as an arg (optional), threads are enabled by default, "no" means
+#      threads are disabled.  "yes" is the default.
+#
 #      TCL_THREADS is checked so that if you are compiling an extension
 #      against a threaded core, your extension must be compiled threaded
 #      as well.
 #
+#      Note that it is legal to have a thread enabled extension run in a
+#      threaded or non-threaded Tcl core, but a non-threaded extension may
+#      only run in a non-threaded Tcl core.
+#
 # Arguments:
 #      none
 #      
@@ -452,34 +578,50 @@ AC_DEFUN(TEA_ENABLE_SHARED, [
 #      Defines the following vars:
 #              TCL_THREADS
 #              _REENTRANT
+#              _THREAD_SAFE
 #
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_ENABLE_THREADS, [
-    AC_ARG_ENABLE(threads, [  --enable-threads        build with threads],
-       [tcl_ok=$enableval], [tcl_ok=$1])
+AC_DEFUN([TEA_ENABLE_THREADS], [
+    AC_ARG_ENABLE(threads,
+       AC_HELP_STRING([--enable-threads],
+           [build with threads]),
+       [tcl_ok=$enableval], [tcl_ok=yes])
+
+    if test "${enable_threads+set}" = set; then
+       enableval="$enable_threads"
+       tcl_ok=$enableval
+    else
+       tcl_ok=yes
+    fi
 
     if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
        TCL_THREADS=1
 
        if test "${TEA_PLATFORM}" != "windows" ; then
-           # We are always OK on Windows, so check what this platform wants.
-            AC_DEFINE(USE_THREAD_ALLOC, 1,
-                [Do we want to use the threaded memory allocator?])
+           # We are always OK on Windows, so check what this platform wants:
+    
+           # USE_THREAD_ALLOC tells us to try the special thread-based
+           # allocator that significantly reduces lock contention
+           AC_DEFINE(USE_THREAD_ALLOC, 1,
+               [Do we want to use the threaded memory allocator?])
            AC_DEFINE(_REENTRANT, 1, [Do we want the reentrant OS API?])
+           if test "`uname -s`" = "SunOS" ; then
+               AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1,
+                       [Do we really want to follow the standard? Yes we do!])
+           fi
            AC_DEFINE(_THREAD_SAFE, 1, [Do we want the thread-safe OS API?])
            AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no)
            if test "$tcl_ok" = "no"; then
-               # Check a little harder for __pthread_mutex_init in the
-               # same library, as some systems hide it there until
-               # pthread.h is defined.  We could alternatively do an
-               # AC_TRY_COMPILE with pthread.h, but that will work with
-               # libpthread really doesn't exist, like AIX 4.2.
-               # [Bug: 4359]
+               # Check a little harder for __pthread_mutex_init in the same
+               # library, as some systems hide it there until pthread.h is
+               # defined.  We could alternatively do an AC_TRY_COMPILE with
+               # pthread.h, but that will work with libpthread really doesn't
+               # exist, like AIX 4.2.  [Bug: 4359]
                AC_CHECK_LIB(pthread, __pthread_mutex_init,
                    tcl_ok=yes, tcl_ok=no)
            fi
-           
+
            if test "$tcl_ok" = "yes"; then
                # The space is needed
                THREADS_LIBS=" -lpthread"
@@ -500,32 +642,22 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
                            THREADS_LIBS=" -pthread"
                        else
                            TCL_THREADS=0
-                           AC_MSG_WARN("Don t know how to find pthread lib on your system - thread support disabled")
+                           AC_MSG_WARN([Do not know how to find pthread lib on your system - thread support disabled])
                        fi
                    fi
                fi
            fi
-
-           # Does the pthread-implementation provide
-           # 'pthread_attr_setstacksize' ?
-
-           ac_saved_libs=$LIBS
-           LIBS="$LIBS $THREADS_LIBS"
-           AC_CHECK_FUNCS(pthread_attr_setstacksize)
-           LIBS=$ac_saved_libs
-           AC_CHECK_FUNCS(readdir_r)
        fi
     else
        TCL_THREADS=0
     fi
     # Do checking message here to not mess up interleaved configure output
     AC_MSG_CHECKING([for building with threads])
-    if test "${TCL_THREADS}" = "1"; then
+    if test "${TCL_THREADS}" = 1; then
        AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?])
-       #LIBS="$LIBS $THREADS_LIBS"
-       AC_MSG_RESULT([yes])
+       AC_MSG_RESULT([yes (default)])
     else
-       AC_MSG_RESULT([no (default)])
+       AC_MSG_RESULT([no])
     fi
     # TCL_THREADS sanity checking.  See if our request for building with
     # threads is the same as the way Tcl was built.  If not, warn the user.
@@ -533,15 +665,16 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
        *THREADS=1*)
            if test "${TCL_THREADS}" = "0"; then
                AC_MSG_WARN([
-    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
-    that IS thread-enabled.])
+    Building ${PACKAGE_NAME} without threads enabled, but building against Tcl
+    that IS thread-enabled.  It is recommended to use --enable-threads.])
            fi
            ;;
        *)
            if test "${TCL_THREADS}" = "1"; then
                AC_MSG_WARN([
-    --enable-threads requested, but attempting building against a Tcl
-    that is NOT thread-enabled.])
+    --enable-threads requested, but building against a Tcl that is NOT
+    thread-enabled.  This is an OK configuration that will also run in
+    a thread-enabled core.])
            fi
            ;;
     esac
@@ -551,17 +684,17 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
 #------------------------------------------------------------------------
 # TEA_ENABLE_SYMBOLS --
 #
-#      Specify if debugging symbols should be used
+#      Specify if debugging symbols should be used.
 #      Memory (TCL_MEM_DEBUG) debugging can also be enabled.
 #
 # Arguments:
 #      none
 #      
-#      Requires the following vars to be set:
-#              CFLAGS_DEBUG
-#              CFLAGS_OPTIMIZE
-#              LDFLAGS_DEBUG
-#              LDFLAGS_OPTIMIZE
+#      TEA varies from core Tcl in that C|LDFLAGS_DEFAULT receives
+#      the value of C|LDFLAGS_OPTIMIZE|DEBUG already substituted.
+#      Requires the following vars to be set in the Makefile:
+#              CFLAGS_DEFAULT
+#              LDFLAGS_DEFAULT
 #      
 # Results:
 #
@@ -569,23 +702,24 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
 #              --enable-symbols
 #
 #      Defines the following vars:
-#              CFLAGS_DEFAULT  Sets to CFLAGS_DEBUG if true
-#                              Sets to CFLAGS_OPTIMIZE if false
-#              LDFLAGS_DEFAULT Sets to LDFLAGS_DEBUG if true
-#                              Sets to LDFLAGS_OPTIMIZE if false
+#              CFLAGS_DEFAULT  Sets to $(CFLAGS_DEBUG) if true
+#                              Sets to $(CFLAGS_OPTIMIZE) if false
+#              LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true
+#                              Sets to $(LDFLAGS_OPTIMIZE) if false
 #              DBGX            Formerly used as debug library extension;
 #                              always blank now.
 #
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_ENABLE_SYMBOLS, [
+AC_DEFUN([TEA_ENABLE_SYMBOLS], [
     dnl Make sure we are initialized
     AC_REQUIRE([TEA_CONFIG_CFLAGS])
-
-    DBGX=""
-
     AC_MSG_CHECKING([for build with symbols])
-    AC_ARG_ENABLE(symbols, [  --enable-symbols        build with debugging symbols [--disable-symbols]],    [tcl_ok=$enableval], [tcl_ok=no])
+    AC_ARG_ENABLE(symbols,
+       AC_HELP_STRING([--enable-symbols],
+           [build with debugging symbols (default: off)]),
+       [tcl_ok=$enableval], [tcl_ok=no])
+    DBGX=""
     if test "$tcl_ok" = "no"; then
        CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
        LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
@@ -637,30 +771,73 @@ AC_DEFUN(TEA_ENABLE_SYMBOLS, [
 #
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_ENABLE_LANGINFO, [
+AC_DEFUN([TEA_ENABLE_LANGINFO], [
     AC_ARG_ENABLE(langinfo,
-       [  --enable-langinfo      use nl_langinfo if possible to determine
-                         encoding at startup, otherwise use old heuristic],
+       AC_HELP_STRING([--enable-langinfo],
+           [use nl_langinfo if possible to determine encoding at startup, otherwise use old heuristic (default: on)]),
        [langinfo_ok=$enableval], [langinfo_ok=yes])
 
     HAVE_LANGINFO=0
     if test "$langinfo_ok" = "yes"; then
-       if test "$langinfo_ok" = "yes"; then
-           AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no])
-       fi
+       AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no])
     fi
     AC_MSG_CHECKING([whether to use nl_langinfo])
     if test "$langinfo_ok" = "yes"; then
-       AC_TRY_COMPILE([#include <langinfo.h>],
-               [nl_langinfo(CODESET);],[langinfo_ok=yes],[langinfo_ok=no])
-       if test "$langinfo_ok" = "no"; then
-           langinfo_ok="no (could not compile with nl_langinfo)";
-       fi
-       if test "$langinfo_ok" = "yes"; then
+       AC_CACHE_VAL(tcl_cv_langinfo_h, [
+           AC_TRY_COMPILE([#include <langinfo.h>], [nl_langinfo(CODESET);],
+                   [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])])
+       AC_MSG_RESULT([$tcl_cv_langinfo_h])
+       if test $tcl_cv_langinfo_h = yes; then
            AC_DEFINE(HAVE_LANGINFO, 1, [Do we have nl_langinfo()?])
        fi
+    else 
+       AC_MSG_RESULT([$langinfo_ok])
     fi
-    AC_MSG_RESULT([$langinfo_ok])
+])
+
+#--------------------------------------------------------------------
+# TEA_CONFIG_SYSTEM
+#
+#      Determine what the system is (some things cannot be easily checked
+#      on a feature-driven basis, alas). This can usually be done via the
+#      "uname" command, but there are a few systems, like Next, where
+#      this doesn't work.
+#
+# Arguments:
+#      none
+#
+# Results:
+#      Defines the following var:
+#
+#      system -        System/platform/version identification code.
+#
+#--------------------------------------------------------------------
+
+AC_DEFUN([TEA_CONFIG_SYSTEM], [
+    AC_CACHE_CHECK([system version], tcl_cv_sys_version, [
+       if test "${TEA_PLATFORM}" = "windows" ; then
+           tcl_cv_sys_version=windows
+       elif test -f /usr/lib/NextStep/software_version; then
+           tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+       else
+           tcl_cv_sys_version=`uname -s`-`uname -r`
+           if test "$?" -ne 0 ; then
+               AC_MSG_WARN([can't find uname command])
+               tcl_cv_sys_version=unknown
+           else
+               # Special check for weird MP-RAS system (uname returns weird
+               # results, and the version is kept in special file).
+
+               if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+                   tcl_cv_sys_version=MP-RAS-`awk '{print $[3]}' /etc/.relid`
+               fi
+               if test "`uname -s`" = "AIX" ; then
+                   tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
+               fi
+           fi
+       fi
+    ])
+    system=$tcl_cv_sys_version
 ])
 
 #--------------------------------------------------------------------
@@ -674,7 +851,7 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #
 # Results:
 #
-#      Defines the following vars:
+#      Defines and substitutes the following vars:
 #
 #       DL_OBJS -       Name of the object file that implements dynamic
 #                       loading for Tcl on this system.
@@ -686,6 +863,11 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #       LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib",
 #                       that tell the run-time dynamic linker where to look
 #                       for shared libraries such as libtcl.so.  Depends on
+#                       the variable LIB_RUNTIME_DIR in the Makefile. Could
+#                       be the same as CC_SEARCH_FLAGS if ${CC} is used to link.
+#       CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib",
+#                       that tell the run-time dynamic linker where to look
+#                       for shared libraries such as libtcl.so.  Depends on
 #                       the variable LIB_RUNTIME_DIR in the Makefile.
 #       SHLIB_CFLAGS -  Flags to pass to cc when compiling the components
 #                       of a shared library (may request position-independent
@@ -706,20 +888,16 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #       SHLIB_SUFFIX -  Suffix to use for the names of dynamically loadable
 #                       extensions.  An empty string means we don't know how
 #                       to use shared libraries on this platform.
-#       TCL_LIB_FILE -  Name of the file that contains the Tcl library, such
-#                       as libtcl7.8.so or libtcl7.8.a.
-#       TCL_LIB_SUFFIX -Specifies everything that comes after the "libtcl"
-#                       in the shared library name, using the
-#                       ${PACKAGE_VERSION} variable to put the version in
-#                       the right place.  This is used by platforms that
-#                       need non-standard library names.
-#                       Examples:  ${PACKAGE_VERSION}.so.1.1 on NetBSD,
-#                       since it needs to have a version after the .so, and
-#                       ${PACKAGE_VERSION}.a on AIX, since the Tcl shared
-#                       library needs to have a .a extension whereas shared
-#                       objects for loadable extensions have a .so
-#                       extension.  Defaults to
-#                       ${PACKAGE_VERSION}${SHLIB_SUFFIX}.
+#       LIB_SUFFIX -    Specifies everything that comes after the "libfoo"
+#                       in a static or shared library name, using the $VERSION variable
+#                       to put the version in the right place.  This is used
+#                       by platforms that need non-standard library names.
+#                       Examples:  ${VERSION}.so.1.1 on NetBSD, since it needs
+#                       to have a version after the .so, and ${VERSION}.a
+#                       on AIX, since a shared library needs to have
+#                       a .a extension whereas shared objects for loadable
+#                       extensions have a .so extension.  Defaults to
+#                       ${VERSION}${SHLIB_SUFFIX}.
 #       TCL_NEEDS_EXP_FILE -
 #                       1 means that an export file is needed to link to a
 #                       shared library.
@@ -734,35 +912,30 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
 #                      Flags used when running the compiler in debug mode
 #      CFLAGS_OPTIMIZE -
 #                      Flags used when running the compiler in optimize mode
-#      CFLAGS -        We add CFLAGS to pass to the compiler
+#      CFLAGS -        Additional CFLAGS added as necessary (usually 64-bit)
 #
-#      Subst's the following vars:
-#              DL_LIBS
-#              CFLAGS_DEBUG
-#              CFLAGS_OPTIMIZE
-#              CFLAGS_WARNING
-#
-#              STLIB_LD
-#              SHLIB_LD
-#              SHLIB_CFLAGS
-#              LDFLAGS_DEBUG
-#              LDFLAGS_OPTIMIZE
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_CONFIG_CFLAGS, [
+AC_DEFUN([TEA_CONFIG_CFLAGS], [
     dnl Make sure we are initialized
     AC_REQUIRE([TEA_INIT])
 
-    # Step 0: Enable 64 bit support?
+    # Step 0.a: Enable 64 bit support?
 
-    AC_MSG_CHECKING([if 64bit support is enabled])
-    AC_ARG_ENABLE(64bit,[  --enable-64bit          enable 64bit support (where applicable)], [do64bit=$enableval], [do64bit=no])
+    AC_MSG_CHECKING([if 64bit support is requested])
+    AC_ARG_ENABLE(64bit,
+       AC_HELP_STRING([--enable-64bit],
+           [enable 64bit support (default: off)]),
+       [do64bit=$enableval], [do64bit=no])
     AC_MSG_RESULT([$do64bit])
+
     # Step 0.b: Enable Solaris 64 bit VIS support?
 
     AC_MSG_CHECKING([if 64bit Sparc VIS support is requested])
-    AC_ARG_ENABLE(64bit-vis,[  --enable-64bit-vis      enable 64bit Sparc VIS support], [do64bitVIS=$enableval], [do64bitVIS=no])
+    AC_ARG_ENABLE(64bit-vis,
+       AC_HELP_STRING([--enable-64bit-vis],
+           [enable 64bit Sparc VIS support (default: off)]),
+       [do64bitVIS=$enableval], [do64bitVIS=no])
     AC_MSG_RESULT([$do64bitVIS])
 
     if test "$do64bitVIS" = "yes"; then
@@ -775,68 +948,51 @@ AC_DEFUN(TEA_CONFIG_CFLAGS, [
     if test "${TEA_PLATFORM}" = "windows" ; then
        AC_MSG_CHECKING([if Windows/CE build is requested])
        AC_ARG_ENABLE(wince,[  --enable-wince          enable Win/CE support (where applicable)], [doWince=$enableval], [doWince=no])
-       AC_MSG_RESULT($doWince)
+       AC_MSG_RESULT([$doWince])
     fi
 
     # Step 1: set the variable "system" to hold the name and version number
-    # for the system.  This can usually be done via the "uname" command, but
-    # there are a few systems, like Next, where this doesn't work.
+    # for the system.
 
-    AC_MSG_CHECKING([system version (for dynamic loading)])
-    if test -f /usr/lib/NextStep/software_version; then
-       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-    else
-       system=`uname -s`-`uname -r`
-       if test "$?" -ne 0 ; then
-           AC_MSG_RESULT([unknown (can't find uname command)])
-           system=unknown
-       else
-           # Special check for weird MP-RAS system (uname returns weird
-           # results, and the version is kept in special file).
-       
-           if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
-               system=MP-RAS-`awk '{print $3}' /etc/.relid'`
-           fi
-           if test "`uname -s`" = "AIX" ; then
-               system=AIX-`uname -v`.`uname -r`
-           fi
-           if test "${TEA_PLATFORM}" = "windows" ; then
-               system=windows
-           fi
-           AC_MSG_RESULT([$system])
-       fi
-    fi
+    TEA_CONFIG_SYSTEM
 
     # Step 2: check for existence of -ldl library.  This is needed because
     # Linux can use either -ldl or -ldld for dynamic loading.
 
     AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)
 
+    # Require ranlib early so we can override it in special cases below.
+
+    AC_REQUIRE([AC_PROG_RANLIB])
+
     # Step 3: set configuration options based on system name and version.
     # This is similar to Tcl's unix/tcl.m4 except that we've added a
-    # "windows" case and CC_SEARCH_FLAGS becomes LD_SEARCH_FLAGS for us
-    # (and we have no CC_SEARCH_FLAGS).
+    # "windows" case.
 
     do64bit_ok=no
     LDFLAGS_ORIG="$LDFLAGS"
+    # When ld needs options to work in 64-bit mode, put them in
+    # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]
+    # is disabled by the user. [Bug 1016796]
+    LDFLAGS_ARCH=""
     TCL_EXPORT_FILE_SUFFIX=""
     UNSHARED_LIB_SUFFIX=""
     TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'
     ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
     TCL_LIB_VERSIONS_OK=ok
     CFLAGS_DEBUG=-g
+    CFLAGS_OPTIMIZE=-O
     if test "$GCC" = "yes" ; then
        CFLAGS_OPTIMIZE=-O2
        CFLAGS_WARNING="-Wall -Wno-implicit-int"
     else
-       CFLAGS_OPTIMIZE=-O
        CFLAGS_WARNING=""
     fi
     TCL_NEEDS_EXP_FILE=0
     TCL_BUILD_EXP_FILE=""
     TCL_EXP_FILE=""
 dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed.
-dnl AC_CHECK_TOOL(AR, ar, :)
+dnl AC_CHECK_TOOL(AR, ar)
     AC_CHECK_PROG(AR, ar, ar)
     STLIB_LD='${AR} cr'
     LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
@@ -844,22 +1000,38 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        windows)
            # This is a 2-stage check to make sure we have the 64-bit SDK
            # We have to know where the SDK is installed.
-           if test "$do64bit" = "yes" ; then
+           # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs
+           # MACHINE is IX86 for LINK, but this is used by the manifest,
+           # which requires x86|amd64|ia64.
+           MACHINE="X86"
+           if test "$do64bit" != "no" ; then
                if test "x${MSSDK}x" = "xx" ; then
-                   MSSDK="C:/Progra~1/Microsoft SDK"
+                   MSSDK="C:/Progra~1/Microsoft Platform SDK"
                fi
-               # Ensure that this path has no spaces to work in autoconf
-               TEA_PATH_NOSPACE(MSSDK, ${MSSDK})
-               if test ! -d "${MSSDK}/bin/win64" ; then
-                   AC_MSG_WARN([could not find 64-bit SDK to enable 64bit mode])
+               MSSDK=`echo "$MSSDK" | sed -e  's!\\\!/!g'`
+               PATH64=""
+               case "$do64bit" in
+                   amd64|x64|yes)
+                       MACHINE="AMD64" ; # default to AMD64 64-bit build
+                       PATH64="${MSSDK}/Bin/Win64/x86/AMD64"
+                       ;;
+                   ia64)
+                       MACHINE="IA64"
+                       PATH64="${MSSDK}/Bin/Win64"
+                       ;;
+               esac
+               if test ! -d "${PATH64}" ; then
+                   AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode])
+                   AC_MSG_WARN([Ensure latest Platform SDK is installed])
                    do64bit="no"
                else
+                   AC_MSG_RESULT([   Using 64-bit $MACHINE mode])
                    do64bit_ok="yes"
                fi
            fi
 
            if test "$doWince" != "no" ; then
-               if test "$do64bit" = "yes" ; then
+               if test "$do64bit" != "no" ; then
                    AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible])
                fi
                if test "$GCC" = "yes" ; then
@@ -900,9 +1072,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                        SDKROOT="C:/Windows CE Tools"
                    fi
                fi
-               # Ensure that this path has no spaces to work in autoconf
-               TEA_PATH_NOSPACE(WCEROOT, ${WCEROOT})
-               TEA_PATH_NOSPACE(SDKROOT, ${SDKROOT})
+               WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`
+               SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`
                if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \
                    -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then
                    AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]])
@@ -925,27 +1096,27 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    runtime=-MD
                fi
 
-                if test "$do64bit" = "yes" ; then
+                if test "$do64bit" != "no" ; then
                    # All this magic is necessary for the Win64 SDK RC1 - hobbs
-                   CC="${MSSDK}/Bin/Win64/cl.exe"
-                   CFLAGS="${CFLAGS} -I${MSSDK}/Include/prerelease \
-                       -I${MSSDK}/Include/Win64/crt \
-                       -I${MSSDK}/Include"
-                   RC="${MSSDK}/bin/rc.exe"
-                   lflags="-MACHINE:IA64 -LIBPATH:${MSSDK}/Lib/IA64 \
-                       -LIBPATH:${MSSDK}/Lib/Prerelease/IA64 -nologo"
-                   LINKBIN="${MSSDK}/bin/win64/link.exe"
+                   CC="\"${PATH64}/cl.exe\""
+                   CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""
+                   RC="\"${MSSDK}/bin/rc.exe\""
+                   lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
+                   LINKBIN="\"${PATH64}/link.exe\""
                    CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
                    CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+                   # Avoid 'unresolved external symbol __security_cookie'
+                   # errors, c.f. http://support.microsoft.com/?id=894573
+                   TEA_ADD_LIBS([bufferoverflowU.lib])
                elif test "$doWince" != "no" ; then
                    CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"
                    if test "${TARGETCPU}" = "X86"; then
-                       CC="${CEBINROOT}/cl.exe"
+                       CC="\"${CEBINROOT}/cl.exe\""
                    else
-                       CC="${CEBINROOT}/cl${ARCH}.exe"
+                       CC="\"${CEBINROOT}/cl${ARCH}.exe\""
                    fi
                    CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""
-                   RC="${WCEROOT}/Common/EVC/bin/rc.exe"
+                   RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""
                    arch=`echo ${ARCH} | awk '{print tolower([$]0)}'`
                    defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"
                    if test "${SHARED_BUILD}" = "1" ; then
@@ -961,7 +1132,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    CFLAGS_OPTIMIZE="-nologo -Ox"
                    lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
                    lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
-                   LINKBIN="${CEBINROOT}/link.exe"
+                   LINKBIN="\"${CEBINROOT}/link.exe\""
                    AC_SUBST(CELIB_DIR)
                else
                    RC="rc"
@@ -1012,34 +1183,32 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        AIX-*)
            if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" ; then
                # AIX requires the _r compiler when gcc isn't being used
-               if test "${CC}" != "cc_r" ; then
-                   CC=${CC}_r
-               fi
+               case "${CC}" in
+                   *_r)
+                       # ok ...
+                       ;;
+                   *)
+                       CC=${CC}_r
+                       ;;
+               esac
                AC_MSG_RESULT([Using $CC for compiling with threads])
            fi
            LIBS="$LIBS -lc"
            SHLIB_CFLAGS=""
-           SHLIB_SUFFIX=".so"
            SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
 
            DL_OBJS="tclLoadDl.o"
            LD_LIBRARY_PATH_VAR="LIBPATH"
 
-           # AIX v<=4.1 has some different flags than 4.2+
-           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
-               #LIBOBJS="$LIBOBJS tclLoadAix.o"
-               AC_LIBOBJ([tclLoadAix])
-               DL_LIBS="-lld"
-           fi
-
            # Check to enable 64-bit flags for compiler/linker on AIX 4+
            if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then
                if test "$GCC" = "yes" ; then
-                   AC_MSG_WARN("64bit mode not supported with GCC on $system")
+                   AC_MSG_WARN([64bit mode not supported with GCC on $system])
                else 
                    do64bit_ok=yes
                    CFLAGS="$CFLAGS -q64"
-                   LDFLAGS="$LDFLAGS -q64"
+                   LDFLAGS_ARCH="-q64"
                    RANLIB="${RANLIB} -X64"
                    AR="${AR} -X64"
                    SHLIB_LD_FLAGS="-b64"
@@ -1052,10 +1221,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                # AIX-5 has dl* in libc.so
                DL_LIBS=""
                if test "$GCC" = "yes" ; then
-                   LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+                   CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
                else
-                   LD_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
+                   CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'
                fi
+               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
            else
                if test "$GCC" = "yes" ; then
                    SHLIB_LD="gcc -shared"
@@ -1064,11 +1234,18 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                fi
                SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}"
                DL_LIBS="-ldl"
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
                TCL_NEEDS_EXP_FILE=1
                TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'
            fi
 
+           # AIX v<=4.1 has some different flags than 4.2+
+           if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then
+               AC_LIBOBJ([tclLoadAix])
+               DL_LIBS="-lld"
+           fi
+
            # On AIX <=v4 systems, libbsd.a has to be linked in to support
            # non-blocking file IO.  This library has to be linked in after
            # the MATH_LIBS or it breaks the pow() function.  The way to
@@ -1094,6 +1271,13 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+
+           #-----------------------------------------------------------
+           # Check for inet_ntoa in -lbind, for BeOS (which also needs
+           # -lsocket, even if the network functions are in -lnet which
+           # is always linked to, for compatibility.
+           #-----------------------------------------------------------
+           AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"])
            ;;
        BSD/OS-2.1*|BSD/OS-3*)
            SHLIB_CFLAGS=""
@@ -1102,6 +1286,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        BSD/OS-4.*)
@@ -1112,6 +1297,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
            LDFLAGS="$LDFLAGS -export-dynamic"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        dgux*)
@@ -1121,11 +1307,15 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        HP-UX-*.11.*)
            # Use updated header definitions where possible
            AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Do we want to use the XOPEN network library?])
+           # Needed by Tcl, but not most extensions
+           #AC_DEFINE(_XOPEN_SOURCE, 1, [Do we want to use the XOPEN network library?])
+           #LIBS="$LIBS -lxnet"               # Use the XOPEN network library
 
            SHLIB_SUFFIX=".sl"
            AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no)
@@ -1136,13 +1326,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                DL_OBJS="tclLoadShl.o"
                DL_LIBS="-ldld"
                LDFLAGS="$LDFLAGS -Wl,-E"
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
                LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
                LD_LIBRARY_PATH_VAR="SHLIB_PATH"
            fi
            if test "$GCC" = "yes" ; then
                SHLIB_LD="gcc -shared"
                SHLIB_LD_LIBS='${LIBS}'
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            fi
 
            # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc
@@ -1158,15 +1349,17 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                            do64bit_ok=yes
                            SHLIB_LD="${CC} -shared"
                            SHLIB_LD_LIBS='${LIBS}'
+                           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+                           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
                            ;;
                        *)
-                           AC_MSG_WARN("64bit mode not supported with GCC on $system")
+                           AC_MSG_WARN([64bit mode not supported with GCC on $system])
                            ;;
                    esac
                else
                    do64bit_ok=yes
                    CFLAGS="$CFLAGS +DD64"
-                   LDFLAGS="$LDFLAGS +DD64"
+                   LDFLAGS_ARCH="+DD64"
                fi
            fi
            ;;
@@ -1180,20 +1373,10 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                DL_OBJS="tclLoadShl.o"
                DL_LIBS="-ldld"
                LDFLAGS="$LDFLAGS -Wl,-E"
-               LD_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.'
+               LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.'
+               LD_LIBRARY_PATH_VAR="SHLIB_PATH"
            fi
-           LD_LIBRARY_PATH_VAR="SHLIB_PATH"
-           ;;
-       IRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           SHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'
            ;;
        IRIX-5.*)
            SHLIB_CFLAGS=""
@@ -1202,16 +1385,18 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            ;;
-       IRIX-6.*|IRIX64-6.5*)
+       IRIX-6.*)
            SHLIB_CFLAGS=""
            SHLIB_LD="ld -n32 -shared -rdata_shared"
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "$GCC" = "yes" ; then
                CFLAGS="$CFLAGS -mabi=n32"
                LDFLAGS="$LDFLAGS -mabi=n32"
@@ -1235,7 +1420,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
 
            # Check to enable 64-bit flags for compiler/linker
 
@@ -1246,7 +1432,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    do64bit_ok=yes
                    SHLIB_LD="ld -64 -shared -rdata_shared"
                    CFLAGS="$CFLAGS -64"
-                   LDFLAGS="$LDFLAGS -64"
+                   LDFLAGS_ARCH="-64"
                fi
            fi
            ;;
@@ -1259,22 +1445,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings 
            # when you inline the string and math operations.  Turn this off to
            # get rid of the warnings.
-
            #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-           else
-               AC_CHECK_HEADER(dld.h, [
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS="tclLoadDld.o"
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""])
-           fi
+           SHLIB_LD="${CC} -shared"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            if test "`uname -m`" = "alpha" ; then
                CFLAGS="$CFLAGS -mieee"
            fi
@@ -1296,23 +1474,28 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".so"
 
-           if test "$have_dl" = yes; then
-               SHLIB_LD="${CC} -shared"
-               DL_OBJS=""
-               DL_LIBS="-ldl"
-               LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
-               LD_SEARCH_FLAGS=""
-           else
-               AC_CHECK_HEADER(dld.h, [
-                   SHLIB_LD="ld -shared"
-                   DL_OBJS=""
-                   DL_LIBS="-ldld"
-                   LD_SEARCH_FLAGS=""])
-           fi
+           SHLIB_LD="${CC} -shared"
+           DL_OBJS=""
+           DL_LIBS="-ldl"
+           LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+           CC_SEARCH_FLAGS=""
+           LD_SEARCH_FLAGS=""
            if test "`uname -m`" = "alpha" ; then
                CFLAGS="$CFLAGS -mieee"
            fi
            ;;
+       Lynx*)
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           CFLAGS_OPTIMIZE=-02
+           SHLIB_LD="${CC} -shared "
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS="-mshared -ldl"
+           LD_FLAGS="-Wl,--export-dynamic"
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           ;;
        MP-RAS-02*)
            SHLIB_CFLAGS="-K PIC"
            SHLIB_LD="cc -G"
@@ -1320,6 +1503,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        MP-RAS-*)
@@ -1330,64 +1514,63 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
            LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        NetBSD-*|FreeBSD-[[1-2]].*)
-           # Not available on all versions:  check for include file.
-           AC_CHECK_HEADER(dlfcn.h, [
-               # NetBSD/SPARC needs -fPIC, -fpic will not do.
-               SHLIB_CFLAGS="-fPIC"
-               SHLIB_LD="ld -Bshareable -x"
-               SHLIB_LD_LIBS=""
-               SHLIB_SUFFIX=".so"
-               DL_OBJS="tclLoadDl.o"
-               DL_LIBS=""
-               LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
-               AC_MSG_CHECKING([for ELF])
+           # NetBSD/SPARC needs -fPIC, -fpic will not do.
+           SHLIB_CFLAGS="-fPIC"
+           SHLIB_LD="ld -Bshareable -x"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           DL_LIBS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+           AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [
                AC_EGREP_CPP(yes, [
 #ifdef __ELF__
        yes
 #endif
-               ],
-                   AC_MSG_RESULT([yes])
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so',
-                   AC_MSG_RESULT([no])
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
-               )
-           ], [
-               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=""
-               LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
-           ])
+               ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)])
+           if test $tcl_cv_ld_elf = yes; then
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+           else
+               SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+           fi
 
-           # FreeBSD doesn't handle version numbers with dots.
+           # Ancient FreeBSD doesn't handle version numbers with dots.
 
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
        OpenBSD-*)
-           SHLIB_LD="${CC} -shared"
+           # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do.
+           case `machine` in
+           sparc|sparc64)
+               SHLIB_CFLAGS="-fPIC";;
+           *)
+               SHLIB_CFLAGS="-fpic";;
+           esac
+           SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}"
            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, [
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+           SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
+           AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [
+               AC_EGREP_CPP(yes, [
 #ifdef __ELF__
        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']
-           )
+               ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)])
+           if test $tcl_cv_ld_elf = yes; then
+               LDFLAGS=-Wl,-export-dynamic
+           else
+               LDFLAGS=""
+           fi
 
            # OpenBSD doesn't do version numbers with dots.
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
@@ -1402,7 +1585,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
            LDFLAGS="$LDFLAGS -export-dynamic"
-           LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "${TCL_THREADS}" = "1" ; then
                # The -pthread needs to go in the CFLAGS, not LIBS
                LIBS=`echo $LIBS | sed s/-pthread//`
@@ -1421,30 +1605,59 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        Darwin-*)
            CFLAGS_OPTIMIZE="-Os"
            SHLIB_CFLAGS="-fno-common"
-           SHLIB_LD="cc -dynamiclib \${LDFLAGS}"
+           if test $do64bit = yes; then
+               do64bit_ok=yes
+               case `arch` in
+                   ppc)
+                       CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5";;
+                   i386)
+                       CFLAGS="$CFLAGS -arch x86_64";;
+                   *)
+                       AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`])
+                       do64bit_ok=no;;
+               esac
+           else
+               # Check for combined 32-bit and 64-bit fat build
+               echo "$CFLAGS " | grep -E -q -- '-arch (ppc64|x86_64) ' && \
+                   echo "$CFLAGS " | grep -E -q -- '-arch (ppc|i386) ' && \
+                   fat_32_64=yes
+           fi
+           # TEA specific: use LDFLAGS_DEFAULT instead of LDFLAGS here:
+           SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS_DEFAULT}'
            AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [
-               hold_ldflags=$LDFLAGS
-               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
-               AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no)
-               LDFLAGS=$hold_ldflags])
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module"
+               AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no)
+               LDFLAGS=$hold_ldflags])
            if test $tcl_cv_ld_single_module = yes; then
-               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
+               SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
            fi
            SHLIB_LD_LIBS='${LIBS}'
            SHLIB_SUFFIX=".dylib"
            DL_OBJS="tclLoadDyld.o"
            DL_LIBS=""
-           LDFLAGS="$LDFLAGS -prebind"
+           # Don't use -prebind when building for Mac OS X 10.4 or later only:
+           test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \
+               "`echo "${CFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4 && \
+               LDFLAGS="$LDFLAGS -prebind"
+           LDFLAGS="$LDFLAGS -headerpad_max_install_names"
            AC_CACHE_CHECK([if ld accepts -search_paths_first flag], tcl_cv_ld_search_paths_first, [
-               hold_ldflags=$LDFLAGS
-               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
-               AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, tcl_cv_ld_search_paths_first=no)
-               LDFLAGS=$hold_ldflags])
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+               AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, tcl_cv_ld_search_paths_first=no)
+               LDFLAGS=$hold_ldflags])
            if test $tcl_cv_ld_search_paths_first = yes; then
-               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+               LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
            fi
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
+
+           # TEA specific: for Tk extensions, remove 64-bit arch flags from
+           # CFLAGS for combined 32-bit and 64-bit fat builds as neither TkAqua
+           # nor TkX11 can be built for 64-bit at present.
+           test "$fat_32_64" = yes && test -n "${TK_BIN_DIR}" && \
+               CFLAGS="`echo "$CFLAGS " | sed -e 's/-arch ppc64 / /g' -e 's/-arch x86_64 / /g'`"
            ;;
        NEXTSTEP-*)
            SHLIB_CFLAGS=""
@@ -1453,6 +1666,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadNext.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OS/390-*)
@@ -1469,6 +1683,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadOSF.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-1.*)
@@ -1483,6 +1698,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-V*)
@@ -1497,6 +1713,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
            LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
            if test "$GCC" = "yes" ; then
                CFLAGS="$CFLAGS -mieee"
@@ -1527,18 +1744,9 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_OBJS="tclLoadDl.o"
            # dlopen is in -lc on QNX
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
-       RISCos-*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           SHLIB_SUFFIX=".a"
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           ;;
        SCO_SV-3.2*)
            # Note, dlopen is available only on SCO 3.2.5 and greater. However,
            # this test works, since "uname -s" was non-standard in 3.2.4 and
@@ -1555,6 +1763,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SINIX*5.4*)
@@ -1564,6 +1773,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SunOS-4*)
@@ -1573,7 +1783,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+           LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
 
            # SunOS can't handle version numbers with dots in them in library
            # specs, like -ltcl7.5, so use -ltcl75 instead.  Also, it
@@ -1584,7 +1795,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
            TCL_LIB_VERSIONS_OK=nodots
            ;;
-       SunOS-5.[[0-6]]*)
+       SunOS-5.[[0-6]])
+           # Careful to not let 5.10+ fall into this case
 
            # Note: If _REENTRANT isn't defined, then Solaris
            # won't define thread-safe library routines.
@@ -1604,14 +1816,15 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
-               LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
            fi
            ;;
        SunOS-5*)
-
            # Note: If _REENTRANT isn't defined, then Solaris
            # won't define thread-safe library routines.
 
@@ -1620,13 +1833,13 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                [Do we really want to follow the standard? Yes we do!])
 
            SHLIB_CFLAGS="-KPIC"
-    
+
            # Check to enable 64-bit flags for compiler/linker
            if test "$do64bit" = "yes" ; then
                arch=`isainfo`
                if test "$arch" = "sparcv9 sparc" ; then
                        if test "$GCC" = "yes" ; then
-                           if test "`gcc -dumpversion` | awk -F. '{print $1}'" -lt "3" ; then
+                           if test "`gcc -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then
                                AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system])
                            else
                                do64bit_ok=yes
@@ -1638,14 +1851,24 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                            do64bit_ok=yes
                            if test "$do64bitVIS" = "yes" ; then
                                CFLAGS="$CFLAGS -xarch=v9a"
-                               LDFLAGS="$LDFLAGS -xarch=v9a"
+                               LDFLAGS_ARCH="-xarch=v9a"
                            else
                                CFLAGS="$CFLAGS -xarch=v9"
-                               LDFLAGS="$LDFLAGS -xarch=v9"
+                               LDFLAGS_ARCH="-xarch=v9"
                            fi
+                           # Solaris 64 uses this as well
+                           #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64"
                        fi
+               elif test "$arch" = "amd64 i386" ; then
+                   if test "$GCC" = "yes" ; then
+                       AC_MSG_WARN([64bit mode not supported with GCC on $system])
+                   else
+                       do64bit_ok=yes
+                       CFLAGS="$CFLAGS -xarch=amd64"
+                       LDFLAGS="$LDFLAGS -xarch=amd64"
+                   fi
                else
-                   AC_MSG_WARN("64bit mode only supported sparcv9 system")
+                   AC_MSG_WARN([64bit mode not supported for $arch])
                fi
            fi
            
@@ -1658,8 +1881,9 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_LIBS="-ldl"
            if test "$GCC" = "yes" ; then
                SHLIB_LD="$CC -shared"
-               LD_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
-               if test "$do64bit" = "yes" ; then
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
+               LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+               if test "$do64bit_ok" = "yes" ; then
                    # We need to specify -static-libgcc or we need to
                    # add the path to the sparv9 libgcc.
                    # JH: static-libgcc is necessary for core Tcl, but may
@@ -1668,26 +1892,14 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    # for finding sparcv9 libgcc, get the regular libgcc
                    # path, remove so name and append 'sparcv9'
                    #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
-                   #LD_SEARCH_FLAGS="${LD_SEARCH_FLAGS},-R,$v9gcclibdir"
+                   #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir"
                fi
            else
                SHLIB_LD="/usr/ccs/bin/ld -G -z text"
+               CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'
                LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
            fi
            ;;
-       ULTRIX-4.*)
-           SHLIB_CFLAGS="-G 0"
-           SHLIB_SUFFIX=".a"
-           SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0"
-           SHLIB_LD_LIBS='${LIBS}'
-           DL_OBJS="tclLoadAout.o"
-           DL_LIBS=""
-           LDFLAGS="$LDFLAGS -Wl,-D,08000000"
-           LD_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
-           if test "$GCC" != "yes" ; then
-               CFLAGS="$CFLAGS -DHAVE_TZSET -std1"
-           fi
-           ;;
        UNIX_SV* | UnixWare-5*)
            SHLIB_CFLAGS="-KPIC"
            SHLIB_LD="cc -G"
@@ -1697,103 +1909,28 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            DL_LIBS="-ldl"
            # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
            # that don't grok the -Bexport option.  Test that it does.
-           hold_ldflags=$LDFLAGS
-           AC_MSG_CHECKING(for ld accepts -Bexport flag)
-           LDFLAGS="$LDFLAGS -Wl,-Bexport"
-           AC_TRY_LINK(, [int i;], [found=yes],
-                       [LDFLAGS=$hold_ldflags found=no])
-           AC_MSG_RESULT([$found])
+           AC_CACHE_CHECK([for ld accepts -Bexport flag], tcl_cv_ld_Bexport, [
+               hold_ldflags=$LDFLAGS
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+               AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no)
+               LDFLAGS=$hold_ldflags])
+           if test $tcl_cv_ld_Bexport = yes; then
+               LDFLAGS="$LDFLAGS -Wl,-Bexport"
+           fi
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
     esac
 
     if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then
-    AC_MSG_WARN("64bit support being disabled -- don\'t know magic for this platform")
-    fi
-
-    # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic
-    # Loading for Tcl -- What Became of It?".  Proc. 2nd Tcl/Tk Workshop,
-    # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need
-    # to determine which of several header files defines the a.out file
-    # format (a.out.h, sys/exec.h, or sys/exec_aout.h).  At present, we
-    # support only a file format that is more or less version-7-compatible. 
-    # In particular,
-    #  - a.out files must begin with `struct exec'.
-    #  - the N_TXTOFF on the `struct exec' must compute the seek address
-    #    of the text segment
-    #  - The `struct exec' must contain a_magic, a_text, a_data, a_bss
-    #    and a_entry fields.
-    # The following compilation should succeed if and only if either sys/exec.h
-    # or a.out.h is usable for the purpose.
-    #
-    # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the
-    # `struct exec' includes a second header that contains information that
-    # duplicates the v7 fields that are needed.
-
-    if test "x$DL_OBJS" = "xtclLoadAout.o" ; then
-       AC_MSG_CHECKING([sys/exec.h])
-       AC_TRY_COMPILE([#include <sys/exec.h>],[
-           struct exec foo;
-           unsigned long seek;
-           int flag;
-#if defined(__mips) || defined(mips)
-           seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-           seek = N_TXTOFF (foo);
-#endif
-           flag = (foo.a_magic == OMAGIC);
-           return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-    ], tcl_ok=usable, tcl_ok=unusable)
-       AC_MSG_RESULT([$tcl_ok])
-       if test $tcl_ok = usable; then
-           AC_DEFINE(USE_SYS_EXEC_H, 1,
-               [Should we use <sys/exec.h> when doing dynamic loading?])
-       else
-           AC_MSG_CHECKING([a.out.h])
-           AC_TRY_COMPILE([#include <a.out.h>],[
-               struct exec foo;
-               unsigned long seek;
-               int flag;
-#if defined(__mips) || defined(mips)
-               seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-               seek = N_TXTOFF (foo);
-#endif
-               flag = (foo.a_magic == OMAGIC);
-               return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-           ], tcl_ok=usable, tcl_ok=unusable)
-           AC_MSG_RESULT([$tcl_ok])
-           if test $tcl_ok = usable; then
-               AC_DEFINE(USE_A_OUT_H, 1,
-                   [Should we use <a.out.h> when doing dynamic loading?])
-           else
-               AC_MSG_CHECKING([sys/exec_aout.h])
-               AC_TRY_COMPILE([#include <sys/exec_aout.h>],[
-                   struct exec foo;
-                   unsigned long seek;
-                   int flag;
-#if defined(__mips) || defined(mips)
-                   seek = N_TXTOFF (foo.ex_f, foo.ex_o);
-#else
-                   seek = N_TXTOFF (foo);
-#endif
-                   flag = (foo.a_midmag == OMAGIC);
-                   return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry;
-               ], tcl_ok=usable, tcl_ok=unusable)
-               AC_MSG_RESULT([$tcl_ok])
-               if test $tcl_ok = usable; then
-                   AC_DEFINE(USE_SYS_EXEC_AOUT_H, 1,
-                       [Should we use <sys/exec_aout.h> when doing dynamic loading?])
-               else
-                   DL_OBJS=""
-               fi
-           fi
-       fi
+       AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform])
     fi
 
-    # Step 5: disable dynamic loading if requested via a command-line switch.
+    # Step 4: disable dynamic loading if requested via a command-line switch.
 
-    AC_ARG_ENABLE(load, [  --disable-load          disallow dynamic loading and "load" command],
+    AC_ARG_ENABLE(load,
+       AC_HELP_STRING([--enable-load],
+           [allow dynamic loading and "load" command (default: on)]),
        [tcl_ok=$enableval], [tcl_ok=yes])
     if test "$tcl_ok" = "no"; then
        DL_OBJS=""
@@ -1810,9 +1947,11 @@ dnl AC_CHECK_TOOL(AR, ar, :)
        DL_OBJS="tclLoadNone.o"
        DL_LIBS=""
        LDFLAGS="$LDFLAGS_ORIG"
+       CC_SEARCH_FLAGS=""
        LD_SEARCH_FLAGS=""
        BUILD_DLTEST=""
     fi
+    LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"
 
     # If we're running gcc, then change the C flags for compiling shared
     # libraries to the right flags for gcc, instead of those for the
@@ -1831,12 +1970,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    ;;
                Darwin-*)
                    ;;
-               RISCos-*)
-                   ;;
                SCO_SV-3.2*)
                    ;;
-               ULTRIX-4.*)
-                   ;;
                windows)
                    ;;
                *)
@@ -1854,16 +1989,17 @@ dnl AC_CHECK_TOOL(AR, ar, :)
     fi
 
     AC_SUBST(DL_LIBS)
+
     AC_SUBST(CFLAGS_DEBUG)
     AC_SUBST(CFLAGS_OPTIMIZE)
     AC_SUBST(CFLAGS_WARNING)
 
     AC_SUBST(STLIB_LD)
     AC_SUBST(SHLIB_LD)
-    AC_SUBST(SHLIB_CFLAGS)
+
     AC_SUBST(SHLIB_LD_LIBS)
-    AC_SUBST(LDFLAGS_DEBUG)
-    AC_SUBST(LDFLAGS_OPTIMIZE)
+    AC_SUBST(SHLIB_CFLAGS)
+
     AC_SUBST(LD_LIBRARY_PATH_VAR)
 
     # These must be called after we do the basic CFLAGS checks and
@@ -1894,10 +2030,9 @@ dnl AC_CHECK_TOOL(AR, ar, :)
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_SERIAL_PORT, [
+AC_DEFUN([TEA_SERIAL_PORT], [
     AC_CHECK_HEADERS(sys/modem.h)
-    AC_MSG_CHECKING([termios vs. termio vs. sgtty])
-    AC_CACHE_VAL(tcl_cv_api_serial, [
+    AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [
     AC_TRY_RUN([
 #include <termios.h>
 
@@ -1935,7 +2070,7 @@ int main() {
        return 0;
     }
     return 1;
-}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none)
+}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no)
     fi
     if test $tcl_cv_api_serial = no ; then
        AC_TRY_RUN([
@@ -1989,7 +2124,6 @@ int main() {
        termio)  AC_DEFINE(USE_TERMIO, 1, [Use the termio API for serial lines]);;
        sgtty)   AC_DEFINE(USE_SGTTY, 1, [Use the sgtty API for serial lines]);;
     esac
-    AC_MSG_RESULT([$tcl_cv_api_serial])
 ])
 
 #--------------------------------------------------------------------
@@ -2024,9 +2158,8 @@ int main() {
 # CHECK on limits.h
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_MISSING_POSIX_HEADERS, [
-    AC_MSG_CHECKING([dirent.h])
-    AC_CACHE_VAL(tcl_cv_dirent_h,
+AC_DEFUN([TEA_MISSING_POSIX_HEADERS], [
+    AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [
     AC_TRY_LINK([#include <sys/types.h>
 #include <dirent.h>], [
 #ifndef _POSIX_SOURCE
@@ -2046,13 +2179,12 @@ d = opendir("foobar");
 entryPtr = readdir(d);
 p = entryPtr->d_name;
 closedir(d);
-], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no))
+], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)])
 
     if test $tcl_cv_dirent_h = no; then
        AC_DEFINE(NO_DIRENT_H, 1, [Do we have <dirent.h>?])
     fi
 
-    AC_MSG_RESULT([$tcl_ok])
     AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H, 1, [Do we have <errno.h>?])])
     AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H, 1, [Do we have <float.h>?])])
     AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H, 1, [Do we have <values.h>?])])
@@ -2082,7 +2214,6 @@ closedir(d);
 
     # OS/390 lacks sys/param.h (and doesn't need it, by chance).
     AC_HAVE_HEADERS(sys/param.h)
-
 ])
 
 #--------------------------------------------------------------------
@@ -2106,32 +2237,17 @@ closedir(d);
 #      Sets the following vars:
 #              XINCLUDES
 #              XLIBSW
-#              LIBS (appends to)
-#              TEA_WINDOWINGSYSTEM
+#              PKG_LIBS (appends to)
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_PATH_X, [
-    if test "${TEA_PLATFORM}" = "unix" ; then
-       case ${TK_DEFS} in
-           *MAC_OSX_TK*)
-               AC_DEFINE(MAC_OSX_TK, 1 [Are we building against Mac OS X TkAqua?])
-               TEA_WINDOWINGSYSTEM="aqua"
-                if test -z "${ac_cv_c_tkh}" -o ! -r "${ac_cv_c_tkh}/X11/Xlib.h"; then
-                    TK_XINCLUDES='-I${TK_SRC_DIR}/xlib'
-                fi
-               ;;
-           *)
-               TEA_PATH_UNIX_X
-               TEA_WINDOWINGSYSTEM="x11"
-               ;;
-       esac
-    elif test "${TEA_PLATFORM}" = "windows" ; then
-       TEA_WINDOWINGSYSTEM="windows"
+AC_DEFUN([TEA_PATH_X], [
+    if test "${TEA_WINDOWINGSYSTEM}" = "x11" ; then
+       TEA_PATH_UNIX_X
     fi
 ])
 
-AC_DEFUN(TEA_PATH_UNIX_X, [
+AC_DEFUN([TEA_PATH_UNIX_X], [
     AC_PATH_X
     not_really_there=""
     if test "$no_x" = ""; then
@@ -2145,28 +2261,27 @@ AC_DEFUN(TEA_PATH_UNIX_X, [
     fi
     if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
        AC_MSG_CHECKING([for X11 header files])
-       XINCLUDES="# no special path needed"
-       AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="nope")
-       if test "$XINCLUDES" = nope; then
+       found_xincludes="no"
+       AC_TRY_CPP([#include <X11/Intrinsic.h>], found_xincludes="yes", found_xincludes="no")
+       if test "$found_xincludes" = "no"; then
            dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include"
            for i in $dirs ; do
                if test -r $i/X11/Intrinsic.h; then
                    AC_MSG_RESULT([$i])
                    XINCLUDES=" -I$i"
+                   found_xincludes="yes"
                    break
                fi
            done
        fi
     else
        if test "$x_includes" != ""; then
-           XINCLUDES=-I$x_includes
-       else
-           XINCLUDES="# no special path needed"
+           XINCLUDES="-I$x_includes"
+           found_xincludes="yes"
        fi
     fi
-    if test "$XINCLUDES" = nope; then
-       AC_MSG_RESULT([could not find any!])
-       XINCLUDES="# no include files found"
+    if test found_xincludes = "no"; then
+       AC_MSG_RESULT([couldn't find any!])
     fi
 
     if test "$no_x" = yes; then
@@ -2221,28 +2336,11 @@ AC_DEFUN(TEA_PATH_UNIX_X, [
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_BLOCKING_STYLE, [
+AC_DEFUN([TEA_BLOCKING_STYLE], [
     AC_CHECK_HEADERS(sys/ioctl.h)
     AC_CHECK_HEADERS(sys/filio.h)
+    TEA_CONFIG_SYSTEM
     AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])
-    if test -f /usr/lib/NextStep/software_version; then
-       system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
-    else
-       system=`uname -s`-`uname -r`
-       if test "$?" -ne 0 ; then
-           system=unknown
-       else
-           # Special check for weird MP-RAS system (uname returns weird
-           # results, and the version is kept in special file).
-       
-           if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
-               system=MP-RAS-`awk '{print $3}' /etc/.relid'`
-           fi
-           if test "`uname -s`" = "AIX" ; then
-               system=AIX-`uname -v`.`uname -r`
-           fi
-       fi
-    fi
     case $system in
        # There used to be code here to use FIONBIO under AIX.  However, it
        # was reported that FIONBIO doesn't work under AIX 3.2.5.  Since
@@ -2257,10 +2355,6 @@ AC_DEFUN(TEA_BLOCKING_STYLE, [
            AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?])
            AC_MSG_RESULT([FIONBIO])
            ;;
-       ULTRIX-4.*)
-           AC_DEFINE(USE_FIONBIO, 1, [Should we use FIONBIO?])
-           AC_MSG_RESULT([FIONBIO])
-           ;;
        *)
            AC_MSG_RESULT([O_NONBLOCK])
            ;;
@@ -2286,27 +2380,23 @@ AC_DEFUN(TEA_BLOCKING_STYLE, [
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_TIME_HANDLER, [
+AC_DEFUN([TEA_TIME_HANDLER], [
     AC_CHECK_HEADERS(sys/time.h)
     AC_HEADER_TIME
     AC_STRUCT_TIMEZONE
 
     AC_CHECK_FUNCS(gmtime_r localtime_r)
 
-    AC_MSG_CHECKING([tm_tzadj in struct tm])
-    AC_CACHE_VAL(tcl_cv_member_tm_tzadj,
+    AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [
        AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;],
-           tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no))
-    AC_MSG_RESULT([$tcl_cv_member_tm_tzadj])
+           tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)])
     if test $tcl_cv_member_tm_tzadj = yes ; then
        AC_DEFINE(HAVE_TM_TZADJ, 1, [Should we use the tm_tzadj field of struct tm?])
     fi
 
-    AC_MSG_CHECKING([tm_gmtoff in struct tm])
-    AC_CACHE_VAL(tcl_cv_member_tm_gmtoff,
+    AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [
        AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;],
-           tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no))
-    AC_MSG_RESULT([$tcl_cv_member_tm_gmtoff])
+           tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)])
     if test $tcl_cv_member_tm_gmtoff = yes ; then
        AC_DEFINE(HAVE_TM_GMTOFF, 1, [Should we use the tm_gmtoff field of struct tm?])
     fi
@@ -2315,28 +2405,24 @@ AC_DEFUN(TEA_TIME_HANDLER, [
     # Its important to include time.h in this check, as some systems
     # (like convex) have timezone functions, etc.
     #
-    AC_MSG_CHECKING([long timezone variable])
-    AC_CACHE_VAL(tcl_cv_var_timezone,
+    AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [
        AC_TRY_COMPILE([#include <time.h>],
            [extern long timezone;
            timezone += 1;
            exit (0);],
-           tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no))
-    AC_MSG_RESULT([$tcl_cv_timezone_long])
+           tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)])
     if test $tcl_cv_timezone_long = yes ; then
        AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
     else
        #
        # On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
        #
-       AC_MSG_CHECKING([time_t timezone variable])
-       AC_CACHE_VAL(tcl_cv_timezone_time,
+       AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [
            AC_TRY_COMPILE([#include <time.h>],
                [extern time_t timezone;
                timezone += 1;
                exit (0);],
-               tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no))
-       AC_MSG_RESULT([$tcl_cv_timezone_time])
+               tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)])
        if test $tcl_cv_timezone_time = yes ; then
            AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
        fi
@@ -2363,33 +2449,32 @@ AC_DEFUN(TEA_TIME_HANDLER, [
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_BUGGY_STRTOD, [
+AC_DEFUN([TEA_BUGGY_STRTOD], [
     AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0)
     if test "$tcl_strtod" = 1; then
-       AC_MSG_CHECKING([for Solaris2.4/Tru64 strtod bugs])
-       AC_CACHE_VAL(tcl_cv_strtod_buggy,[
-       AC_TRY_RUN([
-           extern double strtod();
-           int main()
-           {
-               char *string = "NaN", *spaceString = " ";
-               char *term;
-               double value;
-               value = strtod(string, &term);
-               if ((term != string) && (term[-1] == 0)) {
-                   exit(1);
-               }
-               value = strtod(spaceString, &term);
-               if (term == (spaceString+1)) {
-                   exit(1);
-               }
-               exit(0);
-           }], tcl_cv_strtod_buggy=1, tcl_cv_strtod_buggy=0, tcl_cv_strtod_buggy=0)])
-       if test "$tcl_cv_strtod_buggy" = 1; then
-           AC_MSG_RESULT([ok])
-       else
-           AC_MSG_RESULT([buggy])
-           #LIBOBJS="$LIBOBJS fixstrtod.o"
+       AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[
+           AC_TRY_RUN([
+               extern double strtod();
+               int main() {
+                   char *infString="Inf", *nanString="NaN", *spaceString=" ";
+                   char *term;
+                   double value;
+                   value = strtod(infString, &term);
+                   if ((term != infString) && (term[-1] == 0)) {
+                       exit(1);
+                   }
+                   value = strtod(nanString, &term);
+                   if ((term != nanString) && (term[-1] == 0)) {
+                       exit(1);
+                   }
+                   value = strtod(spaceString, &term);
+                   if (term == (spaceString+1)) {
+                       exit(1);
+                   }
+                   exit(0);
+               }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy,
+                   tcl_cv_strtod_buggy=buggy)])
+       if test "$tcl_cv_strtod_buggy" = buggy; then
            AC_LIBOBJ([fixstrtod])
            USE_COMPAT=1
            AC_DEFINE(strtod, fixstrtod, [Do we want to use the strtod() in compat?])
@@ -2424,7 +2509,7 @@ AC_DEFUN(TEA_BUGGY_STRTOD, [
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_TCL_LINK_LIBS, [
+AC_DEFUN([TEA_TCL_LINK_LIBS], [
     #--------------------------------------------------------------------
     # On a few very rare systems, all of the libm.a stuff is
     # already in libc.a.  Set compiler flags accordingly.
@@ -2498,10 +2583,11 @@ AC_DEFUN(TEA_TCL_LINK_LIBS, [
 #      Might define the following vars:
 #              _ISOC99_SOURCE
 #              _LARGEFILE64_SOURCE
+#              _LARGEFILE_SOURCE64
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_TCL_EARLY_FLAG,[
+AC_DEFUN([TEA_TCL_EARLY_FLAG],[
     AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]),
        AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no,
            AC_TRY_COMPILE([[#define ]$1[ 1
@@ -2514,13 +2600,15 @@ AC_DEFUN(TEA_TCL_EARLY_FLAG,[
     fi
 ])
 
-AC_DEFUN(TEA_TCL_EARLY_FLAGS,[
+AC_DEFUN([TEA_TCL_EARLY_FLAGS],[
     AC_MSG_CHECKING([for required early compiler flags])
     tcl_flags=""
     TEA_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include <stdlib.h>],
        [char *p = (char *)strtoll; char *q = (char *)strtoull;])
     TEA_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include <sys/stat.h>],
        [struct stat64 buf; int i = stat64("/", &buf);])
+    TEA_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include <sys/stat.h>],
+       [char *p = (char *)open64;])
     if test "x${tcl_flags}" = "x" ; then
        AC_MSG_RESULT([none])
     else
@@ -2547,7 +2635,7 @@ AC_DEFUN(TEA_TCL_EARLY_FLAGS,[
 #
 #--------------------------------------------------------------------
 
-AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
+AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
     AC_MSG_CHECKING([for 64-bit integer type])
     AC_CACHE_VAL(tcl_cv_type_64bit,[
        tcl_cv_type_64bit=none
@@ -2574,35 +2662,38 @@ AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
        AC_MSG_RESULT([${tcl_cv_type_64bit}])
 
        # Now check for auxiliary declarations
-       AC_MSG_CHECKING([for struct dirent64])
-       AC_CACHE_VAL(tcl_cv_struct_dirent64,[
+       AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[
            AC_TRY_COMPILE([#include <sys/types.h>
 #include <sys/dirent.h>],[struct dirent64 p;],
                tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)])
        if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then
            AC_DEFINE(HAVE_STRUCT_DIRENT64, 1, [Is 'struct dirent64' in <sys/types.h>?])
        fi
-       AC_MSG_RESULT([${tcl_cv_struct_dirent64}])
 
-       AC_MSG_CHECKING([for struct stat64])
-       AC_CACHE_VAL(tcl_cv_struct_stat64,[
+       AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[
            AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat64 p;
 ],
                tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)])
        if test "x${tcl_cv_struct_stat64}" = "xyes" ; then
            AC_DEFINE(HAVE_STRUCT_STAT64, 1, [Is 'struct stat64' in <sys/stat.h>?])
        fi
-       AC_MSG_RESULT([${tcl_cv_struct_stat64}])
 
+       AC_CHECK_FUNCS(open64 lseek64)
        AC_MSG_CHECKING([for off64_t])
        AC_CACHE_VAL(tcl_cv_type_off64_t,[
            AC_TRY_COMPILE([#include <sys/types.h>],[off64_t offset;
 ],
                tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)])
-       if test "x${tcl_cv_type_off64_t}" = "xyes" ; then
+       dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the
+       dnl functions lseek64 and open64 are defined.
+       if test "x${tcl_cv_type_off64_t}" = "xyes" && \
+               test "x${ac_cv_func_lseek64}" = "xyes" && \
+               test "x${ac_cv_func_open64}" = "xyes" ; then
            AC_DEFINE(HAVE_TYPE_OFF64_T, 1, [Is off64_t in <sys/types.h>?])
+           AC_MSG_RESULT([yes])
+       else
+           AC_MSG_RESULT([no])
        fi
-       AC_MSG_RESULT([${tcl_cv_type_off64_t}])
     fi
 ])
 
@@ -2626,6 +2717,7 @@ AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
 #              CYGPATH
 #              EXEEXT
 #      Defines only:
+#              TEA_VERSION
 #              TEA_INITED
 #              TEA_PLATFORM (windows or unix)
 #
@@ -2639,10 +2731,10 @@ AC_DEFUN(TEA_TCL_64BIT_FLAGS, [
 #      a compiler.
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_INIT, [
+AC_DEFUN([TEA_INIT], [
     # TEA extensions pass this us the version of TEA they think they
     # are compatible with.
-    TEA_VERSION="3.2"
+    TEA_VERSION="3.5"
 
     AC_MSG_CHECKING([for correct TEA configuration])
     if test x"${PACKAGE_NAME}" = x ; then
@@ -2715,7 +2807,7 @@ TEA version not specified.])
 #              PKG_SOURCES
 #              PKG_OBJECTS
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_ADD_SOURCES, [
+AC_DEFUN([TEA_ADD_SOURCES], [
     vars="$@"
     for i in $vars; do
        case $i in
@@ -2765,7 +2857,7 @@ AC_DEFUN(TEA_ADD_SOURCES, [
 #              PKG_STUB_SOURCES
 #              PKG_STUB_OBJECTS
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_ADD_STUB_SOURCES, [
+AC_DEFUN([TEA_ADD_STUB_SOURCES], [
     vars="$@"
     for i in $vars; do
        # check for existence - allows for generic/win/unix VPATH
@@ -2803,7 +2895,7 @@ AC_DEFUN(TEA_ADD_STUB_SOURCES, [
 #      Defines and substs the following vars:
 #              PKG_TCL_SOURCES
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_ADD_TCL_SOURCES, [
+AC_DEFUN([TEA_ADD_TCL_SOURCES], [
     vars="$@"
     for i in $vars; do
        # check for existence, be strict because it is installed
@@ -2829,7 +2921,7 @@ AC_DEFUN(TEA_ADD_TCL_SOURCES, [
 #      Defines and substs the following vars:
 #              PKG_HEADERS
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_ADD_HEADERS, [
+AC_DEFUN([TEA_ADD_HEADERS], [
     vars="$@"
     for i in $vars; do
        # check for existence, be strict because it is installed
@@ -2855,7 +2947,7 @@ AC_DEFUN(TEA_ADD_HEADERS, [
 #      Defines and substs the following vars:
 #              PKG_INCLUDES
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_ADD_INCLUDES, [
+AC_DEFUN([TEA_ADD_INCLUDES], [
     vars="$@"
     for i in $vars; do
        PKG_INCLUDES="$PKG_INCLUDES $i"
@@ -2879,7 +2971,7 @@ AC_DEFUN(TEA_ADD_INCLUDES, [
 #      Defines and substs the following vars:
 #              PKG_LIBS
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_ADD_LIBS, [
+AC_DEFUN([TEA_ADD_LIBS], [
     vars="$@"
     for i in $vars; do
        if test "${TEA_PLATFORM}" = "windows" -a "$GCC" = "yes" ; then
@@ -2905,7 +2997,7 @@ AC_DEFUN(TEA_ADD_LIBS, [
 #      Defines and substs the following vars:
 #              PKG_CFLAGS
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_ADD_CFLAGS, [
+AC_DEFUN([TEA_ADD_CFLAGS], [
     PKG_CFLAGS="$PKG_CFLAGS $@"
     AC_SUBST(PKG_CFLAGS)
 ])
@@ -2924,7 +3016,7 @@ AC_DEFUN(TEA_ADD_CFLAGS, [
 #      $exec_prefix will be set to the values given to Tcl when it was
 #      configured.
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_PREFIX, [
+AC_DEFUN([TEA_PREFIX], [
     if test "${prefix}" = "NONE"; then
        prefix_default=yes
        if test x"${TCL_PREFIX}" != x; then
@@ -2960,7 +3052,7 @@ AC_DEFUN(TEA_PREFIX, [
 #
 #      Sets up CC var and other standard bits we need to make executables.
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_SETUP_COMPILER_CC, [
+AC_DEFUN([TEA_SETUP_COMPILER_CC], [
     # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE)
     # in this macro, they need to go into TEA_SETUP_COMPILER instead.
 
@@ -3008,7 +3100,7 @@ AC_DEFUN(TEA_SETUP_COMPILER_CC, [
 #
 #      Sets up CC var and other standard bits we need to make executables.
 #------------------------------------------------------------------------
-AC_DEFUN(TEA_SETUP_COMPILER, [
+AC_DEFUN([TEA_SETUP_COMPILER], [
     # Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here.
     AC_REQUIRE([TEA_SETUP_COMPILER_CC])
 
@@ -3063,7 +3155,7 @@ AC_DEFUN(TEA_SETUP_COMPILER, [
 #      MAKE_STUB_LIB   Makefile rule for building a stub library
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_MAKE_LIB, [
+AC_DEFUN([TEA_MAKE_LIB], [
     if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
        MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)"
        MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)"
@@ -3098,8 +3190,11 @@ AC_DEFUN(TEA_MAKE_LIB, [
        else
            eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+       if test "$GCC" = "yes"; then
+           PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
+       fi
        # These aren't needed on Windows (either MSVC or gcc)
        RANLIB=:
        RANLIB_STUB=:
@@ -3115,7 +3210,7 @@ AC_DEFUN(TEA_MAKE_LIB, [
        else
            eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
        fi
-       # Some packages build there own stubs libraries
+       # Some packages build their own stubs libraries
        eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
     fi
 
@@ -3156,7 +3251,7 @@ AC_DEFUN(TEA_MAKE_LIB, [
 #              ${basename}_LIB_SPEC    The computed linker flags.
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_LIB_SPEC, [
+AC_DEFUN([TEA_LIB_SPEC], [
     AC_MSG_CHECKING([for $1 library])
 
     # Look in exec-prefix for the library (defined by TEA_PREFIX).
@@ -3229,33 +3324,36 @@ AC_DEFUN(TEA_LIB_SPEC, [
 #              TCL_INCLUDES
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PRIVATE_TCL_HEADERS, [
+AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [
     AC_MSG_CHECKING([for Tcl private include files])
 
+    TCL_SRC_DIR_NATIVE=`${CYGPATH} ${TCL_SRC_DIR}`
+    TCL_TOP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}\"
+    TCL_GENERIC_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/generic\"
+    TCL_UNIX_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/unix\"
+    TCL_WIN_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/win\"
+    TCL_BMAP_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/bitmaps\"
+    TCL_TOOL_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/tools\"
+    TCL_COMPAT_DIR_NATIVE=\"${TCL_SRC_DIR_NATIVE}/compat\"
+
     if test "${TEA_PLATFORM}" = "windows"; then
-       TCL_TOP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}`\"
-       TCL_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/generic`\"
-       TCL_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/unix`\"
-       TCL_WIN_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/win`\"
-       TCL_BMAP_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/bitmaps`\"
-       TCL_TOOL_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/tools`\"
-       TCL_COMPAT_DIR_NATIVE=\"`${CYGPATH} ${TCL_SRC_DIR}/compat`\"
        TCL_PLATFORM_DIR_NATIVE=${TCL_WIN_DIR_NATIVE}
-
-       TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
     else
-       TCL_TOP_DIR_NATIVE='$(TCL_SRC_DIR)'
-       TCL_GENERIC_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/generic'
-       TCL_UNIX_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/unix'
-       TCL_WIN_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/win'
-       TCL_BMAP_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/bitmaps'
-       TCL_TOOL_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/tools'
-       TCL_COMPAT_DIR_NATIVE='${TCL_TOP_DIR_NATIVE}/compat'
        TCL_PLATFORM_DIR_NATIVE=${TCL_UNIX_DIR_NATIVE}
-
-       # substitute these in "relaxed" so that TCL_INCLUDES still works
-       # without requiring the other vars to be defined in the Makefile
-       eval "TCL_INCLUDES=\"-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}\""
+    fi
+    # We want to ensure these are substituted so as not to require
+    # any *_NATIVE vars be defined in the Makefile
+    TCL_INCLUDES="-I${TCL_GENERIC_DIR_NATIVE} -I${TCL_PLATFORM_DIR_NATIVE}"
+    if test "`uname -s`" = "Darwin"; then
+        # If Tcl was built as a framework, attempt to use
+        # the framework's Headers and PrivateHeaders directories
+        case ${TCL_DEFS} in
+           *TCL_FRAMEWORK*)
+               if test -d "${TCL_BIN_DIR}/Headers" -a -d "${TCL_BIN_DIR}/PrivateHeaders"; then
+               TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"; else
+               TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"; fi
+               ;;
+       esac
     fi
 
     AC_SUBST(TCL_TOP_DIR_NATIVE)
@@ -3290,7 +3388,7 @@ AC_DEFUN(TEA_PRIVATE_TCL_HEADERS, [
 #              TCL_INCLUDES
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PUBLIC_TCL_HEADERS, [
+AC_DEFUN([TEA_PUBLIC_TCL_HEADERS], [
     AC_MSG_CHECKING([for Tcl public headers])
 
     AC_ARG_WITH(tclinclude, [  --with-tclinclude       directory containing the public Tcl header files], with_tclinclude=${withval})
@@ -3305,17 +3403,36 @@ AC_DEFUN(TEA_PUBLIC_TCL_HEADERS, [
                AC_MSG_ERROR([${with_tclinclude} directory does not contain tcl.h])
            fi
        else
+           if test "`uname -s`" = "Darwin"; then
+               # If Tcl was built as a framework, attempt to use
+               # the framework's Headers directory
+               case ${TCL_DEFS} in
+                   *TCL_FRAMEWORK*)
+                       list="`ls -d ${TCL_BIN_DIR}/Headers 2>/dev/null`"
+                       ;;
+               esac
+           fi
+
+           # Look in the source dir only if Tcl is not installed,
+           # and in that situation, look there before installed locations.
+           if test -f "${TCL_BIN_DIR}/Makefile" ; then
+               list="$list `ls -d ${TCL_SRC_DIR}/generic 2>/dev/null`"
+           fi
+
            # Check order: pkg --prefix location, Tcl's --prefix location,
-           # directory of tclConfig.sh, and Tcl source directory.
-           # Looking in the source dir is not ideal, but OK.
+           # relative to directory of tclConfig.sh.
 
            eval "temp_includedir=${includedir}"
-           list="`ls -d ${temp_includedir}      2>/dev/null` \
+           list="$list \
+               `ls -d ${temp_includedir}        2>/dev/null` \
                `ls -d ${TCL_PREFIX}/include     2>/dev/null` \
-               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null` \
-               `ls -d ${TCL_SRC_DIR}/generic    2>/dev/null`"
+               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
            if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
                list="$list /usr/local/include /usr/include"
+               if test x"${TCL_INCLUDE_SPEC}" != x ; then
+                   d=`echo "${TCL_INCLUDE_SPEC}" | sed -e 's/^-I//'`
+                   list="$list `ls -d ${d} 2>/dev/null`"
+               fi
            fi
            for i in $list ; do
                if test -f "$i/tcl.h" ; then
@@ -3360,28 +3477,39 @@ AC_DEFUN(TEA_PUBLIC_TCL_HEADERS, [
 #              TK_INCLUDES
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PRIVATE_TK_HEADERS, [
+AC_DEFUN([TEA_PRIVATE_TK_HEADERS], [
     AC_MSG_CHECKING([for Tk private include files])
 
+    TK_SRC_DIR_NATIVE=`${CYGPATH} ${TK_SRC_DIR}`
+    TK_TOP_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}\"
+    TK_UNIX_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/unix\"
+    TK_WIN_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/win\"
+    TK_GENERIC_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/generic\"
+    TK_XLIB_DIR_NATIVE=\"${TK_SRC_DIR_NATIVE}/xlib\"
     if test "${TEA_PLATFORM}" = "windows"; then
-       TK_TOP_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}`\"
-       TK_UNIX_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/unix`\"
-       TK_WIN_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/win`\"
-       TK_GENERIC_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/generic`\"
-       TK_XLIB_DIR_NATIVE=\"`${CYGPATH} ${TK_SRC_DIR}/xlib`\"
        TK_PLATFORM_DIR_NATIVE=${TK_WIN_DIR_NATIVE}
-
-       TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE} -I${TK_XLIB_DIR_NATIVE}"
     else
-       TK_TOP_DIR_NATIVE='${TK_SRC_DIR}'
-       TK_GENERIC_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/generic'
-       TK_UNIX_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/unix'
-       TK_WIN_DIR_NATIVE='${TK_TOP_DIR_NATIVE}/win'
        TK_PLATFORM_DIR_NATIVE=${TK_UNIX_DIR_NATIVE}
-
-       # substitute these in "relaxed" so that TK_INCLUDES still works
-       # without requiring the other vars to be defined in the Makefile
-       eval "TK_INCLUDES=\"-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}\""
+    fi
+    # We want to ensure these are substituted so as not to require
+    # any *_NATIVE vars be defined in the Makefile
+    TK_INCLUDES="-I${TK_GENERIC_DIR_NATIVE} -I${TK_PLATFORM_DIR_NATIVE}"
+    if test "${TEA_WINDOWINGSYSTEM}" = "win32" \
+       -o "${TEA_WINDOWINGSYSTEM}" = "aqua"; then
+       TK_INCLUDES="${TK_INCLUDES} -I${TK_XLIB_DIR_NATIVE}"
+    fi
+    if test "${TEA_WINDOWINGSYSTEM}" = "aqua"; then
+       TK_INCLUDES="${TK_INCLUDES} -I${TK_SRC_DIR_NATIVE}/macosx"
+    fi
+    if test "`uname -s`" = "Darwin"; then
+        # If Tk was built as a framework, attempt to use
+        # the framework's Headers and PrivateHeaders directories
+        case ${TK_DEFS} in
+           *TK_FRAMEWORK*)
+               if test -d "${TK_BIN_DIR}/Headers" -a -d "${TK_BIN_DIR}/PrivateHeaders"; then
+               TK_INCLUDES="-I\"${TK_BIN_DIR}/Headers\" -I\"${TK_BIN_DIR}/PrivateHeaders\" ${TK_INCLUDES}"; fi
+               ;;
+       esac
     fi
 
     AC_SUBST(TK_TOP_DIR_NATIVE)
@@ -3415,7 +3543,7 @@ AC_DEFUN(TEA_PRIVATE_TK_HEADERS, [
 #              TK_INCLUDES
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
+AC_DEFUN([TEA_PUBLIC_TK_HEADERS], [
     AC_MSG_CHECKING([for Tk public headers])
 
     AC_ARG_WITH(tkinclude, [  --with-tkinclude      directory containing the public Tk header files.], with_tkinclude=${withval})
@@ -3430,16 +3558,33 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
                AC_MSG_ERROR([${with_tkinclude} directory does not contain tk.h])
            fi
        else
-           # Check order: pkg --prefix location, Tcl's --prefix location,
-           # directory of tclConfig.sh, and Tcl source directory.
-           # Looking in the source dir is not ideal, but OK.
+           if test "`uname -s`" = "Darwin"; then
+               # If Tk was built as a framework, attempt to use
+               # the framework's Headers directory.
+               case ${TK_DEFS} in
+                   *TK_FRAMEWORK*)
+                       list="`ls -d ${TK_BIN_DIR}/Headers 2>/dev/null`"
+                       ;;
+               esac
+           fi
+
+           # Look in the source dir only if Tk is not installed,
+           # and in that situation, look there before installed locations.
+           if test -f "${TK_BIN_DIR}/Makefile" ; then
+               list="$list `ls -d ${TK_SRC_DIR}/generic 2>/dev/null`"
+           fi
+
+           # Check order: pkg --prefix location, Tk's --prefix location,
+           # relative to directory of tkConfig.sh, Tcl's --prefix location, 
+           # relative to directory of tclConfig.sh.
 
            eval "temp_includedir=${includedir}"
-           list="`ls -d ${temp_includedir}      2>/dev/null` \
+           list="$list \
+               `ls -d ${temp_includedir}        2>/dev/null` \
                `ls -d ${TK_PREFIX}/include      2>/dev/null` \
+               `ls -d ${TK_BIN_DIR}/../include  2>/dev/null` \
                `ls -d ${TCL_PREFIX}/include     2>/dev/null` \
-               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null` \
-               `ls -d ${TK_SRC_DIR}/generic     2>/dev/null`"
+               `ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`"
            if test "${TEA_PLATFORM}" != "windows" -o "$GCC" = "yes"; then
                list="$list /usr/local/include /usr/include"
            fi
@@ -3468,8 +3613,9 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
 
     AC_SUBST(TK_INCLUDES)
 
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # On Windows, we need the X compat headers
+    if test "${TEA_WINDOWINGSYSTEM}" = "win32" \
+       -o "${TEA_WINDOWINGSYSTEM}" = "aqua"; then
+       # On Windows and Aqua, we need the X compat headers
        AC_MSG_CHECKING([for X11 header files])
        if test ! -r "${INCLUDE_DIR_NATIVE}/X11/Xlib.h"; then
            INCLUDE_DIR_NATIVE="`${CYGPATH} ${TK_SRC_DIR}/xlib`"
@@ -3482,10 +3628,14 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
 
 #------------------------------------------------------------------------
 # TEA_PROG_TCLSH
-#      Locate a tclsh shell in the following directories:
-#              ${TCL_BIN_DIR}          ${TCL_BIN_DIR}/../bin
-#              ${exec_prefix}/bin      ${prefix}/bin
-#              ${PATH}
+#      Determine the fully qualified path name of the tclsh executable
+#      in the Tcl build directory or the tclsh installed in a bin
+#      directory. This macro will correctly determine the name
+#      of the tclsh executable even if tclsh has not yet been
+#      built in the build directory. The tclsh found is always
+#      associated with a tclConfig.sh file. This tclsh should be used
+#      only for running extension test cases. It should never be
+#      or generation of files (like pkgIndex.tcl) at build time.
 #
 # Arguments
 #      none
@@ -3495,49 +3645,47 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
 #              TCLSH_PROG
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PROG_TCLSH, [
-    # Allow the user to provide this setting in the env
-    if test "x${TCLSH_PROG}" = "x" ; then
-       AC_MSG_CHECKING([for tclsh])
-
-       AC_CACHE_VAL(ac_cv_path_tclsh, [
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target tclsh in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/tclsh[[8-9]]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/tclsh*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_tclsh" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_tclsh=$j
-                       break
-                   fi
-               fi
-           done
-       done
-       ])
-
-       if test -f "$ac_cv_path_tclsh" ; then
-           TCLSH_PROG=$ac_cv_path_tclsh
-           AC_MSG_RESULT([$TCLSH_PROG])
-       else
-           AC_MSG_ERROR([No tclsh found in PATH: $search_path])
-       fi
-    fi
+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 location
+        if test "${TEA_PLATFORM}" = "windows"; then
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
+        else
+            TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
+        fi
+        list="`ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null` \
+              `ls -d ${TCL_BIN_DIR}/..     2>/dev/null` \
+              `ls -d ${TCL_PREFIX}/bin     2>/dev/null`"
+        for i in $list ; do
+            if test -f "$i/${TCLSH_PROG}" ; then
+                REAL_TCL_BIN_DIR="`cd "$i"; pwd`"
+                break
+            fi
+        done
+        TCLSH_PROG="${REAL_TCL_BIN_DIR}/${TCLSH_PROG}"
+    fi
+    AC_MSG_RESULT([${TCLSH_PROG}])
     AC_SUBST(TCLSH_PROG)
 ])
 
 #------------------------------------------------------------------------
 # TEA_PROG_WISH
-#      Locate a wish shell in the following directories:
-#              ${TK_BIN_DIR}           ${TK_BIN_DIR}/../bin
-#              ${TCL_BIN_DIR}          ${TCL_BIN_DIR}/../bin
-#              ${exec_prefix}/bin      ${prefix}/bin
-#              ${PATH}
+#      Determine the fully qualified path name of the wish executable
+#      in the Tk build directory or the wish installed in a bin
+#      directory. This macro will correctly determine the name
+#      of the wish executable even if wish has not yet been
+#      built in the build directory. The wish found is always
+#      associated with a tkConfig.sh file. This wish should be used
+#      only for running extension test cases. It should never be
+#      or generation of files (like pkgIndex.tcl) at build time.
 #
 # Arguments
 #      none
@@ -3547,39 +3695,34 @@ AC_DEFUN(TEA_PROG_TCLSH, [
 #              WISH_PROG
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PROG_WISH, [
-    # Allow the user to provide this setting in the env
-    if test "x${WISH_PROG}" = "x" ; then
-       AC_MSG_CHECKING([for wish])
-
-       AC_CACHE_VAL(ac_cv_path_wish, [
-       search_path=`echo ${PATH} | sed -e 's/:/ /g'`
-       if test "${TEA_PLATFORM}" != "windows" -o \
-               \( "$do64bit_ok" = "no" -a "$doWince" = "no" \) ; then
-           # Do not allow target wish in known cross-compile builds,
-           # as we need one we can run on this system
-           search_path="${TK_BIN_DIR} ${TK_BIN_DIR}/../bin ${TCL_BIN_DIR} ${TCL_BIN_DIR}/../bin ${exec_prefix}/bin ${prefix}/bin ${search_path}"
-       fi
-       for dir in $search_path ; do
-           for j in `ls -r $dir/wish[[8-9]]*${EXEEXT} 2> /dev/null` \
-                   `ls -r $dir/wish*${EXEEXT} 2> /dev/null` ; do
-               if test x"$ac_cv_path_wish" = x ; then
-                   if test -f "$j" ; then
-                       ac_cv_path_wish=$j
-                       break
-                   fi
-               fi
-           done
-       done
-       ])
-
-       if test -f "$ac_cv_path_wish" ; then
-       WISH_PROG=$ac_cv_path_wish
-           AC_MSG_RESULT([$WISH_PROG])
-       else
-           AC_MSG_ERROR([No wish found in PATH: $search_path])
-       fi
-    fi
+AC_DEFUN([TEA_PROG_WISH], [
+    AC_MSG_CHECKING([for wish])
+    if test -f "${TK_BIN_DIR}/Makefile" ; then
+        # tkConfig.sh is in Tk build directory
+        if test "${TEA_PLATFORM}" = "windows"; then
+            WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}"
+        else
+            WISH_PROG="${TK_BIN_DIR}/wish"
+        fi
+    else
+        # tkConfig.sh is in install location
+        if test "${TEA_PLATFORM}" = "windows"; then
+            WISH_PROG="wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}"
+        else
+            WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_DBGX}"
+        fi
+        list="`ls -d ${TK_BIN_DIR}/../bin 2>/dev/null` \
+              `ls -d ${TK_BIN_DIR}/..     2>/dev/null` \
+              `ls -d ${TK_PREFIX}/bin     2>/dev/null`"
+        for i in $list ; do
+            if test -f "$i/${WISH_PROG}" ; then
+                REAL_TK_BIN_DIR="`cd "$i"; pwd`"
+                break
+            fi
+        done
+        WISH_PROG="${REAL_TK_BIN_DIR}/${WISH_PROG}"
+    fi
+    AC_MSG_RESULT([${WISH_PROG}])
     AC_SUBST(WISH_PROG)
 ])
 
@@ -3603,7 +3746,7 @@ AC_DEFUN(TEA_PROG_WISH, [
 #                              the $1Config.sh file
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PATH_CONFIG, [
+AC_DEFUN([TEA_PATH_CONFIG], [
     #
     # Ok, lets find the $1 configuration
     # First, look for one uninstalled.
@@ -3670,7 +3813,8 @@ AC_DEFUN(TEA_PATH_CONFIG, [
 
            # check in a few common install locations
            if test x"${ac_cv_c_$1config}" = x ; then
-               for i in `ls -d ${exec_prefix}/lib 2>/dev/null` \
+               for i in `ls -d ${libdir} 2>/dev/null` \
+                       `ls -d ${exec_prefix}/lib 2>/dev/null` \
                        `ls -d ${prefix}/lib 2>/dev/null` \
                        `ls -d /usr/local/lib 2>/dev/null` \
                        `ls -d /usr/contrib/lib 2>/dev/null` \
@@ -3686,7 +3830,7 @@ AC_DEFUN(TEA_PATH_CONFIG, [
 
        if test x"${ac_cv_c_$1config}" = x ; then
            $1_BIN_DIR="# no $1 configs found"
-           AC_MSG_WARN("Cannot find $1 configuration definitions")
+           AC_MSG_WARN([Cannot find $1 configuration definitions])
            exit 0
        else
            no_$1=
@@ -3715,7 +3859,7 @@ AC_DEFUN(TEA_PATH_CONFIG, [
 #
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_LOAD_CONFIG, [
+AC_DEFUN([TEA_LOAD_CONFIG], [
     AC_MSG_CHECKING([for existence of ${$1_BIN_DIR}/$1Config.sh])
 
     if test -f "${$1_BIN_DIR}/$1Config.sh" ; then
@@ -3771,7 +3915,7 @@ AC_DEFUN(TEA_LOAD_CONFIG, [
 #                              the include and platform lib files
 #------------------------------------------------------------------------
 
-AC_DEFUN(TEA_PATH_CELIB, [
+AC_DEFUN([TEA_PATH_CELIB], [
     # First, look for one uninstalled.
     # the alternative search directory is invoked by --with-celib
 
@@ -3814,45 +3958,13 @@ AC_DEFUN(TEA_PATH_CELIB, [
        else
            no_celib=
            CELIB_DIR=${ac_cv_c_celibconfig}
+           CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'`
            AC_MSG_RESULT([found $CELIB_DIR])
-           TEA_PATH_NOSPACE(CELIB_DIR, ${ac_cv_c_celibconfig})
        fi
     fi
 ])
 
-#------------------------------------------------------------------------
-# TEA_PATH_NOSPACE
-#      Ensure that the given path has no spaces.  This is necessary for
-#      CC (and consitutuent vars that build it up) to work in the
-#      tortured autoconf environment.  Currently only for Windows use.
-#
-# Arguments
-#      VAR  - name of the variable to set
-#      PATH - path to ensure no spaces in
-#
-# Results
-#      Sets $VAR to short path of $PATH if it can be found.
-#------------------------------------------------------------------------
-
-AC_DEFUN([TEA_PATH_NOSPACE], [
-    if test "${TEA_PLATFORM}" = "windows" ; then
-       # we need TCLSH_PROG defined to get Windows short pathnames
-       AC_REQUIRE([TEA_PROG_TCLSH])
-
-       AC_MSG_CHECKING([short pathname for $1 ($2)])
 
-       shortpath=
-       case "$2" in
-           *\ *)
-               # Only do this if we need to.
-               shortpath=`echo "puts [[file attributes {$2} -shortname]] ; exit" | ${TCLSH_PROG} 2>/dev/null`
-               ;;
-       esac
-       if test "x${shortpath}" = "x" ; then
-           AC_MSG_RESULT([not changed])
-       else
-           $1=$shortpath
-           AC_MSG_RESULT([${$1}])
-       fi
-    fi
-])
+# Local Variables:
+# mode: autoconf
+# End:
index b694f585940b5f18007d5bb71da017fd69a56a4e..f58017af456a8bf01c3acfab875a30151e8d0c0b 100644 (file)
 #define __USE_GNU /* needed to get the required defines */
 #include <fcntl.h>
 
+#include <stdlib.h>
 #include <signal.h>
 #include <unistd.h>
+#include <string.h>
 
 /*
  * Platform specific monitor data
@@ -47,8 +49,8 @@ typedef struct ProcessList {
 static ProcessList *processList;
 TCL_DECLARE_MUTEX(dnotifyMutex)
 
-static Tcl_EventSetupProc   SetupProc;
-static Tcl_EventCheckProc   CheckProc;
+/* static Tcl_EventSetupProc   SetupProc; */
+/* static Tcl_EventCheckProc   CheckProc; */
 static Tcl_EventProc        EventProc;
 static Tcl_AsyncProc        AsyncProc;
 
@@ -163,14 +165,14 @@ TclpFileMonitorCreateProc(clientData, interp, objc, objv)
 
     r = Tcl_GetIndexFromObj(interp, objv[2], types, "type", 0, &index);
     if (r == TCL_OK) {
-       switch (index) {
-           case MOD_ACCESS:  type |= DN_ACCESS; break;
-           case MOD_MODIFY:  type |= DN_MODIFY; break;
-           case MOD_CREATE:  type |= DN_CREATE; break;
+        switch (index) {
+            case MOD_ACCESS:  type |= DN_ACCESS; break;
+            case MOD_MODIFY:  type |= DN_MODIFY; break;
+            case MOD_CREATE:  type |= DN_CREATE; break;
             case MOD_DELETE:  type |= DN_DELETE; break;
-           case MOD_RENAME:  type |= DN_RENAME; break;
-           case MOD_ATTRIB:  type |= DN_ATTRIB; break;
-       }
+            case MOD_RENAME:  type |= DN_RENAME; break;
+            case MOD_ATTRIB:  type |= DN_ATTRIB; break;
+        }
     }
 
     /*
@@ -181,12 +183,15 @@ TclpFileMonitorCreateProc(clientData, interp, objc, objv)
 
        monitorPtr = (TclDnotifyFileMonitor *)
             ckalloc(sizeof(TclDnotifyFileMonitor));
-       monitorPtr->monitor.cmdPtr = Tcl_DuplicateObj(objv[objc - 1]);
-       Tcl_IncrRefCount(monitorPtr->monitor.cmdPtr);
-       monitorPtr->monitor.interp = interp;
-       sprintf(monitorPtr->monitor.name, "monitor%d", pkgPtr->id++);
-
-       monitorPtr->path = (CONST char *)strdup(Tcl_GetString(objv[3]));
+        monitorPtr->monitor.cmdPtr = objv[objc - 1];
+        if (Tcl_IsShared(monitorPtr->monitor.cmdPtr)) {
+            monitorPtr->monitor.cmdPtr = Tcl_DuplicateObj(objv[objc - 1]);
+        }
+        Tcl_IncrRefCount(monitorPtr->monitor.cmdPtr);
+        monitorPtr->monitor.interp = interp;
+        sprintf(monitorPtr->monitor.name, "monitor%lu", pkgPtr->id++);
+
+        monitorPtr->path = (CONST char *)strdup(Tcl_GetString(objv[3]));
         monitorPtr->fd = open(monitorPtr->path, O_RDONLY);
 
         fcntl(monitorPtr->fd, F_SETSIG, SIGRTMIN);
@@ -206,8 +211,8 @@ TclpFileMonitorCreateProc(clientData, interp, objc, objv)
         * Return a name to the script for use in delete and info
         */
        
-       Tcl_SetStringObj(Tcl_GetObjResult(interp),
-               monitorPtr->monitor.name, -1);
+        Tcl_SetObjResult(interp,
+            Tcl_NewStringObj(monitorPtr->monitor.name, -1));
     }
 
     return r;
@@ -353,7 +358,6 @@ EventProc(Tcl_Event *eventPtr, int flags)
     if (!(flags & TCL_FILE_EVENTS)) {
        return 0;
     }
-        
 
     /*
      * Evaluate the command and handle any error.