| Ticket UUID: | d3f41333aa42ca4db36821fddfae90342259381e | |||
| Title: | Compiling for Tcl 8 with Tcl 9 headers redefines typedefs | |||
| Type: | Bug | Version: | 3.0.4 | |
| Submitter: | jmroot | Created on: | 2026-04-13 23:08:01 | |
| Subsystem: | 80. Thread Package | Assigned To: | jan.nijtmans | |
| Priority: | 5 Medium | Severity: | Important | |
| Status: | Closed | Last Modified: | 2026-04-21 03:26:57 | |
| Resolution: | Fixed | Closed By: | jmroot | |
| Closed on: | 2026-04-21 03:26:57 | |||
| Description: |
When using a pre-C11 compiler to build thread for Tcl 8 using the Tcl 9 headers, as is done in the main Tcl 9.0.3 distribution, compilation fails:
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/threadSvCmd.c:16:
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThreadInt.h:18:
/opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThread.h:33:26: error: redefinition of typedef 'Tcl_ObjCmdProc' is invalid in C [-Wtypedef-redefinition]
typedef Tcl_ObjCmdProc Tcl_ObjCmdProc2;
^
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/threadSvCmd.c:16:
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThreadInt.h:18:
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThread.h:23:
/opt/bblocal/var/buildworker/base/build/vendor/tcl/generic/tcl.h:604:25: note: instantiated from:
#define Tcl_ObjCmdProc2 Tcl_ObjCmdProc
^
/opt/bblocal/var/buildworker/base/build/vendor/tcl/generic/tcl.h:590:14: note: previous definition is here
typedef int (Tcl_ObjCmdProc) (void *clientData, Tcl_Interp *interp,
^
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/threadSvCmd.c:16:
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThreadInt.h:18:
/opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThread.h:35:15: error: redefinition of typedef 'Tcl_Size' is invalid in C [-Wtypedef-redefinition]
typedef int Tcl_Size;
^
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/threadSvCmd.c:16:
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThreadInt.h:18:
In file included from /opt/bblocal/var/buildworker/base/build/vendor/tcl/pkgs/thread3.0.4/generic/tclThread.h:23:
/opt/bblocal/var/buildworker/base/build/vendor/tcl/generic/tcl.h:326:17: note: previous definition is here
typedef int Tcl_Size;
^
| |||
| User Comments: |
jmroot added on 2026-04-21 03:26:57:
Thank you. Confirming that Thread builds fine with the current core-9-0-branch. jan.nijtmans added on 2026-04-20 13:27:54: This should (finally) be fixed here jmroot added on 2026-04-18 01:33:25: That fixed the Tcl_Size error but not the Tcl_ObjCmdProc one. Also, itcl is failing to build after that change. Should I open a separate ticket for that? jan.nijtmans added on 2026-04-17 08:17:34: This should be fixed with this commit in the Tcl repository. Can you confirm it works? | |||
Home
Timeline
Branches
Tags
Tickets
Wiki