BUG #18672: failing to link postgresql
The following bug has been logged on the website:
Bug reference: 18672
Logged by: Thierry Bastian
Email address: bastian.thierry@laposte.net
PostgreSQL version: 16.4
Operating system: macOS
Description:
In short, in src/interfaces/libpq/Makefile there is a check for lib-a to not
contain a call to exit. But the issue is that on macOS, it still uses
_atexit and pthread_exitm which are fine.
My fix to this is to apply the following patch:
diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile
index 0919d8f..65b07d3 100644
--- a/src/interfaces/libpq/Makefile
+++ b/src/interfaces/libpq/Makefile
@@ -118,7 +118,7 @@ backend_src = $(top_srcdir)/src/backend
libpq-refs-stamp: $(shlib)
ifneq ($(enable_coverage), yes)
ifeq (,$(filter aix solaris,$(PORTNAME)))
- @if nm -A -u $< 2>/dev/null | grep -v __cxa_atexit | grep exit; then \
+ @if nm -A -u $< 2>/dev/null | grep -v __cxa_atexit | grep -v _atexit |
grep -v pthread_exit | grep exit; then \
echo 'libpq must not be calling any function which invokes exit'; exit 1;
\
fi
endif
PG Bug reporting form <noreply@postgresql.org> writes:
In short, in src/interfaces/libpq/Makefile there is a check for lib-a to not
contain a call to exit. But the issue is that on macOS, it still uses
_atexit and pthread_exitm which are fine.
Nobody else has reported any such problem. What build modifications
did you make to cause this?
regards, tom lane
Hello Tom and thank you for the feedback.
I believe that comes from the fact that I build openssl myself and I build static libs. That makes it so some additional symbols are pulled in.
Regards,
Thierry Bastian
Show quoted text
On 24 Oct 2024, at 22:30, Tom Lane <tgl@sss.pgh.pa.us> wrote:
PG Bug reporting form <noreply@postgresql.org> writes:
In short, in src/interfaces/libpq/Makefile there is a check for lib-a to not
contain a call to exit. But the issue is that on macOS, it still uses
_atexit and pthread_exitm which are fine.Nobody else has reported any such problem. What build modifications
did you make to cause this?regards, tom lane