From: Peter Eisentraut Date: Thu, 16 Jul 2026 10:38:37 +0000 (+0200) Subject: Revert "Make PL/Tcl require Tcl 8.6 or later" X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f4f77f557bb1a173f82be42770a28758732f4cc0;p=thirdparty%2Fpostgresql.git Revert "Make PL/Tcl require Tcl 8.6 or later" This reverts commit b6d3ccf2f5f1a179e25e277bae3f432cc084ce58. macOS still ships with Tcl 8.5. --- diff --git a/config/tcl.m4 b/config/tcl.m4 index d226ef99d05..9de31a57156 100644 --- a/config/tcl.m4 +++ b/config/tcl.m4 @@ -4,7 +4,7 @@ AC_DEFUN([PGAC_PATH_TCLSH], -[PGAC_PATH_PROGS(TCLSH, [tclsh tcl tclsh8.6 tclsh86]) +[PGAC_PATH_PROGS(TCLSH, [tclsh tcl tclsh8.6 tclsh86 tclsh8.5 tclsh85 tclsh8.4 tclsh84]) AC_ARG_VAR(TCLSH, [Tcl interpreter program (tclsh)])dnl if test x"$TCLSH" = x""; then AC_MSG_ERROR([Tcl shell not found]) diff --git a/configure b/configure index 51f160bd218..d42a7a794ff 100755 --- a/configure +++ b/configure @@ -19003,7 +19003,7 @@ fi # Check for Tcl configuration script tclConfig.sh if test "$with_tcl" = yes; then if test -z "$TCLSH"; then - for ac_prog in tclsh tcl tclsh8.6 tclsh86 + for ac_prog in tclsh tcl tclsh8.6 tclsh86 tclsh8.5 tclsh85 tclsh8.4 tclsh84 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index ac7e5c44576..e4159522e18 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -267,7 +267,7 @@ To build the PL/Tcl procedural language, you of course need a Tcl installation. The minimum required version is - Tcl 8.6. + Tcl 8.4. @@ -1938,7 +1938,8 @@ build-postgresql: Tcl interpreter program. This will be used to determine the dependencies for building PL/Tcl. If this is not set, the following are probed in this - order: tclsh tcl tclsh8.6 tclsh86. + order: tclsh tcl tclsh8.6 tclsh86 tclsh8.5 tclsh85 + tclsh8.4 tclsh84. diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c index c8a9363aaa1..85e83bbf1e3 100644 --- a/src/pl/tcl/pltcl.c +++ b/src/pl/tcl/pltcl.c @@ -50,9 +50,14 @@ PG_MODULE_MAGIC_EXT( ((TCL_MAJOR_VERSION > maj) || \ (TCL_MAJOR_VERSION == maj && TCL_MINOR_VERSION >= min)) -/* Insist on Tcl >= 8.6 */ -#if !HAVE_TCL_VERSION(8,6) -#error PostgreSQL only supports Tcl 8.6 or later. +/* Insist on Tcl >= 8.4 */ +#if !HAVE_TCL_VERSION(8,4) +#error PostgreSQL only supports Tcl 8.4 or later. +#endif + +/* Hack to deal with Tcl 8.6 const-ification without losing compatibility */ +#ifndef CONST86 +#define CONST86 #endif #if !HAVE_TCL_VERSION(8,7) @@ -361,7 +366,7 @@ pltcl_FinalizeNotifier(ClientData clientData) } static void -pltcl_SetTimer(const Tcl_Time *timePtr) +pltcl_SetTimer(CONST86 Tcl_Time *timePtr) { } @@ -387,7 +392,7 @@ pltcl_ServiceModeHook(int mode) } static int -pltcl_WaitForEvent(const Tcl_Time *timePtr) +pltcl_WaitForEvent(CONST86 Tcl_Time *timePtr) { return 0; }