commit 0911f94570f2049f15ca6e8f583d0b6f75a1ccd4 Author: Dimitry Andric Date: Thu Sep 9 20:01:17 2021 +0200 lang/tcl8[56]: apply upstream fix for unsafe buffer lifetime This gets optimized differently with clang 13, causing the sqlite3 build to break due to its tcl scripts outputting garbled generated code. Upstream: https://core.tcl-lang.org/tcl/info/24b9181478 diff --git a/lang/tcl85/files/patch-generic_tclIO.c b/lang/tcl85/files/patch-generic_tclIO.c new file mode 100644 index 000000000000..86e683a58fae --- /dev/null +++ b/lang/tcl85/files/patch-generic_tclIO.c @@ -0,0 +1,21 @@ +https://core.tcl-lang.org/tcl/info/24b9181478 + +--- ../generic/tclIO.c.orig 2020-12-11 17:46:22 UTC ++++ ../generic/tclIO.c +@@ -3765,6 +3765,7 @@ Write( + /* State info for channel */ + char *nextNewLine = NULL; + int endEncoding, saved = 0, total = 0, flushed = 0, needNlFlush = 0; ++ char safe[BUFFER_PADDING]; + + if (srcLen) { + WillWrite(chanPtr); +@@ -3783,7 +3784,7 @@ Write( + + while (srcLen + saved + endEncoding > 0) { + ChannelBuffer *bufPtr; +- char *dst, safe[BUFFER_PADDING]; ++ char *dst; + int result, srcRead, dstLen, dstWrote, srcLimit = srcLen; + + if (nextNewLine) { diff --git a/lang/tcl86/files/patch-generic_tclIO.c b/lang/tcl86/files/patch-generic_tclIO.c new file mode 100644 index 000000000000..a64bf3945b26 --- /dev/null +++ b/lang/tcl86/files/patch-generic_tclIO.c @@ -0,0 +1,21 @@ +https://core.tcl-lang.org/tcl/info/24b9181478 + +--- generic/tclIO.c.orig 2020-12-11 17:46:22 UTC ++++ generic/tclIO.c +@@ -4277,6 +4277,7 @@ Write( + /* State info for channel */ + char *nextNewLine = NULL; + int endEncoding, saved = 0, total = 0, flushed = 0, needNlFlush = 0; ++ char safe[BUFFER_PADDING]; + + if (srcLen) { + WillWrite(chanPtr); +@@ -4295,7 +4296,7 @@ Write( + + while (srcLen + saved + endEncoding > 0) { + ChannelBuffer *bufPtr; +- char *dst, safe[BUFFER_PADDING]; ++ char *dst; + int result, srcRead, dstLen, dstWrote, srcLimit = srcLen; + + if (nextNewLine) {