Building Tcl8.7a5 for win7x64 with 64-bit Mingw gcc under Msys2

Skip to first unread message


Aug 28, 2022, 3:54:10 PMAug 28
On a whim I attempted to build Tcl8.7a5 but ran into a few issues which
may or may not be bugs. I'll list them here for you experts to decide.

#1. As I have not paid attention to any previous discussions about Tcl
8.7, I was unaware of the purpose of '--enable-zipfs' for configure. It
sounded as though it was a new language feature for 8.7 and it defaults
to 'yes'. I now know that it is used to embed the Tcl library into
tcl87.dll (and maybe a static tclsh87.exe) by appending a ZIP archive to
the end of the DLL/EXE.

Here's the problem: infozip is really, really old... ca. late 2000's. My
copy of 'zip' is from a distribution for windows called 'GnuWin32'. The
EXE dates to 2008. If I remember correctly, the build failed on a 'zip
-A' step with an error message about the ZIP directory. (I don't have
the exact error any longer.)

When I force the build to compile 'minizip', the ZIP stuff worked.

My suggestion would be that you always build and use minizip to avoid
any dependencies on the very old infozip program.

#2. This one is due to my setup. My Tcl installation dates to the last
ActiveState release I've just been replacing the older stuff
with the later as I've moved up through 8.6.11. My build script attempts
to patch 'lib/tcl8.7/init.tcl' with the ActiveState additions. I'm not
sure if I've ever actually used them but I figured "why not". With the
Tcl library ZIP'ed and appended to the DLL/EXE, it is impossible to
replace 'init.tcl' with a modified version after the ZIP is appended --
I'd need to patch init.tcl prior to building Tcl and I prefer to keep
the source distribution unmodified and only patch the installed targets.

So, that's my problem. I solved it with '--disable-zipfs' since it's not
a language feature but an optimization feature.

#3. has '-l87' instead of '-ltk87'. This is a bug.

#4. The scripts (tools/man2help.tcl and man2help2.tcl) to generate the
windows help file are missing. In addition, the 'pkgs' and 'html'
directories are missing the DB packages, sqlite, etc. Perhaps this is
because it is Tcl8.7 <alpha> 5?

All the above is FYI to give feedback on tcl8.7a5. Hope it is useful.

computerjock AT mail DOT com
Reply all
Reply to author
0 new messages