From c15e74958b28f09102640c2b4e0017db4e512437 Mon Sep 17 00:00:00 2001 From: Thomas Sailer Date: Jun 13 2014 17:48:17 +0000 Subject: update to 8.6.1 --- diff --git a/.gitignore b/.gitignore index 67f5796..1f0d834 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ tcl8.5.8-src.tar.gz /tcl8.5.13-src.tar.gz /tcl8.5.14-src.tar.gz /tcl8.5.15-src.tar.gz +/tcl-core8.6.1-src.tar.gz diff --git a/mingw-tcl.spec b/mingw-tcl.spec index 77e1e4c..e205c10 100644 --- a/mingw-tcl.spec +++ b/mingw-tcl.spec @@ -1,20 +1,20 @@ %{?mingw_package_header} %global majorver1 8 -%global majorver2 5 +%global majorver2 6 %global majorver %{majorver1}.%{majorver2} -%global vers %{majorver}.15 +%global vers %{majorver}.1 %global name1 tcl Summary: MinGW Windows Tool Command Language, pronounced tickle Name: mingw-%{name1} Version: %{vers} -Release: 2%{?dist} +Release: 1%{?dist} License: TCL Group: Development/Languages URL: http://tcl.sourceforge.net/ -Source0: http://downloads.sourceforge.net/sourceforge/tcl/%{name1}%{version}-src.tar.gz +Source0: http://downloads.sourceforge.net/sourceforge/tcl/%{name1}-core%{version}-src.tar.gz BuildArch: noarch Buildrequires: autoconf BuildRequires: file @@ -33,13 +33,14 @@ BuildRequires: mingw32-runtime BuildRequires: mingw64-runtime BuildRequires: mingw32-headers BuildRequires: mingw64-headers -Patch0: tcl-8.5.14-autopath.patch -Patch1: tcl-8.5.14-conf.patch -Patch2: tcl-8.5.14-hidden.patch +Patch0: tcl-8.6.1-autopath.patch +Patch1: tcl-8.6.1-conf.patch +Patch2: tcl-8.6.1-hidden.patch Patch4: tcl-8.5.6-mingw.patch Patch5: tcl-nativetclsh.patch Patch6: tcl-mingw-w64-compatibility.patch -Patch7: tcl-8.5.14-mingwexcept.patch +Patch7: tcl-8.6.1-mingwexcept.patch +Patch8: tcl-8.6.1-nativezlib.patch %description The Tcl (Tool Command Language) provides a powerful platform for @@ -90,6 +91,7 @@ chmod -x generic/tclThreadAlloc.c %patch5 -p0 -b .nativetclsh %patch6 -p0 -b .mingw-w64 %patch7 -p1 -b .mingw-except +%patch8 -p1 -b .nativezlib %build pushd win @@ -164,14 +166,13 @@ mv $RPM_BUILD_ROOT/%{mingw64_libdir}/reg* $RPM_BUILD_ROOT/%{mingw64_libdir}/%{na %{mingw32_bindir}/%{name1}sh.exe %{mingw32_bindir}/%{name1}sh%{majorver1}%{majorver2}.exe %{mingw32_bindir}/%{name1}%{majorver1}%{majorver2}.dll -%{mingw32_bindir}/%{name1}pip%{majorver1}%{majorver2}.dll %{mingw32_libdir}/lib%{name1}%{majorver1}%{majorver2}.dll.a %{mingw32_libdir}/lib%{name1}stub%{majorver1}%{majorver2}.dll.a %{mingw32_libdir}/lib%{name1}.dll.a %{mingw32_libdir}/%{name1}Config.sh %{mingw32_datadir}/%{name1}%{majorver} -%exclude %{mingw32_datadir}/%{name1}%{majorver}/dde1.3/tcldde13.dll.debug -%exclude %{mingw32_datadir}/%{name1}%{majorver}/reg1.2/tclreg12.dll.debug +%exclude %{mingw32_datadir}/%{name1}%{majorver}/dde1.4/tcldde14.dll.debug +%exclude %{mingw32_datadir}/%{name1}%{majorver}/reg1.3/tclreg13.dll.debug %{mingw32_datadir}/%{name1}%{majorver1} %{mingw32_includedir}/* %{mingw32_libdir}/%{name1}%{majorver} @@ -182,14 +183,13 @@ mv $RPM_BUILD_ROOT/%{mingw64_libdir}/reg* $RPM_BUILD_ROOT/%{mingw64_libdir}/%{na %{mingw64_bindir}/%{name1}sh.exe %{mingw64_bindir}/%{name1}sh%{majorver1}%{majorver2}.exe %{mingw64_bindir}/%{name1}%{majorver1}%{majorver2}.dll -%{mingw64_bindir}/%{name1}pip%{majorver1}%{majorver2}.dll %{mingw64_libdir}/lib%{name1}%{majorver1}%{majorver2}.dll.a %{mingw64_libdir}/lib%{name1}stub%{majorver1}%{majorver2}.dll.a %{mingw64_libdir}/lib%{name1}.dll.a %{mingw64_libdir}/%{name1}Config.sh %{mingw64_datadir}/%{name1}%{majorver} -%exclude %{mingw64_datadir}/%{name1}%{majorver}/dde1.3/tcldde13.dll.debug -%exclude %{mingw64_datadir}/%{name1}%{majorver}/reg1.2/tclreg12.dll.debug +%exclude %{mingw64_datadir}/%{name1}%{majorver}/dde1.4/tcldde14.dll.debug +%exclude %{mingw64_datadir}/%{name1}%{majorver}/reg1.3/tclreg13.dll.debug %{mingw64_datadir}/%{name1}%{majorver1} %{mingw64_includedir}/* %{mingw64_libdir}/%{name1}%{majorver} @@ -197,7 +197,8 @@ mv $RPM_BUILD_ROOT/%{mingw64_libdir}/reg* $RPM_BUILD_ROOT/%{mingw64_libdir}/%{na %doc license.terms %changelog -* Sat Jun 07 2014 Fedora Release Engineering - 8.5.15-2 +* Fri Jun 13 2014 Thomas Sailer - 8.6.1-1 +- update to 8.6.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Thu Mar 6 2014 Thomas Sailer - 8.5.15-1 diff --git a/sources b/sources index 9c151a5..8f97fa3 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -44b50e58ab45dd272f6714dce2129123 tcl8.5.14-src.tar.gz -f3df162f92c69b254079c4d0af7a690f tcl8.5.15-src.tar.gz +f9d2fb6d673f19fbe387c792a6197477 tcl-core8.6.1-src.tar.gz diff --git a/tcl-8.5.14-autopath.patch b/tcl-8.5.14-autopath.patch deleted file mode 100644 index cad89f0..0000000 --- a/tcl-8.5.14-autopath.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/library/auto.tcl b/library/auto.tcl -index f7cf5f0..feb0a22 100644 ---- a/library/auto.tcl -+++ b/library/auto.tcl -@@ -84,6 +84,13 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} { - lappend dirs $value - } - -+ # 2a. As a sibling of Tcl's script directory -+ if {[catch { -+ ::tcl::pkgconfig get scriptdir,runtime -+ } value] == 0} { -+ lappend dirs [file join [file dirname $value] $basename$version] -+ } -+ - # 3. Relative to auto_path directories. This checks relative to the - # Tcl library as well as allowing loading of libraries added to the - # auto_path that is not relative to the core library or binary paths. -diff --git a/library/init.tcl b/library/init.tcl -index 071e6df..7713d3e 100644 ---- a/library/init.tcl -+++ b/library/init.tcl -@@ -47,16 +47,11 @@ if {![info exists auto_path]} { - } - namespace eval tcl { - variable Dir -- foreach Dir [list $::tcl_library [file dirname $::tcl_library]] { -+ foreach Dir [list $::tcl_library] { - if {$Dir ni $::auto_path} { - lappend ::auto_path $Dir - } - } -- set Dir [file join [file dirname [file dirname \ -- [info nameofexecutable]]] lib] -- if {$Dir ni $::auto_path} { -- lappend ::auto_path $Dir -- } - catch { - foreach Dir $::tcl_pkgPath { - if {$Dir ni $::auto_path} { -diff --git a/unix/configure.in b/unix/configure.in -index e22a7d3..658b3ed 100755 ---- a/unix/configure.in -+++ b/unix/configure.in -@@ -840,9 +840,9 @@ if test "$FRAMEWORK_BUILD" = "1" ; then - test -z "$TCL_MODULE_PATH" && \ - TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl /System/Library/Tcl" - elif test "$prefix/lib" != "$libdir"; then -- TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" -+ TCL_PACKAGE_PATH="${libdir}/tcl8.5 ${prefix}/share/tcl8.5 ${libdir}/tk8.5 ${prefix}/share/tk8.5 ${TCL_PACKAGE_PATH}" - else -- TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}" -+ TCL_PACKAGE_PATH="${libdir}/tcl8.5 ${prefix}/share/tcl8.5 ${libdir}/tk8.5 ${prefix}/share/tk8.5 ${TCL_PACKAGE_PATH}" - fi - - #-------------------------------------------------------------------- diff --git a/tcl-8.5.14-conf.patch b/tcl-8.5.14-conf.patch deleted file mode 100644 index bbd3915..0000000 --- a/tcl-8.5.14-conf.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/unix/tcl.m4 b/unix/tcl.m4 -index 668fa2f..a50e4d1 100644 ---- a/unix/tcl.m4 -+++ b/unix/tcl.m4 -@@ -1420,12 +1420,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ - # get rid of the warnings. - #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" - -- SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' -+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS} -fPIC -Wl,-soname,${@}' - DL_OBJS="tclLoadDl.o" - DL_LIBS="-ldl" - LDFLAGS="$LDFLAGS -Wl,--export-dynamic" - AS_IF([test $doRpath = yes], [ -- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) -+ CC_SEARCH_FLAGS='']) - LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} - AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"]) - AS_IF([test $do64bit = yes], [ diff --git a/tcl-8.5.14-hidden.patch b/tcl-8.5.14-hidden.patch deleted file mode 100644 index aa977d0..0000000 --- a/tcl-8.5.14-hidden.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/generic/tclInt.h b/generic/tclInt.h -index 92251fe..b79edf6 100644 ---- a/generic/tclInt.h -+++ b/generic/tclInt.h -@@ -2807,7 +2807,7 @@ MODULE_SCOPE void TclClockInit(Tcl_Interp *interp); - MODULE_SCOPE int TclClockOldscanObjCmd( - ClientData clientData, Tcl_Interp *interp, - int objc, Tcl_Obj *const objv[]); --MODULE_SCOPE int Tcl_CloseObjCmd(ClientData clientData, -+extern int Tcl_CloseObjCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); - MODULE_SCOPE int Tcl_ConcatObjCmd(ClientData clientData, -@@ -2968,7 +2968,7 @@ MODULE_SCOPE int Tcl_RegsubObjCmd(ClientData clientData, - MODULE_SCOPE int Tcl_RenameObjCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); --MODULE_SCOPE int Tcl_ReturnObjCmd(ClientData clientData, -+extern int Tcl_ReturnObjCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); - MODULE_SCOPE int Tcl_ScanObjCmd(ClientData clientData, -diff --git a/generic/tclPort.h b/generic/tclPort.h -index 12a60db..d817154 100644 ---- a/generic/tclPort.h -+++ b/generic/tclPort.h -@@ -20,7 +20,7 @@ - #if defined(_WIN32) - # include "tclWinPort.h" - #else --# include "tclUnixPort.h" -+# include "../unix/tclUnixPort.h" - #endif - #include "tcl.h" - diff --git a/tcl-8.5.14-mingwexcept.patch b/tcl-8.5.14-mingwexcept.patch deleted file mode 100644 index 3019e4f..0000000 --- a/tcl-8.5.14-mingwexcept.patch +++ /dev/null @@ -1,105 +0,0 @@ ---- tcl8.5.14/win/tclWin32Dll.c.x 2013-09-17 22:17:30.051486647 +0200 -+++ tcl8.5.14/win/tclWin32Dll.c 2013-09-17 22:19:01.843373633 +0200 -@@ -53,14 +53,14 @@ - * them by creating an EXCEPTION_REGISTRATION within the activation record. - */ - --typedef struct EXCEPTION_REGISTRATION { -- struct EXCEPTION_REGISTRATION *link; -+typedef struct TCL_EXCEPTION_REGISTRATION { -+ struct TCL_EXCEPTION_REGISTRATION *link; - EXCEPTION_DISPOSITION (*handler)( - struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); - void *ebp; - void *esp; - int status; --} EXCEPTION_REGISTRATION; -+} TCL_EXCEPTION_REGISTRATION; - #endif - - /* -@@ -302,7 +302,7 @@ - LPVOID reserved) /* Not used. */ - { - #if defined(HAVE_NO_SEH) && !defined(_WIN64) -- EXCEPTION_REGISTRATION registration; -+ TCL_EXCEPTION_REGISTRATION registration; - #endif - - switch (reason) { -@@ -1086,7 +1086,7 @@ - - # else - -- EXCEPTION_REGISTRATION registration; -+ TCL_EXCEPTION_REGISTRATION registration; - - /* - * Execute the CPUID instruction with the given index, and store results ---- tcl8.5.14/win/tclWinChan.c.x 2013-09-17 23:16:24.330057684 +0200 -+++ tcl8.5.14/win/tclWinChan.c 2013-09-17 23:17:24.234360380 +0200 -@@ -127,14 +127,14 @@ - * them by creating an EXCEPTION_REGISTRATION within the activation record. - */ - --typedef struct EXCEPTION_REGISTRATION { -- struct EXCEPTION_REGISTRATION* link; -+typedef struct TCL_EXCEPTION_REGISTRATION { -+ struct TCL_EXCEPTION_REGISTRATION* link; - EXCEPTION_DISPOSITION (*handler)( - struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); - void* ebp; - void* esp; - int status; --} EXCEPTION_REGISTRATION; -+} TCL_EXCEPTION_REGISTRATION; - #endif - - /* -@@ -1027,7 +1027,7 @@ - * TCL_WRITABLE to indicate file mode. */ - { - #if defined(HAVE_NO_SEH) && !defined(_WIN64) -- EXCEPTION_REGISTRATION registration; -+ TCL_EXCEPTION_REGISTRATION registration; - #endif - char channelName[16 + TCL_INTEGER_SPACE]; - Tcl_Channel channel = NULL; ---- tcl8.5.14/win/tclWinFCmd.c.x 2013-09-17 23:17:44.045807044 +0200 -+++ tcl8.5.14/win/tclWinFCmd.c 2013-09-17 23:18:31.630076452 +0200 -@@ -75,14 +75,14 @@ - * them by creating an EXCEPTION_REGISTRATION within the activation record. - */ - --typedef struct EXCEPTION_REGISTRATION { -- struct EXCEPTION_REGISTRATION *link; -+typedef struct TCL_EXCEPTION_REGISTRATION { -+ struct TCL_EXCEPTION_REGISTRATION *link; - EXCEPTION_DISPOSITION (*handler)( - struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, void *); - void *ebp; - void *esp; - int status; --} EXCEPTION_REGISTRATION; -+} TCL_EXCEPTION_REGISTRATION; - - #endif - -@@ -176,7 +176,7 @@ - * (native). */ - { - #if defined(HAVE_NO_SEH) && !defined(_WIN64) -- EXCEPTION_REGISTRATION registration; -+ TCL_EXCEPTION_REGISTRATION registration; - #endif - DWORD srcAttr, dstAttr; - int retval = -1; -@@ -568,7 +568,7 @@ - CONST TCHAR *nativeDst) /* Pathname of file to copy to (native). */ - { - #if defined(HAVE_NO_SEH) && !defined(_WIN64) -- EXCEPTION_REGISTRATION registration; -+ TCL_EXCEPTION_REGISTRATION registration; - #endif - int retval = -1; - diff --git a/tcl-8.6.1-autopath.patch b/tcl-8.6.1-autopath.patch new file mode 100644 index 0000000..16a0c95 --- /dev/null +++ b/tcl-8.6.1-autopath.patch @@ -0,0 +1,56 @@ +diff --git a/library/auto.tcl b/library/auto.tcl +index 02edcc4..cd3b587 100644 +--- a/library/auto.tcl ++++ b/library/auto.tcl +@@ -81,6 +81,13 @@ proc tcl_findLibrary {basename version patch initScript enVarName varName} { + lappend dirs [::${basename}::pkgconfig get scriptdir,runtime] + } + ++ # 2a. As a sibling of Tcl's script directory ++ if {[catch { ++ ::tcl::pkgconfig get scriptdir,runtime ++ } value] == 0} { ++ lappend dirs [file join [file dirname $value] $basename$version] ++ } ++ + # 3. Relative to auto_path directories. This checks relative to the + # Tcl library as well as allowing loading of libraries added to the + # auto_path that is not relative to the core library or binary paths. +diff --git a/library/init.tcl b/library/init.tcl +index 1ca6413..1aba664 100644 +--- a/library/init.tcl ++++ b/library/init.tcl +@@ -47,16 +47,11 @@ if {![info exists auto_path]} { + } + namespace eval tcl { + variable Dir +- foreach Dir [list $::tcl_library [file dirname $::tcl_library]] { ++ foreach Dir [list $::tcl_library] { + if {$Dir ni $::auto_path} { + lappend ::auto_path $Dir + } + } +- set Dir [file join [file dirname [file dirname \ +- [info nameofexecutable]]] lib] +- if {$Dir ni $::auto_path} { +- lappend ::auto_path $Dir +- } + catch { + foreach Dir $::tcl_pkgPath { + if {$Dir ni $::auto_path} { +diff --git a/unix/configure.in b/unix/configure.in +index 61ad30f..8b327c4 100755 +--- a/unix/configure.in ++++ b/unix/configure.in +@@ -883,9 +883,9 @@ if test "$FRAMEWORK_BUILD" = "1" ; then + test -z "$TCL_MODULE_PATH" && \ + TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl /System/Library/Tcl" + elif test "$prefix/lib" != "$libdir"; then +- TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}" ++ TCL_PACKAGE_PATH="${libdir}/tcl8.6 ${prefix}/share/tcl8.6 ${libdir}/tk8.6 ${prefix}/share/tk8.6 ${TCL_PACKAGE_PATH}" + else +- TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}" ++ TCL_PACKAGE_PATH="${libdir}/tcl8.6 ${prefix}/share/tcl8.6 ${libdir}/tk8.6 ${prefix}/share/tk8.6 ${TCL_PACKAGE_PATH}" + fi + + #-------------------------------------------------------------------- diff --git a/tcl-8.6.1-conf.patch b/tcl-8.6.1-conf.patch new file mode 100644 index 0000000..c2588dc --- /dev/null +++ b/tcl-8.6.1-conf.patch @@ -0,0 +1,19 @@ +diff --git a/unix/tcl.m4 b/unix/tcl.m4 +index 194cf90..76773f3 100644 +--- a/unix/tcl.m4 ++++ b/unix/tcl.m4 +@@ -1415,12 +1415,12 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + +- SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' ++ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS} -fPIC -Wl,-soname,${@}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + AS_IF([test $doRpath = yes], [ +- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) ++ CC_SEARCH_FLAGS='']) + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + AS_IF([test "`uname -m`" = "alpha"], [CFLAGS="$CFLAGS -mieee"]) + AS_IF([test $do64bit = yes], [ diff --git a/tcl-8.6.1-hidden.patch b/tcl-8.6.1-hidden.patch new file mode 100644 index 0000000..a37aabf --- /dev/null +++ b/tcl-8.6.1-hidden.patch @@ -0,0 +1,35 @@ +diff --git a/generic/tclInt.h b/generic/tclInt.h +index 380284f..7bb5eb9 100644 +--- a/generic/tclInt.h ++++ b/generic/tclInt.h +@@ -3160,7 +3160,7 @@ MODULE_SCOPE void TclClockInit(Tcl_Interp *interp); + MODULE_SCOPE int TclClockOldscanObjCmd( + ClientData clientData, Tcl_Interp *interp, + int objc, Tcl_Obj *const objv[]); +-MODULE_SCOPE int Tcl_CloseObjCmd(ClientData clientData, ++extern int Tcl_CloseObjCmd(ClientData clientData, + Tcl_Interp *interp, int objc, + Tcl_Obj *const objv[]); + MODULE_SCOPE int Tcl_ConcatObjCmd(ClientData clientData, +@@ -3343,7 +3343,7 @@ MODULE_SCOPE int Tcl_RenameObjCmd(ClientData clientData, + MODULE_SCOPE int Tcl_RepresentationCmd(ClientData clientData, + Tcl_Interp *interp, int objc, + Tcl_Obj *const objv[]); +-MODULE_SCOPE int Tcl_ReturnObjCmd(ClientData clientData, ++extern int Tcl_ReturnObjCmd(ClientData clientData, + Tcl_Interp *interp, int objc, + Tcl_Obj *const objv[]); + MODULE_SCOPE int Tcl_ScanObjCmd(ClientData clientData, +diff --git a/generic/tclPort.h b/generic/tclPort.h +index 12a60db..d817154 100644 +--- a/generic/tclPort.h ++++ b/generic/tclPort.h +@@ -20,7 +20,7 @@ + #if defined(_WIN32) + # include "tclWinPort.h" + #else +-# include "tclUnixPort.h" ++# include "../unix/tclUnixPort.h" + #endif + #include "tcl.h" + diff --git a/tcl-8.6.1-mingwexcept.patch b/tcl-8.6.1-mingwexcept.patch new file mode 100644 index 0000000..ddc3765 --- /dev/null +++ b/tcl-8.6.1-mingwexcept.patch @@ -0,0 +1,96 @@ +--- tcl8.6.1/win/tclWinChan.c.mingw-except 2013-09-19 21:04:17.000000000 +0200 ++++ tcl8.6.1/win/tclWinChan.c 2014-06-13 18:33:41.876684087 +0200 +@@ -127,14 +127,14 @@ + * them by creating an EXCEPTION_REGISTRATION within the activation record. + */ + +-typedef struct EXCEPTION_REGISTRATION { +- struct EXCEPTION_REGISTRATION *link; ++typedef struct TCL_EXCEPTION_REGISTRATION { ++ struct TCL_EXCEPTION_REGISTRATION *link; + EXCEPTION_DISPOSITION (*handler)( + struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); + void *ebp; + void *esp; + int status; +-} EXCEPTION_REGISTRATION; ++} TCL_EXCEPTION_REGISTRATION; + #endif + + /* +@@ -1030,7 +1030,7 @@ + * TCL_WRITABLE to indicate file mode. */ + { + #if defined(HAVE_NO_SEH) && !defined(_WIN64) +- EXCEPTION_REGISTRATION registration; ++ TCL_EXCEPTION_REGISTRATION registration; + #endif + char channelName[16 + TCL_INTEGER_SPACE]; + Tcl_Channel channel = NULL; +--- tcl8.6.1/win/tclWinFCmd.c.mingw-except 2013-09-19 21:04:17.000000000 +0200 ++++ tcl8.6.1/win/tclWinFCmd.c 2014-06-13 18:35:33.091744297 +0200 +@@ -75,14 +75,14 @@ + * them by creating an EXCEPTION_REGISTRATION within the activation record. + */ + +-typedef struct EXCEPTION_REGISTRATION { +- struct EXCEPTION_REGISTRATION *link; ++typedef struct TCL_EXCEPTION_REGISTRATION { ++ struct TCL_EXCEPTION_REGISTRATION *link; + EXCEPTION_DISPOSITION (*handler)( + struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, void *); + void *ebp; + void *esp; + int status; +-} EXCEPTION_REGISTRATION; ++} TCL_EXCEPTION_REGISTRATION; + + #endif + +@@ -176,7 +176,7 @@ + * (native). */ + { + #if defined(HAVE_NO_SEH) && !defined(_WIN64) +- EXCEPTION_REGISTRATION registration; ++ TCL_EXCEPTION_REGISTRATION registration; + #endif + DWORD srcAttr, dstAttr; + int retval = -1; +@@ -563,7 +563,7 @@ + const TCHAR *nativeDst) /* Pathname of file to copy to (native). */ + { + #if defined(HAVE_NO_SEH) && !defined(_WIN64) +- EXCEPTION_REGISTRATION registration; ++ TCL_EXCEPTION_REGISTRATION registration; + #endif + int retval = -1; + +--- tcl8.6.1/win/tclWin32Dll.c.mingw-except 2013-09-19 21:04:17.000000000 +0200 ++++ tcl8.6.1/win/tclWin32Dll.c 2014-06-13 18:29:12.274198707 +0200 +@@ -32,14 +32,14 @@ + * them by creating an EXCEPTION_REGISTRATION within the activation record. + */ + +-typedef struct EXCEPTION_REGISTRATION { +- struct EXCEPTION_REGISTRATION *link; ++typedef struct TCL_EXCEPTION_REGISTRATION { ++ struct TCL_EXCEPTION_REGISTRATION *link; + EXCEPTION_DISPOSITION (*handler)( + struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); + void *ebp; + void *esp; + int status; +-} EXCEPTION_REGISTRATION; ++} TCL_EXCEPTION_REGISTRATION; + #endif + + /* +@@ -662,7 +662,7 @@ + + # else + +- EXCEPTION_REGISTRATION registration; ++ TCL_EXCEPTION_REGISTRATION registration; + + /* + * Execute the CPUID instruction with the given index, and store results diff --git a/tcl-8.6.1-nativezlib.patch b/tcl-8.6.1-nativezlib.patch new file mode 100644 index 0000000..ecd550a --- /dev/null +++ b/tcl-8.6.1-nativezlib.patch @@ -0,0 +1,23 @@ +--- tcl8.6.1/win/configure.in.nativezlib 2014-06-13 19:22:02.929215500 +0200 ++++ tcl8.6.1/win/configure.in 2014-06-13 19:26:28.409707392 +0200 +@@ -135,7 +135,7 @@ + tcl_ok=yes + ]) + AS_IF([test "$tcl_ok" = "yes"], [ +- AC_SUBST(ZLIB_DLL_FILE,[\${ZLIB_DLL_FILE}]) ++ #dnl AC_SUBST(ZLIB_DLL_FILE,[\${ZLIB_DLL_FILE}]) + AS_IF([test "$do64bit" = "yes"], [ + AS_IF([test "$GCC" == "yes"],[ + AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR}/win64/libz.dll.a]) +@@ -146,8 +146,10 @@ + AC_SUBST(ZLIB_LIBS,[\${ZLIB_DIR}/win32/zdll.lib]) + ]) + ], [ +- AC_SUBST(ZLIB_OBJS,[\${ZLIB_OBJS}]) ++ AC_SUBST(ZLIB_OBJS,[\${ZLIB_OBJS}]) + ]) ++AC_SUBST(ZLIB_DLL_FILE,[]) ++AC_SUBST(ZLIB_OBJS,[-lz]) + AC_DEFINE(HAVE_ZLIB, 1, [Is there an installed zlib?]) + + AC_CHECK_TYPE([intptr_t], [ diff --git a/tcl-mingw-w64-compatibility.patch b/tcl-mingw-w64-compatibility.patch index 76a8643..f8e7075 100644 --- a/tcl-mingw-w64-compatibility.patch +++ b/tcl-mingw-w64-compatibility.patch @@ -1,20 +1,20 @@ ---- generic/tclPosixStr.c.orig 2011-04-16 14:15:17.040226044 +0200 -+++ generic/tclPosixStr.c 2011-04-16 14:16:16.798302930 +0200 -@@ -337,7 +337,7 @@ - #if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP)) - case EOPNOTSUPP: return "EOPNOTSUPP"; +--- generic/tclPosixStr.c.mingw-w64 2014-06-13 18:24:26.443128384 +0200 ++++ generic/tclPosixStr.c 2014-06-13 18:27:17.674963045 +0200 +@@ -344,7 +344,7 @@ + #ifdef EOTHER + case EOTHER: return "EOTHER"; #endif -#if defined(EOVERFLOW) && (!defined(EFBIG) || (EOVERFLOW != EFBIG)) && (!defined(EINVAL) || (EOVERFLOW != EINVAL)) +#if defined(EOVERFLOW) && (!defined(EFBIG) || (EOVERFLOW != EFBIG)) && (!defined(EINVAL) || (EOVERFLOW != EINVAL)) && !defined(E2BIG) case EOVERFLOW: return "EOVERFLOW"; #endif - #ifdef EPERM -@@ -785,7 +785,7 @@ - #if defined(EOPNOTSUPP) && (!defined(ENOTSUP) || (ENOTSUP != EOPNOTSUPP)) - case EOPNOTSUPP: return "operation not supported on socket"; + #ifdef EOWNERDEAD +@@ -804,7 +804,7 @@ + #ifdef EOTHER + case EOTHER: return "other error"; #endif -#if defined(EOVERFLOW) && (!defined(EFBIG) || (EOVERFLOW != EFBIG)) && (!defined(EINVAL) || (EOVERFLOW != EINVAL)) +#if defined(EOVERFLOW) && (!defined(EFBIG) || (EOVERFLOW != EFBIG)) && (!defined(EINVAL) || (EOVERFLOW != EINVAL)) && !defined(E2BIG) case EOVERFLOW: return "file too big"; #endif - #ifdef EPERM + #ifdef EOWNERDEAD diff --git a/tcl-nativetclsh.patch b/tcl-nativetclsh.patch index e27abcf..c127dd1 100644 --- a/tcl-nativetclsh.patch +++ b/tcl-nativetclsh.patch @@ -1,27 +1,35 @@ ---- win/Makefile.in.orig 2009-05-23 14:03:18.000000000 +0200 -+++ win/Makefile.in 2009-05-23 14:05:10.000000000 +0200 -@@ -385,7 +385,7 @@ +--- win/Makefile.in.nativetclsh 2014-06-13 18:21:05.624458350 +0200 ++++ win/Makefile.in 2014-06-13 18:23:00.069689529 +0200 +@@ -700,7 +700,7 @@ - winhelp: $(ROOT_DIR)/tools/man2help.tcl $(MAN2TCL) + test-tcl: binaries $(TCLSH) $(CAT32) $(TEST_DLL_FILE) TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ -- ./$(TCLSH) "$(ROOT_DIR_NATIVE)"/tools/man2help.tcl tcl "$(VER)" $(TCL_DOCS) -+ tclsh$(DOTVER) "$(ROOT_DIR_NATIVE)"/tools/man2help.tcl tcl "$(VER)" $(TCL_DOCS) - hcw /c /e tcl.hpj +- ./$(TCLSH) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \ ++ tclsh$(DOTVER) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \ + -load "package ifneeded Tcltest ${VERSION}@TCL_PATCH_LEVEL@ [list load [file normalize ${TEST_DLL_FILE}] Tcltest]; \ + package ifneeded dde 1.4.0 [list load [file normalize ${DDE_DLL_FILE}] dde]; \ + package ifneeded registry 1.3.0 [list load [file normalize ${REG_DLL_FILE}] registry]" | ./$(CAT32) +@@ -708,7 +708,7 @@ + # Useful target to launch a built tclsh with the proper path,... + runtest: binaries $(TCLSH) $(TEST_DLL_FILE) + @TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ +- ./$(TCLSH) $(TESTFLAGS) -load "package ifneeded Tcltest ${VERSION}@TCL_PATCH_LEVEL@ [list load [file normalize ${TEST_DLL_FILE}] Tcltest]; \ ++ tclsh$(DOTVER) $(TESTFLAGS) -load "package ifneeded Tcltest ${VERSION}@TCL_PATCH_LEVEL@ [list load [file normalize ${TEST_DLL_FILE}] Tcltest]; \ + package ifneeded dde 1.4.0 [list load [file normalize ${DDE_DLL_FILE}] dde]; \ + package ifneeded registry 1.3.0 [list load [file normalize ${REG_DLL_FILE}] registry]" $(SCRIPT) - $(MAN2TCL): $(ROOT_DIR)/tools/man2tcl.c -@@ -658,13 +658,13 @@ - install-tzdata: - @echo "Installing time zone data" - @TCL_LIBRARY="${LIBRARY_DIR}"; export TCL_LIBRARY; \ -- ./$(TCLSH) "$(ROOT_DIR)/tools/installData.tcl" \ -+ tclsh$(DOTVER) "$(ROOT_DIR)/tools/installData.tcl" \ - "$(ROOT_DIR)/library/tzdata" "$(SCRIPT_INSTALL_DIR)/tzdata" +@@ -716,12 +716,12 @@ + # `make shell SCRIPT=foo.tcl` + shell: binaries + @TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \ +- ./$(TCLSH) $(SCRIPT) ++ tclsh$(DOTVER) $(SCRIPT) - install-msgs: - @echo "Installing message catalogs" - @TCL_LIBRARY="${LIBRARY_DIR}"; export TCL_LIBRARY; \ -- ./$(TCLSH) "$(ROOT_DIR)/tools/installData.tcl" \ -+ tclsh$(DOTVER) "$(ROOT_DIR)/tools/installData.tcl" \ - "$(ROOT_DIR)/library/msgs" "$(SCRIPT_INSTALL_DIR)/msgs" + # This target can be used to run tclsh inside either gdb or insight + gdb: binaries + @echo "set env TCL_LIBRARY=$(LIBRARY_DIR)" > gdb.run +- gdb ./$(TCLSH) --command=gdb.run ++ gdb tclsh$(DOTVER) --command=gdb.run + rm gdb.run - install-doc: doc + depend: