]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
tcl8: add a patch to address Y2038 issues (tcl 9.x doesn't need it)
authorAlexander Kanavin <alex@linutronix.de>
Wed, 22 Jan 2025 10:03:23 +0000 (11:03 +0100)
committerRoss Burton <ross.burton@arm.com>
Thu, 23 Jan 2025 11:52:26 +0000 (11:52 +0000)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@arm.com>
meta/recipes-devtools/tcltk8/tcl8/0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch [new file with mode: 0644]
meta/recipes-devtools/tcltk8/tcl8_8.6.16.bb

diff --git a/meta/recipes-devtools/tcltk8/tcl8/0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch b/meta/recipes-devtools/tcltk8/tcl8/0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch
new file mode 100644 (file)
index 0000000..1859992
--- /dev/null
@@ -0,0 +1,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;
index c8f4b5df2aa38cac193d17b0294ba03ef2586d8f..076bbc906c4211cb11116a7bb1d1ca1ca59ce933 100644 (file)
@@ -23,6 +23,7 @@ SRC_URI = "${BASE_SRC_URI} \
            file://alter-includedir.patch \
            file://interp.patch \
            file://run-ptest \
+           file://0001-generic-tcl.h-use-Tcl_WideInt-for-seconds-in-Tcl_Tim.patch \
            "
 SRC_URI[sha256sum] = "3b371386a9a928eecdbf263bcab7d6a531e620ca3fbab4fdeeb3d6a9a56f38e9"