| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TclpCheckStackSpace, _except_checkstackspace_handler,
TclWinCPUID, _except_TclWinCPUID_detach_handler):
* win/tclWinChan.c (Tcl_MakeFileChannel,
_except_makefilechannel_handler):
* win/tclWinFCmd.c (DoRenameFile,
_except_dorenamefile_handler, DoCopyFile,
_except_docopyfile_handler):
Rework pushing of exception handler function pointer
so that compiling with gcc -O3 works. Remove empty
function call to avoid compiler warning. Mark the
DllMain function as noinline to avoid compiler
error from duplicated asm labels in generated code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
build works again.
* generic/tclInt.decls: Changes to the tests for
* generic/tclIntPlatDecls.h: clock frequency in Tcl_WinTime
* generic/tclStubInit.c: so that any clock frequency
* tests/platform.test (platform-1.3): is accepted provided that
* win/tclWin32Dll.c (TclWinCPUID): all CPU's in the system share
* win/tclWinTest.c (TestwincpuidCmd): a common chip, and hence,
* win/tclWinTime.c (Tcl_GetTime): presumably, a common clock. This
change necessitated a small burst of assembly code to read CPU ID
information, which was added as TclWinCPUID in the internal Stubs. To
test this code in the common case of a single-processor machine, a
'testwincpuid' command was added to tclWinTest.c, and a test case in
platform.test. Thanks to Jeff Godfrey and Richard Suchenwirth for
reporting this bug. [Bug #976722]
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tcl_Finalize called from DllMain's DLL_PROCESS_DETACH. We can't
be 100% assured that Tcl is being unloaded by the OS in a stable
condition and we need to protect the exit handlers should the
stack be in a hosed state. AT&T style assembly for SEH under
MinGW included, too. [Patch 858493]
Also added DisableThreadLibraryCalls() for the DLL_PROCESS_ATTACH
case. We're not interested in knowing about DLL_THREAD_ATTACH, so
disable the notices.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinChan.c (Tcl_MakeFileChannel, squelch_warnings):
* win/tclWinFCmd.c (DoRenameFile, DoCopyFile, squelch_warnings):
Re-implement inline ASM SEH handlers for gcc.
The esp and ebp registers are now saved on the
stack instead of in global variables so that
the code is thread safe. Add additional checks
when TCL_MEM_DEBUG is defined to be sure the
values were recovered from the stack properly.
Remove squelch_warnings functions and add
a dummy call in the handler methods to squelch
compiler warnings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/configure.in: Define HAVE_ALLOCA_GCC_INLINE
when we detect that no alloca function is found
in malloc.h and we are compiling with GCC.
Remove HAVE_NO_ALLOC_DECL define.
* win/tclWin32Dll.c (TclpCheckStackSpace):
Don't define alloca as a cdecl function.
Doing this caused a tricky runtime bug because
the _alloca function expects the size argument
to be passed in a register and not on the stack.
To fix this problem, we use inline ASM when
compiling with gcc to invoke _alloca with the
size argument loaded into a register.
|
|
|
|
|
|
|
|
|
|
|
| |
* win/configure.in:
* win/tclWin32Dll.c (TclpCheckStackSpace): Rework
the SEH exception handler logic to avoid using
the stack since alloca will modify the stack.
This was causing a nasty bug that would set the
exception handler to 0 because it tried to pop
the previous exception handler off the top of
the stack.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compiler warnings from SEH ASM code.
* win/tclWinChan.c (squelch_warnings): Squelch
compiler warnings from SEH ASM code.
* win/tclWinDde.c: Add casts to avoid compiler
warnings. Pass pointer to DWORD instead of int
to avoid compiler warnings.
* win/tclWinFCmd.c (squelch_warnings): Add casts
and fixup decls to avoid compiler warnings.
Squelch compiler warnings from SEH ASM code.
* win/tclWinFile.c: Add casts and fixup decls
to avoid compiler warnings. Remove unused variable.
* win/tclWinNotify.c: Declare as DWORD instead
of int to avoid compiler warning.
* win/tclWinReg.c: Add casts to avoid compiler
warning. Fix assignment in if expression bug.
* win/tclWinSerial.c: Add casts to avoid compiler
warnings. Remove unused variable.
* win/tclWinSock.c: Add casts and fixup decls
to avoid compiler warnings.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclIntPlatDecls.h: regen
* generic/tclInt.decls: added TclWinResetInterface
* win/tclWin32Dll.c (TclWinResetInterfaces):
* win/tclWinInit.c (TclpSetInitialEncodings, WinEncodingsCleanup):
add exit handler that resets the encoding information to a state
where we can reuse Tcl. Following these changes, it is possible
to reuse Tcl (following Tcl_FindExecutable or Tcl_CreateInterp)
following a Tcl_Finalize.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/configure.in: Add configure time test for SEH
support in the compiler.
* win/tclWin32Dll.c (ESP, EBP, TclpCheckStackSpace,
_except_checkstackspace_handler):
* win/tclWinChan.c (ESP, EBP, Tcl_MakeFileChannel,
_except_makefilechannel_handler):
* win/tclWinFCmd.c (ESP, EBP, DoRenameFile,
_except_dorenamefile_handler,
DoCopyFile, _except_docopyfile_handler):
Implement SEH support under gcc using inline asm.
Tcl and Tk should now compile with Mingw 1.1. [Patch 525746]
|
|
|
|
|
|
|
| |
* win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Replace
hard coded constants with Win32 symbolic names.
Move control flow statements out of __try blocks
since the documentation indicates it is frowned upon.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
restored to return (char *): Tcl_DStringAppend,
Tcl_DStringAppendElement, Tcl_JoinPath, Tcl_TranslateFileName,
Tcl_ExternalToUtfDString, Tcl_UtfToExternalDString,
Tcl_UniCharToUtfDString, Tcl_GetCwd, Tcl_WinTCharToUtf. Also
restored Tcl_WinUtfToTChar to return (TCHAR *) and
Tcl_UtfToUniCharDString to return (Tcl_UniChar *). Modified
some callers. This change recognizes that Tcl_DStrings are
de-facto white-box objects.
* generic/tclCmdMZ.c: corrected use of C++-style comment.
|
|
|
|
|
|
|
| |
* [Patch 506818] Updated interfaces of generic/tclHash.c (TIP 27).
* [Patch 506807] Updated interfaces of generic/tclObj.c (TIP 27).
* [Patch 507304] Updated interfaces of win/tclWin32.c (TIP 27).
* Update all callers.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclIntPlatDecls.h:
* generic/tclStubInit.c:
* win/tclWin32Dll.c: removed TclWinSynchSpawn (vestige of Win32s
support).
* win/tclWinReg.c: made use of TclWinGetPlatformId instead of
getting info again
* win/tclWinPort.h:
* win/Makefile.in:
* win/configure.in:
* win/tcl.m4: Added support for gcc/mingw on Windows [Bug: 4234]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* win/tclWinChan.c:
* win/tclWinFCmd.c:
* win/tclWinInit.c:
* win/tclWinPipe.c:
* win/tclWinSock.c: removed all code that supported Win32s. It
was no longer officially supported, and likely didn't work anyway.
* win/makefile.vc: removed 16 bit stuff, cleaned up.
* win/tcl16.rc:
* win/tclWin16.c:
* win/winDumpExts.c: these files have been removed from the
source tree (no longer necessary to build)
* win/aclocal.m4: made it just include tcl.m4
|
|
|
|
|
|
| |
* win/tclWin32Dll.c: Changed uses of "try" to "__try", since that
is the actual keyword. This eliminates the need for some -D flags
from the makefile.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|