If you are running on Windows and want to use freewrapTCLSH to create a linux binary, the -w flag does not work as expected.
Suppose your windows freewrap binary is freewrapTCLSH.exe and is in your PATH and your linux binary is freewrapTCLSH in the current directory along with your script file.
If you do
freewrapTCLSH -w freewrapTCLSH myscript.tcl
You get two files created: "myscript" and "myscript.zip". "myscript" is simply a copy of the linux binary "freewrapTCLSH" while "myscript.zip" is the wrapped files that should have gone into the wrapped binary. If you don't notice "myscript.zip" (as I didn't..) you copy the "myscript" binary to your linux host and are baffled when it doesn't do anything except funtion as a tcl shell.
However, if you do
rename freewrapTCLSH freewrapTCLSH.exe freewrapTCLSH -w freewrapTCLSH.exe myscript.tcl
just one output file is produced: "myscript.exe". Then you can
rename myscript.exe myscript
and copy it to your linux host and run it.
So, in summary, the bug is that the windows freewrap requires the stub it uses to have a .exe suffix.