Overview
Artifact ID: | eef285105a0c12763b17bf62135a4041bb3a4979 |
---|---|
Ticket: | 180810acbe76aefc43355afa956730d056d25a24
Tcl compile error for win build |
User & Date: | anonymous 2013-11-09 16:28:58 |
Changes
- assignee changed to: "nobody"
- closer changed to: "nobody"
- cmimetype changed to: "text/plain"
- comment changed to:
The macro EXCEPTION_REGISTRATION has to be replaced by TCL_EXCEPTION_REGISTRATION in the files tclWin32Dll.c, tclWinChan.c and tclWinFCmd.c Otherwise make stops with an error. Alexey Pavlov has created an appropriate patch for Tcl 8.6.1 https://github.com/Alexpux/mingw-builds/blob/master/patches/tcl/tcl-8.6.1-mingwexcept.patch For a 8.5.15 patch see the lines below: --- tclWin32Dll.c.orig 2013-08-30 17:58:40.000000000 +0200 +++ tclWin32Dll.c 2013-11-08 08:55:00.742333794 +0100 @@ -53,14 +53,14 @@ static int platformId; /* Running under * 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 /* @@ -1086,7 +1086,7 @@ TclWinCPUID( # else - EXCEPTION_REGISTRATION registration; + TCL_EXCEPTION_REGISTRATION registration; /* * Execute the CPUID instruction with the given index, and store results --- tclWinChan.c.orig 2013-08-30 17:58:40.000000000 +0200 +++ tclWinChan.c 2013-11-08 09:05:57.237807102 +0100 @@ -127,14 +127,14 @@ static Tcl_ChannelType fileChannelType = * 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_MakeFileChannel( * 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; --- tclWinFCmd.c.orig 2013-08-30 17:58:40.000000000 +0200 +++ tclWinFCmd.c 2013-11-08 09:09:19.541771741 +0100 @@ -72,17 +72,17 @@ CONST TclFileAttrProcs tclpFileAttrProcs /* * Unlike Borland and Microsoft, we don't register exception handlers by * pushing registration records onto the runtime stack. Instead, we register - * them by creating an EXCEPTION_REGISTRATION within the activation record. + * them by creating an TCL_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 @@ DoRenameFile( * (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 @@ DoCopyFile( 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;
- foundin changed to: "8.5.15"
- is_private changed to: "0"
- login: "anonymous"
- priority changed to: "5 Medium"
- private_contact changed to: "98c5a4b8c6c847840eea2e9bf0d223f33d217646"
- resolution changed to: "None"
- severity changed to: "Important"
- status changed to: "Open"
- submitter changed to: "anonymous"
- subsystem changed to: "53. Configure and Build Tools"
- title changed to: "Tcl compile error for win build"
- type changed to: "Bug"