From 41a2b56ae80bd13bc4cb09c48c6f873fd4382e05 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 23 Jun 2022 08:59:27 +0200 Subject: [PATCH] PL/Tcl: Don't link with -lc explicitly It has been reported that PL/Tcl built on macOS with GCC >=11 crashes. The reason is that there is a hash_search() function in the operating system's libraries, and that ends up being called instead of the one in postgres. This has something to do with how the linker resolves references between the various possibilities it has been given, and somehow something changed that it is now picking that one in this configuration. We found that removing the -lc from the link command line fixes this problem. The -lc was introduced a long time ago in commit e3909672f12e0ddf3e202b824fda068ad2195ef2, and we think the reasons might be obsolete, so we decided that we'll try to just remove it and see if any problems arise. Discussion: https://www.postgresql.org/message-id/flat/a78c847a-4f79-9286-be99-e819e9e4139e%40enterprisedb.com --- src/pl/tcl/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pl/tcl/Makefile b/src/pl/tcl/Makefile index 25e65189b60..314f9b2eec9 100644 --- a/src/pl/tcl/Makefile +++ b/src/pl/tcl/Makefile @@ -15,7 +15,7 @@ override CPPFLAGS := -I. -I$(srcdir) $(TCL_INCLUDE_SPEC) $(CPPFLAGS) # On Windows, we don't link directly with the Tcl library; see below ifneq ($(PORTNAME), win32) -SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) -lc +SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) endif PGFILEDESC = "PL/Tcl - procedural language"