update to TEA 3.4 interim
authorJeff Hobbs <hobbs@users.sourceforge.net>
Sun, 22 Jan 2006 21:57:33 +0000 (21:57 +0000)
committerJeff Hobbs <hobbs@users.sourceforge.net>
Sun, 22 Jan 2006 21:57:33 +0000 (21:57 +0000)
ChangeLog
configure
tclconfig/tcl.m4

index ce385a80d40aa79cdc9931de943601bc822ca52d..8047f202cf393108d8a56d3fffa5ada68dd1ba3a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-12-03  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * tclconfig/tcl.m4, configure: update to TEA 3.4 interim
+
 2005-12-02  Jeff Hobbs  <jeffh@ActiveState.com>
 
        * tclconfig/tcl.m4, configure.in, configure: update to TEA 3.4
index 87167870054ed5a759f6faed88bd4a348cf2b92a..d5272551297fe9f27a4b3c01bc65d08f54c2ab13 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 TCL_TOP_DIR_NATIVE TCL_GENERIC_DIR_NATIVE TCL_UNIX_DIR_NATIVE TCL_WIN_DIR_NATIVE TCL_BMAP_DIR_NATIVE TCL_TOOL_DIR_NATIVE TCL_PLATFORM_DIR_NATIVE TCL_INCLUDES CLEANFILES TCL_THREADS SHARED_BUILD AR 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 TCLSH_PROG 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 TCL_TOP_DIR_NATIVE TCL_GENERIC_DIR_NATIVE TCL_UNIX_DIR_NATIVE TCL_WIN_DIR_NATIVE TCL_BMAP_DIR_NATIVE TCL_TOOL_DIR_NATIVE TCL_PLATFORM_DIR_NATIVE TCL_INCLUDES CLEANFILES 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
+                          (default: enabled)
+  --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-celib=DIR        use Windows/CE support library from DIR
 
 Some influential environment variables:
@@ -1499,12 +1501,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)`
@@ -1529,7 +1531,8 @@ echo "$as_me: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" >
 
            # 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` \
@@ -1561,54 +1564,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}\""
 
@@ -1629,8 +1648,6 @@ echo "${ECHO_T}file not found" >&6
 
 
 
-    #AC_SUBST(TCL_BUILD_LIB_SPEC)
-    #AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
 
 
 
@@ -4533,7 +4550,7 @@ 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
@@ -4602,7 +4619,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
 
@@ -4612,8 +4630,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
@@ -6051,7 +6067,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.
@@ -6261,7 +6276,10 @@ fi;
        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
@@ -6272,6 +6290,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
@@ -6348,12 +6373,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
@@ -6650,13 +6674,12 @@ fi
                            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
@@ -6664,13 +6687,12 @@ echo "$as_me: WARNING: \"Don t know how to find pthread lib on your system - thr
     # 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
+    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 (default)" >&5
 echo "${ECHO_T}yes (default)" >&6
     else
@@ -6742,10 +6764,10 @@ _ACEOF
 
 
 
-    # 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"
@@ -6792,36 +6814,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 }' /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.
@@ -6897,24 +6926,31 @@ else
 fi
 
 
+    # 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 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
@@ -7251,35 +7287,21 @@ 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"
@@ -7292,10 +7314,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"
@@ -7304,11 +7327,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
@@ -7407,6 +7444,80 @@ _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=""
@@ -7415,6 +7526,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        BSD/OS-4.*)
@@ -7425,6 +7537,7 @@ _ACEOF
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
            LDFLAGS="$LDFLAGS -export-dynamic"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        dgux*)
@@ -7434,6 +7547,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        HP-UX-*.11.*)
@@ -7443,6 +7557,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
@@ -7522,13 +7639,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
@@ -7544,16 +7662,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
            ;;
@@ -7636,20 +7756,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=""
@@ -7658,16 +7768,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"
@@ -7691,7 +7803,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
 
@@ -7703,7 +7816,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
            ;;
@@ -7716,568 +7829,151 @@ 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
+           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
+
+           # 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_CFLAGS="-fPIC"
+           SHLIB_LD_LIBS='${LIBS}'
+           SHLIB_SUFFIX=".so"
+
+           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"
+           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=""
+           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
-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
+
+               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>
+
+#ifdef __ELF__
+       yes
+#endif
+
 _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
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  tcl_cv_ld_elf=yes
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  tcl_cv_ld_elf=no
+fi
+rm -f conftest*
 
-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 vfs 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
-
-           ;;
-       GNU*)
-           SHLIB_CFLAGS="-fPIC"
-           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 vfs 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
-           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=""
-           SHLIB_SUFFIX=".so"
-           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 vfs 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
-  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
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#ifdef __ELF__
-       yes
-#endif
-
-_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'
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-                   SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.1.0'
-
-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
@@ -8291,17 +7987,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'
@@ -8316,7 +8015,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//`
@@ -8471,6 +8171,7 @@ 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"
            fi
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
            ;;
@@ -8481,6 +8182,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-*)
@@ -8500,6 +8202,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadOSF.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-1.*)
@@ -8514,6 +8217,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-V*)
@@ -8528,6 +8232,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"
@@ -8558,18 +8263,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
@@ -8586,6 +8282,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SINIX*5.4*)
@@ -8595,6 +8292,7 @@ _ACEOF
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS="-ldl"
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        SunOS-4*)
@@ -8604,7 +8302,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
@@ -8643,14 +8342,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.
 
@@ -8672,7 +8372,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
@@ -8685,10 +8385,10 @@ 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"
@@ -8717,291 +8417,60 @@ echo "$as_me: WARNING: 64bit mode not supported for $arch" >&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
                    # not be necessary for extensions.
                    SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc"
                    # 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"
-               fi
-           else
-               SHLIB_LD="/usr/ccs/bin/ld -G -z text"
-               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"
-           SHLIB_LD_LIBS=""
-           SHLIB_SUFFIX=".so"
-           DL_OBJS="tclLoadDl.o"
-           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" != "no" -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
+                   # path, remove so name and append 'sparcv9'
+                   #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..."
+                   #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
+           ;;
+       UNIX_SV* | UnixWare-5*)
+           SHLIB_CFLAGS="-KPIC"
+           SHLIB_LD="cc -G"
+           SHLIB_LD_LIBS=""
+           SHLIB_SUFFIX=".so"
+           DL_OBJS="tclLoadDl.o"
+           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.
+           echo "$as_me:$LINENO: checking for ld accepts -Bexport flag" >&5
+echo $ECHO_N "checking for ld accepts -Bexport flag... $ECHO_C" >&6
+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
@@ -9015,36 +8484,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
@@ -9068,9 +8540,15 @@ fi;
        DL_OBJS="tclLoadNone.o"
        DL_LIBS=""
        LDFLAGS="$LDFLAGS_ORIG"
+       CC_SEARCH_FLAGS=""
        LD_SEARCH_FLAGS=""
        BUILD_DLTEST=""
     fi
+    LDFLAGS="$LDFLAGS $LDFLAGS_ARCH"
+
+    # For TEA, CC_SEARCH_FLAGS becomes LD_SEARCH_FLAGS:
+    LD_SEARCH_FLAGS="${CC_SEARCH_FLAGS}"
+    CC_SEARCH_FLAGS=""
 
     # 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
@@ -9089,12 +8567,8 @@ fi;
                    ;;
                Darwin-*)
                    ;;
-               RISCos-*)
-                   ;;
                SCO_SV-3.2*)
                    ;;
-               ULTRIX-4.*)
-                   ;;
                windows)
                    ;;
                *)
@@ -9124,6 +8598,7 @@ fi;
 
 
 
+
     # These must be called after we do the basic CFLAGS checks and
     # verify any possible 64-bit or similar switches are necessary
 
@@ -9340,6 +8815,111 @@ _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
@@ -9479,7 +9059,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
 
@@ -9530,7 +9110,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
@@ -9538,12 +9119,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
 
@@ -9594,7 +9173,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
@@ -9602,8 +9182,109 @@ 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
@@ -9659,23 +9340,25 @@ fi
 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
 
 
 
 
-
-    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.
@@ -9685,6 +9368,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}"
@@ -9765,7 +9449,7 @@ _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}"
        # These aren't needed on Windows (either MSVC or gcc)
        RANLIB=:
@@ -9782,7 +9466,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
 
@@ -9817,8 +9501,9 @@ echo $ECHO_N "checking for tclsh... $ECHO_C" >&6
         else
             TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
         fi
-        list="`ls -d ${TCL_PREFIX}/bin     2>/dev/null` \
-              `ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null`"
+        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`"
@@ -10531,10 +10216,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
index 22f7b756776dcf29162edc362d13aa5848ad7217..5292f45112a874e60fb35d9701d979766b5242a6 100644 (file)
@@ -50,7 +50,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,[
 
@@ -78,12 +81,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)`
@@ -108,7 +111,8 @@ AC_DEFUN(TEA_PATH_TCLCONFIG, [
 
            # 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` \
@@ -138,12 +142,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
 ])
@@ -176,7 +180,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,[
 
@@ -234,7 +241,8 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
 
            # 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` \
@@ -263,12 +271,12 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
 
        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
 ])
@@ -293,39 +301,55 @@ AC_DEFUN(TEA_PATH_TKCONFIG, [
 #------------------------------------------------------------------------
 
 AC_DEFUN(TEA_LOAD_TCLCONFIG, [
-    AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh])
+    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}\""
 
@@ -346,8 +370,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)
 ])
 
 #------------------------------------------------------------------------
@@ -371,26 +393,54 @@ AC_DEFUN(TEA_LOAD_TKCONFIG, [
 
     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_FLAG=\"${TK_LIB_FLAG}\""
+    eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\""
+    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
@@ -406,18 +456,6 @@ AC_DEFUN(TEA_LOAD_TKCONFIG, [
        TEA_WINDOWINGSYSTEM="win32"
     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}\""
-
     AC_SUBST(TK_VERSION)
     AC_SUBST(TK_BIN_DIR)
     AC_SUBST(TK_SRC_DIR)
@@ -458,7 +496,8 @@ AC_DEFUN(TEA_LOAD_TKCONFIG, [
 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
@@ -508,11 +547,14 @@ 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],
+    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
@@ -526,23 +568,29 @@ AC_DEFUN(TEA_ENABLE_THREADS, [
        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"
@@ -563,29 +611,19 @@ 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
-
-dnl        # Not needed in TEA
-dnl        # Does the pthread-implementation provide
-dnl        # 'pthread_attr_setstacksize' ?
-dnl
-dnl        ac_saved_libs=$LIBS
-dnl        LIBS="$LIBS $THREADS_LIBS"
-dnl        AC_CHECK_FUNCS(pthread_attr_setstacksize)
-dnl        LIBS=$ac_saved_libs
        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 (default)])
     else
        AC_MSG_RESULT([no])
@@ -615,17 +653,17 @@ dnl           LIBS=$ac_saved_libs
 #------------------------------------------------------------------------
 # 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:
 #
@@ -633,10 +671,10 @@ dnl           LIBS=$ac_saved_libs
 #              --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.
 #
@@ -645,11 +683,12 @@ dnl           LIBS=$ac_saved_libs
 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}"
@@ -703,8 +742,8 @@ AC_DEFUN(TEA_ENABLE_SYMBOLS, [
 
 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
@@ -716,7 +755,7 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
        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)
+       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
@@ -725,6 +764,51 @@ AC_DEFUN(TEA_ENABLE_LANGINFO, [
     fi
 ])
 
+#--------------------------------------------------------------------
+# 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
+])
+
 #--------------------------------------------------------------------
 # TEA_CONFIG_CFLAGS
 #
@@ -736,7 +820,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.
@@ -748,6 +832,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
@@ -768,20 +857,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.
@@ -796,35 +881,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, [
     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
@@ -837,68 +917,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"
@@ -1101,27 +1164,20 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            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"
@@ -1134,10 +1190,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"
@@ -1146,11 +1203,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
@@ -1176,6 +1240,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=""
@@ -1184,6 +1255,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.*)
@@ -1194,6 +1266,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*)
@@ -1203,11 +1276,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)
@@ -1218,13 +1295,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
@@ -1240,15 +1318,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
            ;;
@@ -1262,20 +1342,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=""
@@ -1284,16 +1354,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"
@@ -1317,7 +1389,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
 
@@ -1328,7 +1401,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
            ;;
@@ -1341,22 +1414,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
@@ -1378,23 +1443,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"
@@ -1402,6 +1472,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-*)
@@ -1412,64 +1483,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=""
+           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'
@@ -1484,7 +1554,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//`
@@ -1533,6 +1604,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            if test $tcl_cv_ld_search_paths_first = yes; then
                LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
            fi
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH"
            ;;
@@ -1543,6 +1615,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadNext.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OS/390-*)
@@ -1559,6 +1632,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadOSF.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-1.*)
@@ -1573,6 +1647,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
            SHLIB_SUFFIX=".so"
            DL_OBJS="tclLoadDl.o"
            DL_LIBS=""
+           CC_SEARCH_FLAGS=""
            LD_SEARCH_FLAGS=""
            ;;
        OSF1-V*)
@@ -1587,6 +1662,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"
@@ -1617,18 +1693,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
@@ -1645,6 +1712,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*)
@@ -1654,6 +1722,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*)
@@ -1663,7 +1732,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
@@ -1695,14 +1765,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.
 
@@ -1711,13 +1782,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
@@ -1729,10 +1800,10 @@ 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"
@@ -1759,8 +1830,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
@@ -1769,26 +1841,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"
@@ -1798,103 +1858,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" != "no" -a "$do64bit_ok" = "no" ; then
+    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
-    fi
+    # Step 4: disable dynamic loading if requested via a command-line switch.
 
-    # Step 5: 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([--disable-load],
+           [disallow dynamic loading and "load" command (default: enabled)]),
        [tcl_ok=$enableval], [tcl_ok=yes])
     if test "$tcl_ok" = "no"; then
        DL_OBJS=""
@@ -1911,9 +1896,15 @@ 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"
+
+    # For TEA, CC_SEARCH_FLAGS becomes LD_SEARCH_FLAGS:
+    LD_SEARCH_FLAGS="${CC_SEARCH_FLAGS}"
+    CC_SEARCH_FLAGS=""
 
     # 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
@@ -1932,12 +1923,8 @@ dnl AC_CHECK_TOOL(AR, ar, :)
                    ;;
                Darwin-*)
                    ;;
-               RISCos-*)
-                   ;;
                SCO_SV-3.2*)
                    ;;
-               ULTRIX-4.*)
-                   ;;
                windows)
                    ;;
                *)
@@ -1955,16 +1942,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
@@ -1997,8 +1985,7 @@ dnl AC_CHECK_TOOL(AR, ar, :)
 
 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>
 
@@ -2036,7 +2023,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([
@@ -2090,7 +2077,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])
 ])
 
 #--------------------------------------------------------------------
@@ -2126,8 +2112,7 @@ int main() {
 #--------------------------------------------------------------------
 
 AC_DEFUN(TEA_MISSING_POSIX_HEADERS, [
-    AC_MSG_CHECKING([dirent.h])
-    AC_CACHE_VAL(tcl_cv_dirent_h,
+    AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h,
     AC_TRY_LINK([#include <sys/types.h>
 #include <dirent.h>], [
 #ifndef _POSIX_SOURCE
@@ -2153,7 +2138,6 @@ closedir(d);
        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>?])])
@@ -2183,7 +2167,6 @@ closedir(d);
 
     # OS/390 lacks sys/param.h (and doesn't need it, by chance).
     AC_HAVE_HEADERS(sys/param.h)
-
 ])
 
 #--------------------------------------------------------------------
@@ -2207,8 +2190,7 @@ closedir(d);
 #      Sets the following vars:
 #              XINCLUDES
 #              XLIBSW
-#              LIBS (appends to)
-#              TEA_WINDOWINGSYSTEM
+#              PKG_LIBS (appends to)
 #
 #--------------------------------------------------------------------
 
@@ -2232,28 +2214,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
@@ -2311,25 +2292,8 @@ AC_DEFUN(TEA_PATH_UNIX_X, [
 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
@@ -2344,10 +2308,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])
            ;;
@@ -2380,20 +2340,16 @@ AC_DEFUN(TEA_TIME_HANDLER, [
 
     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])
     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])
     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
@@ -2402,28 +2358,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_timezone_long,
+    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])
     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])
        if test $tcl_cv_timezone_time = yes ; then
            AC_DEFINE(HAVE_TIMEZONE_VAR, 1, [Should we use the global timezone variable?])
        fi
@@ -2453,30 +2405,29 @@ AC_DEFUN(TEA_TIME_HANDLER, [
 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?])
@@ -2585,6 +2536,7 @@ AC_DEFUN(TEA_TCL_LINK_LIBS, [
 #      Might define the following vars:
 #              _ISOC99_SOURCE
 #              _LARGEFILE64_SOURCE
+#              _LARGEFILE_SOURCE64
 #
 #--------------------------------------------------------------------
 
@@ -2608,6 +2560,8 @@ AC_DEFUN(TEA_TCL_EARLY_FLAGS,[
        [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
@@ -2661,35 +2615,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
 ])
 
@@ -3185,7 +3142,7 @@ 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}"
        # These aren't needed on Windows (either MSVC or gcc)
        RANLIB=:
@@ -3202,7 +3159,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
 
@@ -3395,26 +3352,30 @@ AC_DEFUN(TEA_PUBLIC_TCL_HEADERS, [
                AC_MSG_ERROR([${with_tclinclude} directory does not contain tcl.h])
            fi
        else
-            # 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`"
-                    ;;
-                *)
-                    list=""
-                    ;;
-            esac
+           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="$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
@@ -3546,27 +3507,33 @@ AC_DEFUN(TEA_PUBLIC_TK_HEADERS, [
                AC_MSG_ERROR([${with_tkinclude} directory does not contain tk.h])
            fi
        else
-            # 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`"
-                    ;;
-                *)
-                    list=""
-                    ;;
-            esac
-           # 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="$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
@@ -3643,8 +3610,9 @@ AC_DEFUN(TEA_PROG_TCLSH, [
         else
             TCLSH_PROG="tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${TCL_DBGX}"
         fi
-        list="`ls -d ${TCL_PREFIX}/bin     2>/dev/null` \
-              `ls -d ${TCL_BIN_DIR}/../bin 2>/dev/null`"
+        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`"
@@ -3653,7 +3621,7 @@ AC_DEFUN(TEA_PROG_TCLSH, [
         done
         TCLSH_PROG="${REAL_TCL_BIN_DIR}/${TCLSH_PROG}"
     fi
-    AC_MSG_RESULT(${TCLSH_PROG})
+    AC_MSG_RESULT([${TCLSH_PROG}])
     AC_SUBST(TCLSH_PROG)
 ])
 
@@ -3692,8 +3660,9 @@ AC_DEFUN(TEA_PROG_WISH, [
         else
             WISH_PROG="wish${TK_MAJOR_VERSION}.${TK_MINOR_VERSION}${TK_DBGX}"
         fi
-        list="`ls -d ${TK_PREFIX}/bin     2>/dev/null` \
-              `ls -d ${TK_BIN_DIR}/../bin 2>/dev/null`"
+        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`"
@@ -3702,7 +3671,7 @@ AC_DEFUN(TEA_PROG_WISH, [
         done
         WISH_PROG="${REAL_TK_BIN_DIR}/${WISH_PROG}"
     fi
-    AC_MSG_RESULT(${WISH_PROG})
+    AC_MSG_RESULT([${WISH_PROG}])
     AC_SUBST(WISH_PROG)
 ])
 
@@ -3793,7 +3762,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` \
@@ -3809,7 +3779,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=
@@ -3942,3 +3912,8 @@ AC_DEFUN(TEA_PATH_CELIB, [
        fi
     fi
 ])
+
+
+# Local Variables:
+# mode: autoconf
+# End: