aboutsummaryrefslogtreecommitdiffstats
path: root/lang/expect
diff options
context:
space:
mode:
authorgahr <gahr@FreeBSD.org>2018-02-08 21:05:40 +0800
committergahr <gahr@FreeBSD.org>2018-02-08 21:05:40 +0800
commitdd04df07283ca60c721d2f93fb5dd40033577c9c (patch)
treed047f8c52b4ad4414f944f4933dff095b962f935 /lang/expect
parent412d7502bca89e9b5a51f135136be34e1bd8a24e (diff)
downloadfreebsd-ports-gnome-dd04df07283ca60c721d2f93fb5dd40033577c9c.tar.gz
freebsd-ports-gnome-dd04df07283ca60c721d2f93fb5dd40033577c9c.tar.zst
freebsd-ports-gnome-dd04df07283ca60c721d2f93fb5dd40033577c9c.zip
lang/expect: update to 5.45.4
Announcement: https://sourceforge.net/p/tcl/mailman/message/36215275/ While at it, set LICENSE and import TEA 3.10 (which fixes the shared library generation).
Diffstat (limited to 'lang/expect')
-rw-r--r--lang/expect/Makefile14
-rw-r--r--lang/expect/distinfo6
-rw-r--r--lang/expect/files/patch-exp__event.c11
-rw-r--r--lang/expect/files/patch-exp_main_sub.c11
-rw-r--r--lang/expect/files/patch-expect-5.45.3504
-rw-r--r--lang/expect/files/patch-tclconfig_tcl.m41236
-rw-r--r--lang/expect/pkg-plist4
7 files changed, 1248 insertions, 538 deletions
diff --git a/lang/expect/Makefile b/lang/expect/Makefile
index 4a2b2d4b5da7..281bb30a0de3 100644
--- a/lang/expect/Makefile
+++ b/lang/expect/Makefile
@@ -2,28 +2,28 @@
# $FreeBSD$
PORTNAME= expect
-PORTVERSION= 5.45.3
+PORTVERSION= 5.45.4
PORTEPOCH= 1
CATEGORIES= lang tcl tk
-MASTER_SITES= SF/expect/Expect/${PORTVERSION:R}
-DISTNAME= ${PORTNAME}${PORTVERSION:R}
+MASTER_SITES= SF/expect/Expect/${PORTVERSION}
+DISTNAME= ${PORTNAME}${PORTVERSION}
MAINTAINER= tcltk@FreeBSD.org
COMMENT= Sophisticated scripter based on Tcl/Tk
-LIBEXPECT_VER= ${PORTVERSION:S/.//g}
+LICENSE= PD
+LICENSE_FILE= ${WRKSRC}/license.terms
WRKSRC= ${WRKDIR}/${DISTNAME}
USES= tcl:tea autoreconf
USE_LDCONFIG= yes
CONFIGURE_ARGS= --datadir=${DATADIR}
-PLIST_SUB+= EXPECT_VER=${PORTVERSION} \
- LIBEXPECT_VER=${LIBEXPECT_VER}
+PLIST_SUB+= PORTVERSION=${PORTVERSION}
TEST_TARGET= test
post-install:
- ${LN} -sf expect${PORTVERSION}/libexpect${LIBEXPECT_VER}.so \
+ ${LN} -sf expect${PORTVERSION}/libexpect${PORTVERSION}.so \
${STAGEDIR}${PREFIX}/lib/libexpect.so.1
${LN} -sf libexpect.so.1 ${STAGEDIR}${PREFIX}/lib/libexpect.so
diff --git a/lang/expect/distinfo b/lang/expect/distinfo
index 8dcd08c963b5..b19987caff77 100644
--- a/lang/expect/distinfo
+++ b/lang/expect/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1518080080
-SHA256 (expect5.45.tar.gz) = b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040
-SIZE (expect5.45.tar.gz) = 628808
+TIMESTAMP = 1518093806
+SHA256 (expect5.45.4.tar.gz) = 49a7da83b0bdd9f46d04a04deec19c7767bb9a323e40c4781f89caf760b92c34
+SIZE (expect5.45.4.tar.gz) = 632363
diff --git a/lang/expect/files/patch-exp__event.c b/lang/expect/files/patch-exp__event.c
deleted file mode 100644
index 989cef46d936..000000000000
--- a/lang/expect/files/patch-exp__event.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- exp_event.c.orig 2010-07-01 00:53:49 UTC
-+++ exp_event.c
-@@ -120,6 +120,8 @@ exp_unblock_background_channelhandler(es
- case disarm_req_while_blocked:
- exp_disarm_background_channelhandler_force(esPtr);
- break;
-+ default:
-+ break;
- }
- }
-
diff --git a/lang/expect/files/patch-exp_main_sub.c b/lang/expect/files/patch-exp_main_sub.c
deleted file mode 100644
index f69f72e33107..000000000000
--- a/lang/expect/files/patch-exp_main_sub.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- exp_main_sub.c.orig 2010-08-27 22:01:15 UTC
-+++ exp_main_sub.c
-@@ -33,7 +33,7 @@
- #endif
- #ifdef __CENTERLINE__
- #undef EXP_VERSION
--#define EXP_VERSION "5.45.0" /* I give up! */
-+#define EXP_VERSION "5.45.3" /* I give up! */
- /* It is not necessary that number */
- /* be accurate. It is just here to */
- /* pacify Centerline which doesn't */
diff --git a/lang/expect/files/patch-expect-5.45.3 b/lang/expect/files/patch-expect-5.45.3
deleted file mode 100644
index 291236422e27..000000000000
--- a/lang/expect/files/patch-expect-5.45.3
+++ /dev/null
@@ -1,504 +0,0 @@
---- ChangeLog.orig 2010-10-26 22:09:36 UTC
-+++ ChangeLog
-@@ -1,3 +1,59 @@
-+2014-05-01 Andreas Kupries <andreask@activestate.com>
-+
-+ * exp_main_sub.c: Updated EXP_VERSION to 5.45.3
-+ * configure, configure.in: Updated expect to version 5.45.3
-+
-+ * expect.man [http://sourceforge.net/p/expect/bugs/86/]. Report
-+ and fix by Vitezlav Crhonek.
-+
-+ * expect.c [http://sourceforge.net/p/expect/bugs/76/]. Report and
-+ fix by Mutsuhito Iikura. On finding a full buffer during
-+ matching the sliding window mechanism slides too far, truncating
-+ the whole buffer and preventing matches across the boundary. Fix
-+ is shortening the slide distance (slide only one 1/3).
-+
-+ * expect.c: [http://sourceforge.net/p/expect/patches/18/]. Report
-+ and fix both by Nils Carlson <nils.carlson@ludd.ltu.se>.
-+ Replaced a cc==0 check with proper Tcl_Eof() check.
-+
-+2013-11-04 Andreas Kupries <andreask@activestate.com>
-+
-+ * tclconfig/tcl.m4: [http://sourceforge.net/p/expect/patches/17/]
-+ * configure: Extended Tcl header detection for OS X Mountain Lion.
-+
-+ * exp_main_sub.c: Updated EXP_VERSION to 5.45.2
-+ * configure, configure.in: Updated expect to version 5.45.2
-+
-+ * expect.c: [http://sourceforge.net/p/expect/patches/16/]. Report
-+ and fix both by Per Cederqvist. Replaced a memcpy with memmove
-+ as the latter properly handles overlapping memory, whereas the
-+ original code does not.
-+
-+2012-08-15 Andreas Kupries <andreask@activestate.com>
-+
-+ * exp_main_sub.c: Updated EXP_VERSION to 5.45.1
-+ * configure, configure.in: Updated expect to version 5.45.1
-+
-+ * exp_chan.c: Applied patch sent in by Ogawa Hirofumi
-+ <hirofumi@mail.parknet.co.jp>. The patch fixes a problem when
-+ talking a tty where the writer has died. Some operating systems
-+ report the condition as EIO with nothing read, while this
-+ actually an EOF. Without the patch the returned data is
-+ incomplete due to the error reported immediately and dropping
-+ data in buffers.
-+
-+2012-05-16 Andreas Kupries <andreask@activestate.com>
-+
-+ * exp_chan.c: [Bug 3526461]: Applied patch by Michael Cleverly
-+ <cleverly@users.sourceforge.net> fixing a problem with the
-+ iteration over the expect channel list where the loop code may
-+ modify the list, breaking the iterator.
-+
-+ * exp_chan.c: [Bug 3526707]: Applied patch by Michael Cleverly
-+ * exp_command.h: <cleverly@users.sourceforge.net> fixing problem
-+ * expect.c: with an insufficient test for a lost channel in
-+ exp_background_channelhandler.
-+
- 2010-10-26 Andreas Kupries <andreask@activestate.com>
-
- * expect.c: [Bug 3095935]: Convert #bytes information to #chars to
---- configure.in.orig 2010-08-27 21:51:53 UTC
-+++ configure.in
-@@ -1,9 +1,9 @@
- dnl
- dnl Process this file with autoconf to produce a configure script.
- dnl
--AC_REVISION($Id: configure.in,v 5.80 2010/08/27 21:51:53 hobbs Exp $)
-+AC_REVISION($Id: configure.in,v 5.83 2014/05/01 19:22:24 andreas_kupries Exp $)
-
--AC_INIT([expect],[5.45])
-+AC_INIT([expect],[5.45.3])
-
- TEA_INIT([3.9])
-
---- exp_chan.c.orig 2010-07-01 00:53:49 UTC
-+++ exp_chan.c
-@@ -217,6 +217,11 @@ ExpInputProc(instanceData, buf, toRead,
-
- bytesRead = read(esPtr->fdin, buf, (size_t) toRead);
- /*printf("ExpInputProc: read(%d,,) = %d\r\n",esPtr->fdin,bytesRead);*/
-+
-+ /* Emulate EOF on tty for tcl */
-+ if ((bytesRead == -1) && (errno == EIO) && isatty(esPtr->fdin)) {
-+ bytesRead = 0;
-+ }
- if (bytesRead > -1) {
- /* strip parity if requested */
- if (esPtr->parity == 0) {
-@@ -447,6 +452,34 @@ expChannelCountGet()
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- return tsdPtr->channelCount;
- }
-+
-+int
-+expChannelStillAlive(esBackupPtr, backupName)
-+ ExpState *esBackupPtr;
-+ char *backupName;
-+{
-+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-+ ExpState *esPtr;
-+
-+ /*
-+ * This utility function is called from 'exp_background_channelhandler'
-+ * and checks to make sure that backupName can still be found in the
-+ * channels linked list at the same address as before.
-+ *
-+ * If it can't be (or if the memory address has changed) then it
-+ * means that it was lost in the background (and possibly another
-+ * channel was opened and reassigned the same name).
-+ */
-+
-+ for (esPtr = tsdPtr->firstExpPtr; esPtr; esPtr = esPtr->nextPtr) {
-+ if (0 == strcmp(esPtr->name, backupName))
-+ return (esPtr == esBackupPtr);
-+ }
-+
-+ /* not found; must have been lost in the background */
-+ return 0;
-+}
-+
- #if 0 /* Converted to macros */
- int
- expSizeGet(esPtr)
-@@ -602,12 +635,38 @@ exp_background_channelhandlers_run_all()
- {
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- ExpState *esPtr;
-+ ExpState *esNextPtr;
-+ ExpState *esPriorPtr = 0;
-
- /* kick off any that already have input waiting */
-- for (esPtr = tsdPtr->firstExpPtr;esPtr;esPtr = esPtr->nextPtr) {
-+ for (esPtr = tsdPtr->firstExpPtr;esPtr; esPriorPtr = esPtr, esPtr = esPtr->nextPtr) {
- /* is bg_interp the best way to check if armed? */
- if (esPtr->bg_interp && !expSizeZero(esPtr)) {
-+ /*
-+ * We save the nextPtr in a local variable before calling
-+ * 'exp_background_channelhandler' since in some cases
-+ * 'expStateFree' could end up getting called before it
-+ * returns, leading to a likely segfault on the next
-+ * interaction through the for loop.
-+ */
-+ esNextPtr = esPtr->nextPtr;
- exp_background_channelhandler((ClientData)esPtr,0);
-+ if (esNextPtr != esPtr->nextPtr) {
-+ /*
-+ * 'expStateFree' must have been called from
-+ * underneath us so we know that esPtr->nextPtr is
-+ * invalid. However, it is possible that either the
-+ * original nextPtr and/or the priorPtr have been
-+ * freed too. If the esPriorPtr->nextPtr is now
-+ * esNextPtr it seems safe to proceed. Otherwise we
-+ * break and end early for safety.
-+ */
-+ if (esPriorPtr && esPriorPtr->nextPtr == esNextPtr) {
-+ esPtr = esPriorPtr;
-+ } else {
-+ break; /* maybe set esPtr = tsdPtr->firstExpPtr again? */
-+ }
-+ }
- }
- }
- }
---- exp_command.h.orig 2010-07-01 00:53:49 UTC
-+++ exp_command.h
-@@ -244,6 +244,7 @@ EXTERN void exp_init_unit_random _ANSI_
- EXTERN void exp_init_sig _ANSI_ARGS_((void));
- EXTERN void expChannelInit _ANSI_ARGS_((void));
- EXTERN int expChannelCountGet _ANSI_ARGS_((void));
-+EXTERN int expChannelStillAlive _ANSI_ARGS_((ExpState *, char *));
-
- EXTERN int exp_tcl2_returnvalue _ANSI_ARGS_((int));
- EXTERN int exp_2tcl_returnvalue _ANSI_ARGS_((int));
---- expect.c.orig 2010-10-26 22:09:36 UTC
-+++ expect.c
-@@ -972,21 +972,21 @@ eval_case_string(
- }
- expDiagLogU(no);
- } else if (e->use == PAT_FULLBUFFER) {
-- expDiagLogU(Tcl_GetString(e->pat));
-- expDiagLogU("? ");
-- /* this must be the same test as in expIRead */
-+ expDiagLogU(Tcl_GetString(e->pat));
-+ expDiagLogU("? ");
-+ /* this must be the same test as in expIRead */
- /* We drop one third when are at least 2/3 full */
- /* condition is (size >= max*2/3) <=> (size*3 >= max*2) */
- if (((expSizeGet(esPtr)*3) >= (esPtr->input.max*2)) && (numchars > 0)) {
-- o->e = e;
-- o->matchlen = numchars;
-+ o->e = e;
-+ o->matchlen = numchars/3;
- o->matchbuf = str;
-- o->esPtr = esPtr;
-- expDiagLogU(yes);
-- return(EXP_FULLBUFFER);
-- } else {
-- expDiagLogU(no);
-- }
-+ o->esPtr = esPtr;
-+ expDiagLogU(yes);
-+ return(EXP_FULLBUFFER);
-+ } else {
-+ expDiagLogU(no);
-+ }
- }
- return(EXP_NOMATCH);
- }
-@@ -1093,8 +1093,10 @@ ecases_remove_by_expi(
-
- /* shift remaining elements down */
- /* but only if there are any left */
-+ /* Use memmove to handle the overlap */
-+ /* memcpy breaks */
- if (i+1 != ecmd->ecd.count) {
-- memcpy(&ecmd->ecd.cases[i],
-+ memmove(&ecmd->ecd.cases[i],
- &ecmd->ecd.cases[i+1],
- ((ecmd->ecd.count - i) - 1) *
- sizeof(struct exp_cmd_descriptor *));
-@@ -1859,17 +1861,8 @@ expRead(
- /* try to read it */
- cc = expIRead(interp,esPtr,timeout,tcl_set_flags);
-
-- /* the meaning of 0 from i_read means eof. Muck with it a */
-- /* little, so that from now on it means "no new data arrived */
-- /* but it should be looked at again anyway". */
-- if (cc == 0) {
-+ if (Tcl_Eof(esPtr->channel)) {
- cc = EXP_EOF;
-- } else if (cc > 0) {
-- /* successfully read data */
-- } else {
-- /* failed to read data - some sort of error was encountered such as
-- * an interrupt with that forced an error return
-- */
- }
- } else if (cc == EXP_DATA_OLD) {
- cc = 0;
-@@ -1967,6 +1960,8 @@ exp_buffer_shuffle( /* INTL */
- str = esPtr->input.buffer;
- numchars = esPtr->input.use;
-
-+ /* We discard 1/3 of the data in the buffer.
-+ */
- skiplen = numchars/3;
- p = str + skiplen;
-
-@@ -1975,7 +1970,7 @@ exp_buffer_shuffle( /* INTL */
- */
-
- lostChar = *p;
-- /* temporarily stick null in middle of string */
-+ /* Temporarily stick null in middle of string to terminate */
- *p = 0;
-
- expDiagLog("%s: set %s(buffer) \"",caller_name,array_name);
-@@ -1986,12 +1981,13 @@ exp_buffer_shuffle( /* INTL */
- save_flags);
-
- /*
-- * restore damage
-+ * Restore damage done fir display above.
- */
- *p = lostChar;
-
- /*
-- * move 2nd half of string down to 1st half
-+ * move the higher 2/3 of the string down over the lower 2/3.
-+ * This destroys the 1st 1/3.
- */
-
- newlen = numchars - skiplen;
-@@ -2503,8 +2499,12 @@ do_more_data:
- */
-
- /* First check that the esPtr is even still valid! */
-- /* This ought to be sufficient. */
-- if (0 == Tcl_GetChannel(interp,backup,(int *)0)) {
-+ /*
-+ * It isn't sufficient to just check that 'Tcl_GetChannel' still knows about
-+ * backup since it is possible that esPtr was lost in the background AND
-+ * another process spawned and reassigned the same name.
-+ */
-+ if (!expChannelStillAlive(esPtr, backup)) {
- expDiagLog("expect channel %s lost in background handler\n",backup);
- return;
- }
---- expect.man.orig 2006-01-25 21:51:28 UTC
-+++ expect.man
-@@ -173,7 +173,9 @@ way, use the
- .B \-b
- flag.
- (When using Expectk, this option is specified as
--.BR \-buffer .) Note that stdio-buffering may still take place however this shouldn't cause problems when reading from a fifo or stdin.
-+.BR \-buffer .)
-+Note that stdio-buffering may still take place however this shouldn't cause
-+problems when reading from a fifo or stdin.
- .PP
- If the string "\-" is supplied as a filename, standard input is read instead.
- (Use "./\-" to read from a file actually named "\-".)
---- fixcat.orig 2016-03-18 13:19:35 UTC
-+++ fixcat
-@@ -0,0 +1,21 @@
-+#!expect --
-+# Synopsis: fixcat
-+# Author: Don Libes
-+
-+# Description: test to see if /bin/cat is unbuffered (i.e., -u is needed)
-+# Return 0 if buffered, 1 if unbuffered.
-+#
-+# If this file is sitting in an architecture-specific library directory,
-+# then it serves as a marker that your /bin/cat buffers by default.
-+
-+# test for when catting to/from files
-+log_user 0
-+spawn -open [open "|cat" "r+"]
-+send "\r"
-+expect "\r" {exit 1}
-+
-+# test for when catting to real tty
-+#log_user 0
-+#spawn /bin/cat
-+#send "\r"
-+#expect "\r\n\r\n" {exit 1}
---- tclconfig/tcl.m4.orig 2010-11-09 19:42:10 UTC
-+++ tclconfig/tcl.m4
-@@ -9,7 +9,7 @@
- # See the file "license.terms" for information on usage and redistribution
- # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- #
--# RCS: @(#) $Id: tcl.m4,v 1.6 2010/09/16 20:46:47 hobbs Exp $
-+# RCS: @(#) $Id: tcl.m4,v 1.7 2013/11/04 19:42:08 andreas_kupries Exp $
-
- AC_PREREQ(2.57)
-
-@@ -1632,7 +1632,7 @@ dnl AC_CHECK_TOOL(AR, ar)
- # This configuration from FreeBSD Ports.
- SHLIB_CFLAGS="-fPIC"
- SHLIB_LD="${CC} -shared"
-- TCL_SHLIB_LD_EXTRAS="-soname \$[@]"
-+ TCL_SHLIB_LD_EXTRAS="-Wl,-soname\$[@]"
- SHLIB_SUFFIX=".so"
- LDFLAGS=""
- AS_IF([test $doRpath = yes], [
-@@ -1646,7 +1646,7 @@ dnl AC_CHECK_TOOL(AR, ar)
- # Version numbers are dot-stripped by system policy.
- TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .`
- UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
-- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1'
-+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so'
- TCL_LIB_VERSIONS_OK=nodots
- ;;
- Darwin-*)
-@@ -3220,9 +3220,9 @@ print("manifest needed")
- if test x"${TK_BIN_DIR}" != x ; then
- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
- fi
-- eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
-+ eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${EXP_LIB_VERSION}${SHARED_LIB_SUFFIX}"
- else
-- eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
-+ eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${EXP_LIB_VERSION}${UNSHARED_LIB_SUFFIX}"
- fi
- # Some packages build their own stubs libraries
- eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
-@@ -3239,10 +3239,10 @@ print("manifest needed")
- if test x"${TK_BIN_DIR}" != x ; then
- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
- fi
-- eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
-+ eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${EXP_LIB_VERSION}${SHARED_LIB_SUFFIX}"
- RANLIB=:
- else
-- eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
-+ eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${EXP_LIB_VERSION}${UNSHARED_LIB_SUFFIX}"
- fi
- # Some packages build their own stubs libraries
- eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
-@@ -3389,9 +3389,12 @@ AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [
- # the framework's Headers and PrivateHeaders directories
- case ${TCL_DEFS} in
- *TCL_FRAMEWORK*)
-- if test -d "${TCL_BIN_DIR}/Headers" -a \
-- -d "${TCL_BIN_DIR}/PrivateHeaders"; then
-- TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"
-+ if test -d "${TCL_BIN_DIR}/Headers"; then
-+ if test -d "${TCL_BIN_DIR}/PrivateHeaders"; then
-+ TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"
-+ elif test -d "${TCL_BIN_DIR}/Headers/tcl-private"; then
-+ TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/Headers/tcl-private\" ${TCL_INCLUDES}"
-+ fi
- else
- TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
- fi
---- testsuite/expect.tests/expect-tests.exp.orig 2016-03-18 13:19:35 UTC
-+++ testsuite/expect.tests/expect-tests.exp
-@@ -0,0 +1,104 @@
-+# Copyright (C) 1988, 1990, 1991, 1992 Free Software Foundation, Inc.
-+
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-+
-+# Please email any bugs, comments, and/or additions to this file to:
-+# bug-dejagnu@prep.ai.mit.edu
-+
-+# This file was written by Rob Savoye. (rob@cygnus.com)
-+
-+#
-+# the initial work on the version of these tests from the tcl release was done
-+# by Mary Ann May-Pumphrey of Sun Microsystems.
-+#
-+if $tracelevel then {
-+ strace $tracelevel
-+ }
-+
-+expect_before buffer_full { error "Buffer full" }
-+expect_start
-+
-+set timeoutmsg "Timed out: Never got started, "
-+set timeout 20
-+set file all
-+set command "unidentified test in $file"
-+
-+if ![file exists ${srcdir}/../tests] {
-+ perror "The source for the test cases is missing." 0
-+ return -1
-+}
-+send "cd ${srcdir}/../tests\r"
-+expect {
-+ -re "set VERBOSE 1\[\r\n\]*1\[\r\n\]*$eprompt" {
-+ verbose "Set verbose flag for tests"
-+ exp_continue
-+ }
-+ -re "cd $srcdir/../tests\[\r\n\]*$eprompt" {
-+ verbose "Changed directory to $srcdir/../tests" 2
-+ }
-+ -re "no files matched glob pattern" {
-+ warning "Didn't cd to $srcdir/../tests"
-+ }
-+ timeout {
-+ perror "Couldn't change directories" 0
-+ return -1
-+ }
-+}
-+
-+exp_send "source $file\r"
-+expect {
-+ -re "source $file\[\r\n\]*$eprompt" {
-+ verbose "Sourced test $file ..."
-+ set timeoutmsg "Never got to the end of "
-+ exp_continue
-+ }
-+ "install Tcl or set your TCL_LIBRARY environment variable" {
-+ perror "You need to set the TCL_LIBRARY environment variable"
-+ return -1
-+ }
-+ -re "no files matched glob pattern" {
-+ warning "Didn't cd to $srcdir/../tests"
-+ }
-+ -re "\[\r\n\]*\\+\\+\\+\\+ (\[a-z\]*-\[.0-9\]*) PASSED\[\r\n\]*" {
-+ pass $expect_out(1,string)
-+ exp_continue
-+ }
-+ -re "\[\r\n\]*\\+* (\[a-z\]*-\[.0-9\]*) FAILED\[\r\n\]*" {
-+ fail $expect_out(1,string)
-+ exp_continue
-+ }
-+ -re "Test generated error:\[\r\n\]*.*\[\r\n\]*" {
-+ regsub "Test generated error:\[\r\n\]+" $expect_out(0,string) "" tmp
-+ regsub -all "\[\r\n\]*\[a-z.\]test\[\r\n\]*" $tmp "" tmp
-+ regsub -all "\[\r\n\]*" $tmp "" tmp
-+ perror "Got a test case bug \"$tmp\""
-+ exp_continue
-+ }
-+ -re "\[x\]+ \[a-i\]+ \[A-K\]+ \[0-9\]+ " {
-+ verbose "Got standard output message from exec 8.1 test." 3
-+ exp_continue
-+ }
-+ "*Error: bad option *" {
-+ fail "$command (Got a bad option)"
-+ }
-+ eof {
-+ verbose "Done" 2
-+ }
-+ timeout {
-+ warning "$timeoutmsg $file"
-+ }
-+}
-+
-+catch close
diff --git a/lang/expect/files/patch-tclconfig_tcl.m4 b/lang/expect/files/patch-tclconfig_tcl.m4
new file mode 100644
index 000000000000..2a001ebbf5a2
--- /dev/null
+++ b/lang/expect/files/patch-tclconfig_tcl.m4
@@ -0,0 +1,1236 @@
+--- tclconfig/tcl.m4.orig 2018-02-04 13:55:43 UTC
++++ tclconfig/tcl.m4
+@@ -8,14 +8,12 @@
+ #
+ # See the file "license.terms" for information on usage and redistribution
+ # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+-#
+-# RCS: @(#) $Id: tcl.m4,v 1.6 2010/09/16 20:46:47 hobbs Exp $
+
+ AC_PREREQ(2.57)
+
+ dnl TEA extensions pass us the version of TEA they think they
+ dnl are compatible with (must be set in TEA_INIT below)
+-dnl TEA_VERSION="3.9"
++dnl TEA_VERSION="3.10"
+
+ # Possible values for key variables defined:
+ #
+@@ -140,6 +138,8 @@ AC_DEFUN([TEA_PATH_TCLCONFIG], [
+ `ls -d /usr/contrib/lib 2>/dev/null` \
+ `ls -d /usr/lib 2>/dev/null` \
+ `ls -d /usr/lib64 2>/dev/null` \
++ `ls -d /usr/lib/tcl8.6 2>/dev/null` \
++ `ls -d /usr/lib/tcl8.5 2>/dev/null` \
+ ; do
+ if test -f "$i/tclConfig.sh" ; then
+ ac_cv_c_tclconfig="`(cd $i; pwd)`"
+@@ -170,7 +170,7 @@ AC_DEFUN([TEA_PATH_TCLCONFIG], [
+
+ if test x"${ac_cv_c_tclconfig}" = x ; then
+ TCL_BIN_DIR="# no Tcl configs found"
+- AC_MSG_ERROR([Can't find Tcl configuration definitions])
++ AC_MSG_ERROR([Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh])
+ else
+ no_tcl=
+ TCL_BIN_DIR="${ac_cv_c_tclconfig}"
+@@ -323,7 +323,7 @@ AC_DEFUN([TEA_PATH_TKCONFIG], [
+
+ if test x"${ac_cv_c_tkconfig}" = x ; then
+ TK_BIN_DIR="# no Tk configs found"
+- AC_MSG_ERROR([Can't find Tk configuration definitions])
++ AC_MSG_ERROR([Can't find Tk configuration definitions. Use --with-tk to specify a directory containing tkConfig.sh])
+ else
+ no_tk=
+ TK_BIN_DIR="${ac_cv_c_tkconfig}"
+@@ -344,11 +344,10 @@ AC_DEFUN([TEA_PATH_TKCONFIG], [
+ #
+ # Results:
+ #
+-# Subst the following vars:
++# Substitutes the following vars:
+ # TCL_BIN_DIR
+ # TCL_SRC_DIR
+ # TCL_LIB_FILE
+-#
+ #------------------------------------------------------------------------
+
+ AC_DEFUN([TEA_LOAD_TCLCONFIG], [
+@@ -417,25 +416,21 @@ AC_DEFUN([TEA_LOAD_TCLCONFIG], [
+ AC_SUBST(TCL_STUB_LIB_FLAG)
+ AC_SUBST(TCL_STUB_LIB_SPEC)
+
+- case "`uname -s`" in
+- *CYGWIN_*)
+- AC_MSG_CHECKING([for cygwin variant])
+- case ${TCL_EXTRA_CFLAGS} in
+- *-mwin32*|*-mno-cygwin*)
+- TEA_PLATFORM="windows"
+- CFLAGS="$CFLAGS -mwin32"
+- AC_MSG_RESULT([win32])
+- ;;
+- *)
+- TEA_PLATFORM="unix"
+- AC_MSG_RESULT([unix])
+- ;;
+- esac
+- EXEEXT=".exe"
+- ;;
+- *)
+- ;;
+- esac
++ AC_MSG_CHECKING([platform])
++ hold_cc=$CC; CC="$TCL_CC"
++ AC_TRY_COMPILE(,[
++ #ifdef _WIN32
++ #error win32
++ #endif
++ ], [
++ TEA_PLATFORM="unix"
++ CYGPATH=echo
++ ], [
++ TEA_PLATFORM="windows"
++ AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo) ]
++ )
++ CC=$hold_cc
++ AC_MSG_RESULT($TEA_PLATFORM)
+
+ # The BUILD_$pkg is to define the correct extern storage class
+ # handling when making this package
+@@ -443,6 +438,7 @@ AC_DEFUN([TEA_LOAD_TCLCONFIG], [
+ [Building extension source?])
+ # Do this here as we have fully defined TEA_PLATFORM now
+ if test "${TEA_PLATFORM}" = "windows" ; then
++ EXEEXT=".exe"
+ CLEANFILES="$CLEANFILES *.lib *.dll *.pdb *.exp"
+ fi
+
+@@ -567,11 +563,11 @@ AC_DEFUN([TEA_LOAD_TKCONFIG], [
+ # only for running extension test cases. It should never be
+ # or generation of files (like pkgIndex.tcl) at build time.
+ #
+-# Arguments
++# Arguments:
+ # none
+ #
+-# Results
+-# Subst's the following values:
++# Results:
++# Substitutes the following vars:
+ # TCLSH_PROG
+ #------------------------------------------------------------------------
+
+@@ -580,7 +576,15 @@ AC_DEFUN([TEA_PROG_TCLSH], [
+ if test -f "${TCL_BIN_DIR}/Makefile" ; then
+ # tclConfig.sh is in Tcl build directory
+ if test "${TEA_PLATFORM}" = "windows"; then
++ if test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}" ; then
+ TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT}"
++ elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}" ; then
++ TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}s${EXEEXT}"
++ elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}" ; then
++ TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}t${EXEEXT}"
++ elif test -f "${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}" ; then
++ TCLSH_PROG="${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}st${EXEEXT}"
++ fi
+ else
+ TCLSH_PROG="${TCL_BIN_DIR}/tclsh"
+ fi
+@@ -617,11 +621,11 @@ AC_DEFUN([TEA_PROG_TCLSH], [
+ # only for running extension test cases. It should never be
+ # or generation of files (like pkgIndex.tcl) at build time.
+ #
+-# Arguments
++# Arguments:
+ # none
+ #
+-# Results
+-# Subst's the following values:
++# Results:
++# Substitutes the following vars:
+ # WISH_PROG
+ #------------------------------------------------------------------------
+
+@@ -630,9 +634,17 @@ AC_DEFUN([TEA_PROG_WISH], [
+ if test -f "${TK_BIN_DIR}/Makefile" ; then
+ # tkConfig.sh is in Tk build directory
+ if test "${TEA_PLATFORM}" = "windows"; then
++ if test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}" ; then
+ WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}${EXEEXT}"
++ elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}s${EXEEXT}" ; then
++ WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}$s{EXEEXT}"
++ elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}t${EXEEXT}" ; then
++ WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}t${EXEEXT}"
++ elif test -f "${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}st${EXEEXT}" ; then
++ WISH_PROG="${TK_BIN_DIR}/wish${TK_MAJOR_VERSION}${TK_MINOR_VERSION}${TK_DBGX}st${EXEEXT}"
++ fi
+ else
+- WISH_PROG="${TK_BIN_DIR}/wish"
++ WISH_PROG="${TK_BIN_DIR}/wish"
+ fi
+ else
+ # tkConfig.sh is in install location
+@@ -732,7 +744,6 @@ AC_DEFUN([TEA_ENABLE_SHARED], [
+ # TCL_THREADS
+ # _REENTRANT
+ # _THREAD_SAFE
+-#
+ #------------------------------------------------------------------------
+
+ AC_DEFUN([TEA_ENABLE_THREADS], [
+@@ -856,12 +867,11 @@ AC_DEFUN([TEA_ENABLE_THREADS], [
+ #
+ # Defines the following vars:
+ # CFLAGS_DEFAULT Sets to $(CFLAGS_DEBUG) if true
+-# Sets to $(CFLAGS_OPTIMIZE) if false
++# Sets to "$(CFLAGS_OPTIMIZE) -DNDEBUG" if false
+ # LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true
+ # Sets to $(LDFLAGS_OPTIMIZE) if false
+ # DBGX Formerly used as debug library extension;
+ # always blank now.
+-#
+ #------------------------------------------------------------------------
+
+ AC_DEFUN([TEA_ENABLE_SYMBOLS], [
+@@ -874,7 +884,7 @@ AC_DEFUN([TEA_ENABLE_SYMBOLS], [
+ [tcl_ok=$enableval], [tcl_ok=no])
+ DBGX=""
+ if test "$tcl_ok" = "no"; then
+- CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE}"
++ CFLAGS_DEFAULT="${CFLAGS_OPTIMIZE} -DNDEBUG"
+ LDFLAGS_DEFAULT="${LDFLAGS_OPTIMIZE}"
+ AC_MSG_RESULT([no])
+ else
+@@ -921,7 +931,6 @@ AC_DEFUN([TEA_ENABLE_SYMBOLS], [
+ #
+ # Defines the following vars:
+ # HAVE_LANGINFO Triggers use of nl_langinfo if defined.
+-#
+ #------------------------------------------------------------------------
+
+ AC_DEFUN([TEA_ENABLE_LANGINFO], [
+@@ -962,7 +971,6 @@ AC_DEFUN([TEA_ENABLE_LANGINFO], [
+ # Defines the following var:
+ #
+ # system - System/platform/version identification code.
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_CONFIG_SYSTEM], [
+@@ -1031,21 +1039,20 @@ AC_DEFUN([TEA_CONFIG_SYSTEM], [
+ # extensions. An empty string means we don't know how
+ # to use shared libraries on this platform.
+ # LIB_SUFFIX - Specifies everything that comes after the "libfoo"
+-# in a static or shared library name, using the $VERSION variable
++# in a static or 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: ${VERSION}.so.1.1 on NetBSD, since it needs
+-# to have a version after the .so, and ${VERSION}.a
++# 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 a shared library needs to have
+ # a .a extension whereas shared objects for loadable
+ # extensions have a .so extension. Defaults to
+-# ${VERSION}${SHLIB_SUFFIX}.
++# ${PACKAGE_VERSION}${SHLIB_SUFFIX}.
+ # CFLAGS_DEBUG -
+ # Flags used when running the compiler in debug mode
+ # CFLAGS_OPTIMIZE -
+ # Flags used when running the compiler in optimize mode
+ # CFLAGS - Additional CFLAGS added as necessary (usually 64-bit)
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_CONFIG_CFLAGS], [
+@@ -1087,6 +1094,7 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
+ AC_DEFINE(MODULE_SCOPE,
+ [extern __attribute__((__visibility__("hidden")))],
+ [Compiler support for module scope symbols])
++ AC_DEFINE(HAVE_HIDDEN, [1], [Compiler support for module scope symbols])
+ ])
+
+ # Step 0.d: Disable -rpath support?
+@@ -1135,18 +1143,17 @@ AC_DEFUN([TEA_CONFIG_CFLAGS], [
+ ECHO_VERSION='`echo ${PACKAGE_VERSION}`'
+ TCL_LIB_VERSIONS_OK=ok
+ CFLAGS_DEBUG=-g
+- CFLAGS_OPTIMIZE=-O
+ AS_IF([test "$GCC" = yes], [
+- # TEA specific:
+ CFLAGS_OPTIMIZE=-O2
+ CFLAGS_WARNING="-Wall"
+- ], [CFLAGS_WARNING=""])
+-dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed.
+-dnl AC_CHECK_TOOL(AR, ar)
+- AC_CHECK_PROG(AR, ar, ar)
++ ], [
++ CFLAGS_OPTIMIZE=-O
++ CFLAGS_WARNING=""
++ ])
++ AC_CHECK_TOOL(AR, ar)
+ STLIB_LD='${AR} cr'
+ LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"
+- AS_IF([test "x$SHLIB_VERSION" = x],[SHLIB_VERSION="1.0"])
++ AS_IF([test "x$SHLIB_VERSION" = x],[SHLIB_VERSION=""],[SHLIB_VERSION=".$SHLIB_VERSION"])
+ case $system in
+ # TEA specific:
+ windows)
+@@ -1172,7 +1179,7 @@ dnl AC_CHECK_TOOL(AR, ar)
+ PATH64="${MSSDK}/Bin/Win64"
+ ;;
+ esac
+- if test ! -d "${PATH64}" ; then
++ if test "$GCC" != "yes" -a ! -d "${PATH64}" ; then
+ AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode])
+ AC_MSG_WARN([Ensure latest Platform SDK is installed])
+ do64bit="no"
+@@ -1247,13 +1254,21 @@ dnl AC_CHECK_TOOL(AR, ar)
+ else
+ runtime=-MD
+ fi
++ case "x`echo \${VisualStudioVersion}`" in
++ x1[[4-9]]*)
++ lflags="${lflags} -nodefaultlib:libucrt.lib"
++ TEA_ADD_LIBS([ucrt.lib])
++ ;;
++ *)
++ ;;
++ esac
+
+ if test "$do64bit" != "no" ; then
+ # All this magic is necessary for the Win64 SDK RC1 - hobbs
+ CC="\"${PATH64}/cl.exe\""
+ CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""
+ RC="\"${MSSDK}/bin/rc.exe\""
+- lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
++ lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
+ LINKBIN="\"${PATH64}/link.exe\""
+ CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"
+ CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+@@ -1283,13 +1298,13 @@ dnl AC_CHECK_TOOL(AR, ar)
+ CFLAGS_DEBUG="-nologo -Zi -Od"
+ CFLAGS_OPTIMIZE="-nologo -Ox"
+ lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`
+- lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
++ lflags="${lflags} -MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"
+ LINKBIN="\"${CEBINROOT}/link.exe\""
+ AC_SUBST(CELIB_DIR)
+ else
+ RC="rc"
+- lflags="-nologo"
+- LINKBIN="link"
++ lflags="${lflags} -nologo"
++ LINKBIN="link"
+ CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"
+ CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"
+ fi
+@@ -1297,13 +1312,45 @@ dnl AC_CHECK_TOOL(AR, ar)
+
+ if test "$GCC" = "yes"; then
+ # mingw gcc mode
+- RC="windres"
++ AC_CHECK_TOOL(RC, windres)
+ CFLAGS_DEBUG="-g"
+ CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"
+- SHLIB_LD="$CC -shared"
++ SHLIB_LD='${CC} -shared'
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
++ PRACTCL_UNSHARED_LIB_SUFFIX='.a'
++
+ LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}"
+ LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}"
++
++ AC_CACHE_CHECK(for cross-compile version of gcc,
++ ac_cv_cross,
++ AC_TRY_COMPILE([
++ #ifdef _WIN32
++ #error cross-compiler
++ #endif
++ ], [],
++ ac_cv_cross=yes,
++ ac_cv_cross=no)
++ )
++ if test "$ac_cv_cross" = "yes"; then
++ case "$do64bit" in
++ amd64|x64|yes)
++ CC="x86_64-w64-mingw32-gcc"
++ LD="x86_64-w64-mingw32-ld"
++ AR="x86_64-w64-mingw32-ar"
++ RANLIB="x86_64-w64-mingw32-ranlib"
++ RC="x86_64-w64-mingw32-windres"
++ ;;
++ *)
++ CC="i686-w64-mingw32-gcc"
++ LD="i686-w64-mingw32-ld"
++ AR="i686-w64-mingw32-ar"
++ RANLIB="i686-w64-mingw32-ranlib"
++ RC="i686-w64-mingw32-windres"
++ ;;
++ esac
++ fi
++
+ else
+ SHLIB_LD="${LINKBIN} -dll ${lflags}"
+ # link -lib only works when -lib is the first arg
+@@ -1409,8 +1456,10 @@ dnl AC_CHECK_TOOL(AR, ar)
+ CYGWIN_*)
+ SHLIB_CFLAGS=""
+ SHLIB_LD='${CC} -shared'
++ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a"
+ SHLIB_SUFFIX=".dll"
+- EXE_SUFFIX=".exe"
++ EXEEXT=".exe"
++ do64bit_ok=yes
+ CC_SEARCH_FLAGS=""
+ LD_SEARCH_FLAGS=""
+ ;;
+@@ -1521,7 +1570,7 @@ dnl AC_CHECK_TOOL(AR, ar)
+ ])
+ ])
+ ;;
+- Linux*)
++ Linux*|GNU*|NetBSD-Debian)
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_SUFFIX=".so"
+
+@@ -1554,17 +1603,6 @@ dnl AC_CHECK_TOOL(AR, ar)
+ # files in compat/*.c is being linked in.
+
+ AS_IF([test x"${USE_COMPAT}" != x],[CFLAGS="$CFLAGS -fno-inline"])
+-
+- ;;
+- GNU*)
+- SHLIB_CFLAGS="-fPIC"
+- SHLIB_SUFFIX=".so"
+-
+- SHLIB_LD='${CC} -shared'
+- LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS=""
+- LD_SEARCH_FLAGS=""
+- AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"])
+ ;;
+ Lynx*)
+ SHLIB_CFLAGS="-fPIC"
+@@ -1577,35 +1615,51 @@ dnl AC_CHECK_TOOL(AR, ar)
+ LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+ ;;
+ OpenBSD-*)
+- SHLIB_CFLAGS="-fPIC"
+- SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+- SHLIB_SUFFIX=".so"
+- AS_IF([test $doRpath = yes], [
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+- LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so.${SHLIB_VERSION}'
+- AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [
+- AC_EGREP_CPP(yes, [
+-#ifdef __ELF__
+- yes
+-#endif
+- ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)])
+- AS_IF([test $tcl_cv_ld_elf = yes], [
+- LDFLAGS=-Wl,-export-dynamic
+- ], [LDFLAGS=""])
++ arch=`arch -s`
++ case "$arch" in
++ vax)
++ SHLIB_SUFFIX=""
++ SHARED_LIB_SUFFIX=""
++ LDFLAGS=""
++ ;;
++ *)
++ case "$arch" in
++ alpha|sparc64)
++ SHLIB_CFLAGS="-fPIC"
++ ;;
++ *)
++ SHLIB_CFLAGS="-fpic"
++ ;;
++ esac
++ SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
++ SHLIB_SUFFIX=".so"
++ AS_IF([test $doRpath = yes], [
++ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
++ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
++ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so${SHLIB_VERSION}'
++ LDFLAGS="-Wl,-export-dynamic"
++ ;;
++ esac
++ case "$arch" in
++ vax)
++ CFLAGS_OPTIMIZE="-O1"
++ ;;
++ *)
++ CFLAGS_OPTIMIZE="-O2"
++ ;;
++ esac
+ AS_IF([test "${TCL_THREADS}" = "1"], [
+- # OpenBSD builds and links with -pthread, never -lpthread.
++ # On OpenBSD: Compile with -pthread
++ # Don't link with -lpthread
+ LIBS=`echo $LIBS | sed s/-lpthread//`
+ CFLAGS="$CFLAGS -pthread"
+- SHLIB_CFLAGS="$SHLIB_CFLAGS -pthread"
+ ])
+ # OpenBSD doesn't do version numbers with dots.
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+ TCL_LIB_VERSIONS_OK=nodots
+ ;;
+- NetBSD-*|FreeBSD-[[3-4]].*)
+- # FreeBSD 3.* and greater have ELF.
+- # NetBSD 2.* has ELF and can use 'cc -shared' to build shared libs
++ NetBSD-*)
++ # NetBSD has ELF and can use 'cc -shared' to build shared libs
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
+ SHLIB_SUFFIX=".so"
+@@ -1619,35 +1673,31 @@ dnl AC_CHECK_TOOL(AR, ar)
+ CFLAGS="$CFLAGS -pthread"
+ LDFLAGS="$LDFLAGS -pthread"
+ ])
+- case $system in
+- FreeBSD-3.*)
+- # FreeBSD-3 doesn't handle version numbers with dots.
+- UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.so'
+- TCL_LIB_VERSIONS_OK=nodots
+- ;;
+- esac
+ ;;
+ FreeBSD-*)
+ # This configuration from FreeBSD Ports.
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD="${CC} -shared"
+- TCL_SHLIB_LD_EXTRAS="-soname \$[@]"
++ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$[@]"
+ SHLIB_SUFFIX=".so"
+ LDFLAGS=""
+ AS_IF([test $doRpath = yes], [
+ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
+- LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'])
++ LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'])
+ AS_IF([test "${TCL_THREADS}" = "1"], [
+ # The -pthread needs to go in the LDFLAGS, not LIBS
+ LIBS=`echo $LIBS | sed s/-pthread//`
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ LDFLAGS="$LDFLAGS $PTHREAD_LIBS"])
+- # Version numbers are dot-stripped by system policy.
+- TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .`
+- UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
+- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1'
+- TCL_LIB_VERSIONS_OK=nodots
++ case $system in
++ FreeBSD-3.*)
++ # Version numbers are dot-stripped by system policy.
++ TCL_TRIM_DOTS=`echo ${PACKAGE_VERSION} | tr -d .`
++ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'
++ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1'
++ TCL_LIB_VERSIONS_OK=nodots
++ ;;
++ esac
+ ;;
+ Darwin-*)
+ CFLAGS_OPTIMIZE="-Os"
+@@ -1706,7 +1756,7 @@ dnl AC_CHECK_TOOL(AR, ar)
+ AS_IF([test $tcl_cv_ld_single_module = yes], [
+ SHLIB_LD="${SHLIB_LD} -Wl,-single_module"
+ ])
+- # TEA specific: link shlib with current and compatiblity version flags
++ # TEA specific: link shlib with current and compatibility version flags
+ vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d`
+ SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}"
+ SHLIB_SUFFIX=".dylib"
+@@ -1818,8 +1868,8 @@ dnl AC_CHECK_TOOL(AR, ar)
+ SHLIB_CFLAGS="-fPIC -melf"
+ LDFLAGS="$LDFLAGS -melf -Wl,-Bexport"
+ ], [
+- SHLIB_CFLAGS="-Kpic -belf"
+- LDFLAGS="$LDFLAGS -belf -Wl,-Bexport"
++ SHLIB_CFLAGS="-Kpic -belf"
++ LDFLAGS="$LDFLAGS -belf -Wl,-Bexport"
+ ])
+ SHLIB_LD="ld -G"
+ SHLIB_LD_LIBS=""
+@@ -1942,6 +1992,24 @@ dnl AC_CHECK_TOOL(AR, ar)
+ LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'
+ ])
+ ;;
++ UNIX_SV* | UnixWare-5*)
++ SHLIB_CFLAGS="-KPIC"
++ SHLIB_LD='${CC} -G'
++ SHLIB_LD_LIBS=""
++ SHLIB_SUFFIX=".so"
++ # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
++ # that don't grok the -Bexport option. Test that it does.
++ 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])
++ AS_IF([test $tcl_cv_ld_Bexport = yes], [
++ LDFLAGS="$LDFLAGS -Wl,-Bexport"
++ ])
++ CC_SEARCH_FLAGS=""
++ LD_SEARCH_FLAGS=""
++ ;;
+ esac
+
+ AS_IF([test "$do64bit" = yes -a "$do64bit_ok" = no], [
+@@ -1966,7 +2034,7 @@ dnl # preprocessing tests use only CPPFL
+ case $system in
+ AIX-*) ;;
+ BSD/OS*) ;;
+- CYGWIN_*) ;;
++ CYGWIN_*|MINGW32_*) ;;
+ IRIX*) ;;
+ NetBSD-*|FreeBSD-*|OpenBSD-*) ;;
+ Darwin-*) ;;
+@@ -1978,15 +2046,111 @@ dnl # preprocessing tests use only CPPFL
+ AS_IF([test "$tcl_cv_cc_visibility_hidden" != yes], [
+ AC_DEFINE(MODULE_SCOPE, [extern],
+ [No Compiler support for module scope symbols])
+- AC_DEFINE(NO_VIZ, [], [No visibility hidden passed to zlib?])
+ ])
+
+ AS_IF([test "$SHARED_LIB_SUFFIX" = ""], [
+- # TEA specific: use PACKAGE_VERSION instead of VERSION
+- SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}'])
++ # TEA specific: use PACKAGE_VERSION instead of VERSION
++ SHARED_LIB_SUFFIX='${PACKAGE_VERSION}${SHLIB_SUFFIX}'
++ ])
+ AS_IF([test "$UNSHARED_LIB_SUFFIX" = ""], [
+- # TEA specific: use PACKAGE_VERSION instead of VERSION
+- UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'])
++ # TEA specific: use PACKAGE_VERSION instead of VERSION
++ UNSHARED_LIB_SUFFIX='${PACKAGE_VERSION}.a'
++ ])
++
++ if test "${GCC}" = "yes" -a ${SHLIB_SUFFIX} = ".dll"; then
++ AC_CACHE_CHECK(for SEH support in compiler,
++ tcl_cv_seh,
++ AC_TRY_RUN([
++#define WIN32_LEAN_AND_MEAN
++#include <windows.h>
++#undef WIN32_LEAN_AND_MEAN
++
++ int main(int argc, char** argv) {
++ int a, b = 0;
++ __try {
++ a = 666 / b;
++ }
++ __except (EXCEPTION_EXECUTE_HANDLER) {
++ return 0;
++ }
++ return 1;
++ }
++ ],
++ tcl_cv_seh=yes,
++ tcl_cv_seh=no,
++ tcl_cv_seh=no)
++ )
++ if test "$tcl_cv_seh" = "no" ; then
++ AC_DEFINE(HAVE_NO_SEH, 1,
++ [Defined when mingw does not support SEH])
++ fi
++
++ #
++ # Check to see if the excpt.h include file provided contains the
++ # definition for EXCEPTION_DISPOSITION; if not, which is the case
++ # with Cygwin's version as of 2002-04-10, define it to be int,
++ # sufficient for getting the current code to work.
++ #
++ AC_CACHE_CHECK(for EXCEPTION_DISPOSITION support in include files,
++ tcl_cv_eh_disposition,
++ AC_TRY_COMPILE([
++# define WIN32_LEAN_AND_MEAN
++# include <windows.h>
++# undef WIN32_LEAN_AND_MEAN
++ ],[
++ EXCEPTION_DISPOSITION x;
++ ],
++ tcl_cv_eh_disposition=yes,
++ tcl_cv_eh_disposition=no)
++ )
++ if test "$tcl_cv_eh_disposition" = "no" ; then
++ AC_DEFINE(EXCEPTION_DISPOSITION, int,
++ [Defined when cygwin/mingw does not support EXCEPTION DISPOSITION])
++ fi
++
++ # Check to see if winnt.h defines CHAR, SHORT, and LONG
++ # even if VOID has already been #defined. The win32api
++ # used by mingw and cygwin is known to do this.
++
++ AC_CACHE_CHECK(for winnt.h that ignores VOID define,
++ tcl_cv_winnt_ignore_void,
++ AC_TRY_COMPILE([
++#define VOID void
++#define WIN32_LEAN_AND_MEAN
++#include <windows.h>
++#undef WIN32_LEAN_AND_MEAN
++ ], [
++ CHAR c;
++ SHORT s;
++ LONG l;
++ ],
++ tcl_cv_winnt_ignore_void=yes,
++ tcl_cv_winnt_ignore_void=no)
++ )
++ if test "$tcl_cv_winnt_ignore_void" = "yes" ; then
++ AC_DEFINE(HAVE_WINNT_IGNORE_VOID, 1,
++ [Defined when cygwin/mingw ignores VOID define in winnt.h])
++ fi
++ fi
++
++ # See if the compiler supports casting to a union type.
++ # This is used to stop gcc from printing a compiler
++ # warning when initializing a union member.
++
++ AC_CACHE_CHECK(for cast to union support,
++ tcl_cv_cast_to_union,
++ AC_TRY_COMPILE([],
++ [
++ union foo { int i; double d; };
++ union foo f = (union foo) (int) 0;
++ ],
++ tcl_cv_cast_to_union=yes,
++ tcl_cv_cast_to_union=no)
++ )
++ if test "$tcl_cv_cast_to_union" = "yes"; then
++ AC_DEFINE(HAVE_CAST_TO_UNION, 1,
++ [Defined when compiler supports casting to union type.])
++ fi
+
+ AC_SUBST(CFLAGS_DEBUG)
+ AC_SUBST(CFLAGS_OPTIMIZE)
+@@ -1994,6 +2158,7 @@ dnl # preprocessing tests use only CPPFL
+
+ AC_SUBST(STLIB_LD)
+ AC_SUBST(SHLIB_LD)
++ AC_SUBST(SHLIB_SUFFIX)
+
+ AC_SUBST(SHLIB_LD_LIBS)
+ AC_SUBST(SHLIB_CFLAGS)
+@@ -2025,7 +2190,6 @@ dnl # preprocessing tests use only CPPFL
+ # USE_TERMIOS
+ # USE_TERMIO
+ # USE_SGTTY
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_SERIAL_PORT], [
+@@ -2237,7 +2401,6 @@ closedir(d);
+ # XINCLUDES
+ # XLIBSW
+ # PKG_LIBS (appends to)
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_PATH_X], [
+@@ -2251,9 +2414,9 @@ AC_DEFUN([TEA_PATH_UNIX_X], [
+ not_really_there=""
+ if test "$no_x" = ""; then
+ if test "$x_includes" = ""; then
+- AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")
++ AC_TRY_CPP([#include <X11/Xlib.h>], , not_really_there="yes")
+ else
+- if test ! -r $x_includes/X11/Intrinsic.h; then
++ if test ! -r $x_includes/X11/Xlib.h; then
+ not_really_there="yes"
+ fi
+ fi
+@@ -2261,11 +2424,11 @@ AC_DEFUN([TEA_PATH_UNIX_X], [
+ if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
+ AC_MSG_CHECKING([for X11 header files])
+ found_xincludes="no"
+- AC_TRY_CPP([#include <X11/Intrinsic.h>], found_xincludes="yes", found_xincludes="no")
++ AC_TRY_CPP([#include <X11/Xlib.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
++ if test -r $i/X11/Xlib.h; then
+ AC_MSG_RESULT([$i])
+ XINCLUDES=" -I$i"
+ found_xincludes="yes"
+@@ -2333,7 +2496,6 @@ AC_DEFUN([TEA_PATH_UNIX_X], [
+ # HAVE_SYS_FILIO_H
+ # USE_FIONBIO
+ # O_NONBLOCK
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_BLOCKING_STYLE], [
+@@ -2368,7 +2530,6 @@ AC_DEFUN([TEA_BLOCKING_STYLE], [
+ # HAVE_TM_GMTOFF
+ # HAVE_TM_TZADJ
+ # HAVE_TIMEZONE_VAR
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_TIME_HANDLER], [
+@@ -2437,7 +2598,6 @@ AC_DEFUN([TEA_TIME_HANDLER], [
+ #
+ # Might defines some of the following vars:
+ # strtod (=fixstrtod)
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_BUGGY_STRTOD], [
+@@ -2488,7 +2648,7 @@ AC_DEFUN([TEA_BUGGY_STRTOD], [
+ #
+ # Results:
+ #
+-# Subst's the following var:
++# Substitutes the following vars:
+ # TCL_LIBS
+ # MATH_LIBS
+ #
+@@ -2497,7 +2657,6 @@ AC_DEFUN([TEA_BUGGY_STRTOD], [
+ #
+ # Might define the following vars:
+ # HAVE_NET_ERRNO_H
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_TCL_LINK_LIBS], [
+@@ -2575,7 +2734,6 @@ AC_DEFUN([TEA_TCL_LINK_LIBS], [
+ # _ISOC99_SOURCE
+ # _LARGEFILE64_SOURCE
+ # _LARGEFILE_SOURCE64
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_TCL_EARLY_FLAG],[
+@@ -2623,7 +2781,6 @@ AC_DEFUN([TEA_TCL_EARLY_FLAGS],[
+ # HAVE_STRUCT_DIRENT64
+ # HAVE_STRUCT_STAT64
+ # HAVE_TYPE_OFF64_T
+-#
+ #--------------------------------------------------------------------
+
+ AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
+@@ -2655,7 +2812,7 @@ AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
+ # Now check for auxiliary declarations
+ AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[
+ AC_TRY_COMPILE([#include <sys/types.h>
+-#include <sys/dirent.h>],[struct dirent64 p;],
++#include <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>?])
+@@ -2725,12 +2882,12 @@ AC_DEFUN([TEA_TCL_64BIT_FLAGS], [
+ AC_DEFUN([TEA_INIT], [
+ # TEA extensions pass this us the version of TEA they think they
+ # are compatible with.
+- TEA_VERSION="3.9"
++ TEA_VERSION="3.10"
+
+ AC_MSG_CHECKING([for correct TEA configuration])
+ if test x"${PACKAGE_NAME}" = x ; then
+ AC_MSG_ERROR([
+-The PACKAGE_NAME variable must be defined by your TEA configure.in])
++The PACKAGE_NAME variable must be defined by your TEA configure.ac])
+ fi
+ if test x"$1" = x ; then
+ AC_MSG_ERROR([
+@@ -2740,21 +2897,36 @@ TEA version not specified.])
+ else
+ AC_MSG_RESULT([ok (TEA ${TEA_VERSION})])
+ fi
++
++ # If the user did not set CFLAGS, set it now to keep macros
++ # like AC_PROG_CC and AC_TRY_COMPILE from adding "-g -O2".
++ if test "${CFLAGS+set}" != "set" ; then
++ CFLAGS=""
++ fi
++
+ case "`uname -s`" in
+ *win32*|*WIN32*|*MINGW32_*)
+- AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo)
++ AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo)
+ EXEEXT=".exe"
+ TEA_PLATFORM="windows"
+ ;;
+ *CYGWIN_*)
+- CYGPATH=echo
+ EXEEXT=".exe"
+- # TEA_PLATFORM is determined later in LOAD_TCLCONFIG
++ # CYGPATH and TEA_PLATFORM are determined later in LOAD_TCLCONFIG
+ ;;
+ *)
+ CYGPATH=echo
+- EXEEXT=""
+- TEA_PLATFORM="unix"
++ # Maybe we are cross-compiling....
++ case ${host_alias} in
++ *mingw32*)
++ EXEEXT=".exe"
++ TEA_PLATFORM="windows"
++ ;;
++ *)
++ EXEEXT=""
++ TEA_PLATFORM="unix"
++ ;;
++ esac
+ ;;
+ esac
+
+@@ -3061,7 +3233,7 @@ AC_DEFUN([TEA_PREFIX], [
+ # TEA_SETUP_COMPILER_CC --
+ #
+ # Do compiler checks the way we want. This is just a replacement
+-# for AC_PROG_CC in TEA configure.in files to make them cleaner.
++# for AC_PROG_CC in TEA configure.ac files to make them cleaner.
+ #
+ # Arguments:
+ # none
+@@ -3074,16 +3246,22 @@ AC_DEFUN([TEA_SETUP_COMPILER_CC], [
+ # Don't put any macros that use the compiler (e.g. AC_TRY_COMPILE)
+ # in this macro, they need to go into TEA_SETUP_COMPILER instead.
+
+- # If the user did not set CFLAGS, set it now to keep
+- # the AC_PROG_CC macro from adding "-g -O2".
+- if test "${CFLAGS+set}" != "set" ; then
+- CFLAGS=""
+- fi
+-
+ AC_PROG_CC
+ AC_PROG_CPP
+
+- AC_PROG_INSTALL
++ INSTALL='$(SHELL) $(srcdir)/tclconfig/install-sh -c'
++ INSTALL_DATA_DIR='${INSTALL} -d -m 755'
++ INSTALL_DATA='${INSTALL} -m 644'
++ INSTALL_PROGRAM='${INSTALL}'
++ INSTALL_SCRIPT='${INSTALL}'
++ INSTALL_LIBRARY='${INSTALL_DATA}'
++
++ AC_SUBST(INSTALL)
++ AC_SUBST(INSTALL_DATA_DIR)
++ AC_SUBST(INSTALL_DATA)
++ AC_SUBST(INSTALL_PROGRAM)
++ AC_SUBST(INSTALL_SCRIPT)
++ AC_SUBST(INSTALL_LIBRARY)
+
+ #--------------------------------------------------------------------
+ # Checks to see if the make program sets the $MAKE variable.
+@@ -3095,7 +3273,7 @@ AC_DEFUN([TEA_SETUP_COMPILER_CC], [
+ # Find ranlib
+ #--------------------------------------------------------------------
+
+- AC_PROG_RANLIB
++ AC_CHECK_TOOL(RANLIB, ranlib)
+
+ #--------------------------------------------------------------------
+ # Determines the correct binary file extension (.o, .obj, .exe etc.)
+@@ -3176,92 +3354,128 @@ AC_DEFUN([TEA_SETUP_COMPILER], [
+ # MAKE_STUB_LIB Makefile rule for building a stub library
+ # VC_MANIFEST_EMBED_DLL Makefile rule for embedded VC manifest in DLL
+ # VC_MANIFEST_EMBED_EXE Makefile rule for embedded VC manifest in EXE
++#
++# PRACTCL_TOOLSET What toolset is in use (gcc or msvc)
++# PRACTCL_SHARED_LIB Template rule for building a shared library
++# PRACTCL_STATIC_LIB Template rule for building a static library
++# PRACTCL_STUB_LIB Template rule for building a stub library
++# PRACTCL_VC_MANIFEST_EMBED_DLL Template rule for embedded VC manifest in DLL
++# PRACTCL_VC_MANIFEST_EMBED_EXE Template rule for embedded VC manifest in EXE
++# PRACTCL_NAME_LIBRARY Template rule for naming libraries
++#
+ #------------------------------------------------------------------------
+
+ AC_DEFUN([TEA_MAKE_LIB], [
+- if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
+- MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)"
+- MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)"
+- AC_EGREP_CPP([manifest needed], [
++ PRACTCL_TOOLSET="gcc"
++ PRACTCL_VC_MANIFEST_EMBED_DLL=:
++ PRACTCL_VC_MANIFEST_EMBED_EXE=:
++ if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
++ PRACTCL_TOOLSET="msvc"
++ PRACTCL_STATIC_LIB="%STLIB_LD% -out:%OUTFILE% %LIBRARY_OBJECTS%"
++ PRACTCL_SHARED_LIB="%SHLIB_LD% %SHLIB_LD_LIBS% %LDFLAGS_DEFAULT% -out:%OUTFILE% %LIBRARY_OBJECTS%"
++ MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)"
++ MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)"
++ AC_EGREP_CPP([manifest needed], [
+ #if defined(_MSC_VER) && _MSC_VER >= 1400
+ print("manifest needed")
+ #endif
+- ], [
+- # Could do a CHECK_PROG for mt, but should always be with MSVC8+
+- VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;2 ; fi"
+- VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;1 ; fi"
+- MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}"
+- TEA_ADD_CLEANFILES([*.manifest])
+- ])
+- MAKE_STUB_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_STUB_OBJECTS)"
+- else
+- MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)"
+- MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}"
+- MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)"
+- fi
+-
+- if test "${SHARED_BUILD}" = "1" ; then
+- MAKE_LIB="${MAKE_SHARED_LIB} "
+- else
+- MAKE_LIB="${MAKE_STATIC_LIB} "
+- fi
++ ], [
++ # Could do a CHECK_PROG for mt, but should always be with MSVC8+
++ PRACTCL_VC_MANIFEST_EMBED_DLL="mt.exe -nologo -manifest %OUTFILE%.manifest -outputresource:%OUTFILE%\;2"
++ PRACTCL_VC_MANIFEST_EMBED_EXE="mt.exe -nologo -manifest %OUTFILE%.manifest -outputresource:%OUTFILE%\;1"
++ VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;2 ; fi"
++ VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest -outputresource:\[$]@\;1 ; fi"
++ MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}"
++ TEA_ADD_CLEANFILES([*.manifest])
++ ])
++ PRACTCL_STUB_LIB="%STLIB_LD% -nodefaultlib -out:%OUTFILE% %LIBRARY_OBJECTS%"
++ MAKE_STUB_LIB="\${STLIB_LD} -nodefaultlib -out:\[$]@ \$(PKG_STUB_OBJECTS)"
++ else
++ MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)"
++ MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}"
++ MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)"
++
++ PRACTCL_STATIC_LIB="%STLIB_LD% %OUTFILE% %LIBRARY_OBJECTS%"
++ PRACTCL_SHARED_LIB="%SHLIB_LD% -o %OUTFILE% %LIBRARY_OBJECTS% %SHLIB_LD_LIBS%"
++ PRACTCL_STUB_LIB="%STLIB_LD% %OUTFILE% %LIBRARY_OBJECTS%"
++ fi
+
+- #--------------------------------------------------------------------
+- # Shared libraries and static libraries have different names.
+- # Use the double eval to make sure any variables in the suffix is
+- # substituted. (@@@ Might not be necessary anymore)
+- #--------------------------------------------------------------------
++ if test "${SHARED_BUILD}" = "1" ; then
++ MAKE_LIB="${MAKE_SHARED_LIB} "
++ else
++ MAKE_LIB="${MAKE_STATIC_LIB} "
++ fi
+
+- if test "${TEA_PLATFORM}" = "windows" ; then
+- if test "${SHARED_BUILD}" = "1" ; then
++ #--------------------------------------------------------------------
++ # Shared libraries and static libraries have different names.
++ # Use the double eval to make sure any variables in the suffix is
++ # substituted. (@@@ Might not be necessary anymore)
++ #--------------------------------------------------------------------
++ if test "${TEA_PLATFORM}" = "windows" ; then
++ PRACTCL_NAME_LIBRARY="%LIBRARY_PREFIX%%LIBRARY_NAME%%LIBRARY_VERSION_NODOTS%"
++ if test "${SHARED_BUILD}" = "1" ; then
+ # We force the unresolved linking of symbols that are really in
+ # the private libraries of Tcl and Tk.
+- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
+ if test x"${TK_BIN_DIR}" != x ; then
+- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
++ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
+ fi
+- eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+- else
+- eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+- fi
+- # Some packages build their own stubs libraries
+- eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+- if test "$GCC" = "yes"; then
+- PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
+- fi
+- # These aren't needed on Windows (either MSVC or gcc)
+- RANLIB=:
+- RANLIB_STUB=:
+- else
+- RANLIB_STUB="${RANLIB}"
+- if test "${SHARED_BUILD}" = "1" ; then
+- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
+- if test x"${TK_BIN_DIR}" != x ; then
+- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
++ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
++ if test "$GCC" = "yes"; then
++ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -static-libgcc"
+ fi
+- eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
+- RANLIB=:
+- else
+- eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+- fi
+- # Some packages build their own stubs libraries
+- eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
++ eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
++ else
++ eval eval "PKG_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
++ if test "$GCC" = "yes"; then
++ PKG_LIB_FILE=lib${PKG_LIB_FILE}
++ fi
++ fi
++ # Some packages build their own stubs libraries
++ eval eval "PKG_STUB_LIB_FILE=${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
++ if test "$GCC" = "yes"; then
++ PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
+ fi
+-
+- # These are escaped so that only CFLAGS is picked up at configure time.
+- # The other values will be substituted at make time.
+- CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}"
+- if test "${SHARED_BUILD}" = "1" ; then
+- CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}"
++ # These aren't needed on Windows (either MSVC or gcc)
++ RANLIB=:
++ RANLIB_STUB=:
++ else
++ PRACTCL_NAME_LIBRARY="lib%LIBRARY_PREFIX%%LIBRARY_NAME%%LIBRARY_VERSION%"
++ RANLIB_STUB="${RANLIB}"
++ if test "${SHARED_BUILD}" = "1" ; then
++ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
++ if test x"${TK_BIN_DIR}" != x ; then
++ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
++ fi
++ eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
++ RANLIB=:
++ else
++ eval eval "PKG_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
+ fi
++ # Some packages build their own stubs libraries
++ eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
++ fi
+
+- AC_SUBST(MAKE_LIB)
+- AC_SUBST(MAKE_SHARED_LIB)
+- AC_SUBST(MAKE_STATIC_LIB)
+- AC_SUBST(MAKE_STUB_LIB)
+- AC_SUBST(RANLIB_STUB)
+- AC_SUBST(VC_MANIFEST_EMBED_DLL)
+- AC_SUBST(VC_MANIFEST_EMBED_EXE)
++ # These are escaped so that only CFLAGS is picked up at configure time.
++ # The other values will be substituted at make time.
++ CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}"
++ if test "${SHARED_BUILD}" = "1" ; then
++ CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}"
++ fi
++
++ AC_SUBST(MAKE_LIB)
++ AC_SUBST(MAKE_SHARED_LIB)
++ AC_SUBST(MAKE_STATIC_LIB)
++ AC_SUBST(MAKE_STUB_LIB)
++ AC_SUBST(RANLIB_STUB)
++ AC_SUBST(VC_MANIFEST_EMBED_DLL)
++ AC_SUBST(VC_MANIFEST_EMBED_EXE)
++ AC_SUBST(PRACTCL_TOOLSET)
++ AC_SUBST(PRACTCL_SHARED_LIB)
++ AC_SUBST(PRACTCL_STATIC_LIB)
++ AC_SUBST(PRACTCL_STUB_LIB)
++ AC_SUBST(PRACTCL_VC_MANIFEST_EMBED_DLL)
++ AC_SUBST(PRACTCL_VC_MANIFEST_EMBED_EXE)
++ AC_SUBST(PRACTCL_NAME_LIBRARY)
+ ])
+
+ #------------------------------------------------------------------------
+@@ -3350,7 +3564,7 @@ AC_DEFUN([TEA_LIB_SPEC], [
+ #
+ # Results:
+ #
+-# Substs the following vars:
++# Substitutes the following vars:
+ # TCL_TOP_DIR_NATIVE
+ # TCL_INCLUDES
+ #------------------------------------------------------------------------
+@@ -3389,12 +3603,9 @@ AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [
+ # the framework's Headers and PrivateHeaders directories
+ case ${TCL_DEFS} in
+ *TCL_FRAMEWORK*)
+- if test -d "${TCL_BIN_DIR}/Headers"; then
+- if test -d "${TCL_BIN_DIR}/PrivateHeaders"; then
+- TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"
+- elif test -d "${TCL_BIN_DIR}/Headers/tcl-private"; then
+- TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/Headers/tcl-private\" ${TCL_INCLUDES}"
+- fi
++ if test -d "${TCL_BIN_DIR}/Headers" -a \
++ -d "${TCL_BIN_DIR}/PrivateHeaders"; then
++ TCL_INCLUDES="-I\"${TCL_BIN_DIR}/Headers\" -I\"${TCL_BIN_DIR}/PrivateHeaders\" ${TCL_INCLUDES}"
+ else
+ TCL_INCLUDES="${TCL_INCLUDES} ${TCL_INCLUDE_SPEC} `echo "${TCL_INCLUDE_SPEC}" | sed -e 's/Headers/PrivateHeaders/'`"
+ fi
+@@ -3431,7 +3642,7 @@ AC_DEFUN([TEA_PRIVATE_TCL_HEADERS], [
+ # Adds a --with-tclinclude switch to configure.
+ # Result is cached.
+ #
+-# Substs the following vars:
++# Substitutes the following vars:
+ # TCL_INCLUDES
+ #------------------------------------------------------------------------
+
+@@ -3521,7 +3732,7 @@ AC_DEFUN([TEA_PUBLIC_TCL_HEADERS], [
+ #
+ # Results:
+ #
+-# Substs the following vars:
++# Substitutes the following vars:
+ # TK_INCLUDES
+ #------------------------------------------------------------------------
+
+@@ -3610,7 +3821,7 @@ AC_DEFUN([TEA_PRIVATE_TK_HEADERS], [
+ # Adds a --with-tkinclude switch to configure.
+ # Result is cached.
+ #
+-# Substs the following vars:
++# Substitutes the following vars:
+ # TK_INCLUDES
+ #------------------------------------------------------------------------
+
+@@ -3828,11 +4039,10 @@ AC_DEFUN([TEA_PATH_CONFIG], [
+ #
+ # Results:
+ #
+-# Subst the following vars:
++# Substitutes the following vars:
+ # $1_SRC_DIR
+ # $1_LIB_FILE
+ # $1_LIB_SPEC
+-#
+ #------------------------------------------------------------------------
+
+ AC_DEFUN([TEA_LOAD_CONFIG], [
+@@ -3893,7 +4103,6 @@ AC_DEFUN([TEA_LOAD_CONFIG], [
+ #
+ # Results:
+ # Adds to LIBS the appropriate extension library
+-#
+ #------------------------------------------------------------------------
+ AC_DEFUN([TEA_LOAD_CONFIG_LIB], [
+ AC_MSG_CHECKING([For $1 library for LIBS])
+@@ -3925,8 +4134,7 @@ AC_DEFUN([TEA_LOAD_CONFIG_LIB], [
+ # $1
+ #
+ # Results:
+-# Subst the following vars:
+-#
++# Substitutes the following vars:
+ #------------------------------------------------------------------------
+
+ AC_DEFUN([TEA_EXPORT_CONFIG], [
+@@ -3943,12 +4151,12 @@ AC_DEFUN([TEA_EXPORT_CONFIG], [
+ eval $1_LIB_FLAG="-l$1`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
+ eval $1_STUB_LIB_FLAG="-l$1stub`echo ${PACKAGE_VERSION} | tr -d .`${DBGX}"
+ fi
+- $1_BUILD_LIB_SPEC="-L`pwd` ${$1_LIB_FLAG}"
+- $1_LIB_SPEC="-L${pkglibdir} ${$1_LIB_FLAG}"
+- $1_BUILD_STUB_LIB_SPEC="-L`pwd` [$]{$1_STUB_LIB_FLAG}"
+- $1_STUB_LIB_SPEC="-L${pkglibdir} [$]{$1_STUB_LIB_FLAG}"
+- $1_BUILD_STUB_LIB_PATH="`pwd`/[$]{PKG_STUB_LIB_FILE}"
+- $1_STUB_LIB_PATH="${pkglibdir}/[$]{PKG_STUB_LIB_FILE}"
++ $1_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${$1_LIB_FLAG}"
++ $1_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` ${$1_LIB_FLAG}"
++ $1_BUILD_STUB_LIB_SPEC="-L`$CYGPATH $(pwd)` [$]{$1_STUB_LIB_FLAG}"
++ $1_STUB_LIB_SPEC="-L`$CYGPATH ${pkglibdir}` [$]{$1_STUB_LIB_FLAG}"
++ $1_BUILD_STUB_LIB_PATH="`$CYGPATH $(pwd)`/[$]{PKG_STUB_LIB_FILE}"
++ $1_STUB_LIB_PATH="`$CYGPATH ${pkglibdir}`/[$]{PKG_STUB_LIB_FILE}"
+
+ AC_SUBST($1_BUILD_LIB_SPEC)
+ AC_SUBST($1_LIB_SPEC)
+@@ -4029,8 +4237,6 @@ AC_DEFUN([TEA_PATH_CELIB], [
+ fi
+ fi
+ ])
+-
+-
+ # Local Variables:
+ # mode: autoconf
+ # End:
diff --git a/lang/expect/pkg-plist b/lang/expect/pkg-plist
index 62cdd751a31c..7cfff19f5e88 100644
--- a/lang/expect/pkg-plist
+++ b/lang/expect/pkg-plist
@@ -3,8 +3,8 @@ include/expect.h
include/expect_comm.h
include/expect_tcl.h
include/tcldbg.h
-lib/expect%%EXPECT_VER%%/libexpect%%LIBEXPECT_VER%%.so
-lib/expect%%EXPECT_VER%%/pkgIndex.tcl
+lib/expect%%PORTVERSION%%/libexpect%%PORTVERSION%%.so
+lib/expect%%PORTVERSION%%/pkgIndex.tcl
lib/libexpect.so
lib/libexpect.so.1
man/man1/expect.1.gz