Re: Preventing abort() and exit() calls in libpq - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Preventing abort() and exit() calls in libpq
Date
Msg-id 630837.1625092151@sss.pgh.pa.us
Whole thread Raw
In response to Re: Preventing abort() and exit() calls in libpq  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Preventing abort() and exit() calls in libpq  (Jacob Champion <pchampion@vmware.com>)
List pgsql-hackers
I wrote:
> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
>> Could we set this rule up a little bit differently so that it is only 
>> run when the library is built.
>> Right now, make world on a built tree makes 17 calls to this "nm" line, 
>> and make check-world calls it 81 times.  I think once would be enough. ;-)

> Hmm, didn't realize that would happen.  Will see what can be done.

Looks like we'd have to make use of a dummy stamp-file, more or less
as attached.  Any objections?

            regards, tom lane

diff --git a/src/interfaces/libpq/.gitignore b/src/interfaces/libpq/.gitignore
index a4afe7c1c6..7478dc344a 100644
--- a/src/interfaces/libpq/.gitignore
+++ b/src/interfaces/libpq/.gitignore
@@ -1 +1,2 @@
 /exports.list
+/libpq-refs-stamp
diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile
index c2a35a488a..bb6ceec2c9 100644
--- a/src/interfaces/libpq/Makefile
+++ b/src/interfaces/libpq/Makefile
@@ -96,7 +96,7 @@ SHLIB_EXPORTS = exports.txt
 
 PKG_CONFIG_REQUIRES_PRIVATE = libssl libcrypto
 
-all: all-lib check-libpq-refs
+all: all-lib libpq-refs-stamp
 
 # Shared library stuff
 include $(top_srcdir)/src/Makefile.shlib
@@ -108,9 +108,9 @@ backend_src = $(top_srcdir)/src/backend
 # If nm doesn't exist or doesn't work on shlibs, this test will do nothing,
 # which is fine.  The exclusion of __cxa_atexit is necessary on OpenBSD,
 # which seems to insert references to that even in pure C code.
-.PHONY: check-libpq-refs
-check-libpq-refs: $(shlib)
+libpq-refs-stamp: $(shlib)
     ! nm -A -g -u $< 2>/dev/null | grep -v __cxa_atexit | grep exit
+    touch $@
 
 # Make dependencies on pg_config_paths.h visible in all builds.
 fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h
@@ -141,7 +141,7 @@ uninstall: uninstall-lib
 
 clean distclean: clean-lib
     $(MAKE) -C test $@
-    rm -f $(OBJS) pthread.h
+    rm -f $(OBJS) pthread.h libpq-refs-stamp
 # Might be left over from a Win32 client-only build
     rm -f pg_config_paths.h


pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: [HACKERS] WIP aPatch: Pgbench Serialization and deadlock errors
Next
From: Jacob Champion
Date:
Subject: Re: [PATCH] Pull general SASL framework out of SCRAM