summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/tcltk8/tcl8/0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch
blob: 18599928385cd744433488d5931e6a192c26bf10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From ff508f2e6786df697876140f21855ecb92a3ed36 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Fri, 18 Aug 2023 12:25:11 +0200
Subject: [PATCH] generic/tcl.h: use Tcl_WideInt for seconds in Tcl_Time

This ensures the value will not overflow, particularly on 32 bit systems
in 2038, where long will.

This patch was proposed at https://core.tcl-lang.org/tcl/tktview/86dd172271
Upstream was generally supportive of the fix, but they merged a much more
elaborate version of it for tcl 9.x (released in 9.0.0), and declined
to merge it into 8.x due to ABI breakage (sadly this change is in a public header).
But we can carry the fix downstream.

Upstream-Status: Inappropriate [see above]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 generic/tcl.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/generic/tcl.h b/generic/tcl.h
index 3a4622e..6204c57 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -1418,7 +1418,7 @@ typedef enum {
  */
 
 typedef struct Tcl_Time {
-    long sec;			/* Seconds. */
+    Tcl_WideInt sec;			/* Seconds. */
     long usec;			/* Microseconds. */
 } Tcl_Time;