Tk Source Code

View Ticket
Login
Ticket UUID: ff5417505be90f5abbbf6ea4c7a3ac3bae6bc8b1
Title: xlib/X11/X.h not compilable on x64 Windows, using gcc
Type: Bug Version: current
Submitter: anonymous Created on: 2024-05-06 05:22:04
Subsystem: (unused) Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Critical
Status: Closed Last Modified: 2024-05-06 07:36:24
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2024-05-06 07:36:24
Description:
xlib/X11/X.h needs the following patch in order for it to compile on 64-bit windows, when using x64 builds of mingw-w64 ports of gcc-13 (and probably earlier versions of gcc, too).

######################################
--- X.h_tcl_tk  2024-05-06 11:07:06.086219000 +1000
+++ X.h 2024-05-06 11:43:06.491410400 +1000
@@ -65,7 +65,11 @@
 #  ifndef _XTYPEDEF_XID
 #    define _XTYPEDEF_XID
 #    ifdef _WIN64
+#      if defined(_MSC_VER)
 typedef unsigned __int64 XID;
+#      else
+typedef unsigned long long XID;
+#      endif
 #    else
 typedef unsigned long XID;
 #    endif

######################################

As it stands, the "__int64" type is unknown to these mingw_w64 ports because (I think) _mingw.h has not been included.

Cheers,
Rob
User Comments: jan.nijtmans added on 2024-05-06 07:36:24:

Fixed [cf6c186a3d59ea3f|here]. Thanks for the report.

Starting with Tk 8.7/9.0, we no longer support VS < 2015, which means long long is available always. No need to use __int64 at all any more, so this is a good change anyway.