summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/libpq/Makefile9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile
index 0c4e55b6ad3..e8cd07e9c99 100644
--- a/src/interfaces/libpq/Makefile
+++ b/src/interfaces/libpq/Makefile
@@ -96,12 +96,19 @@ SHLIB_EXPORTS = exports.txt
PKG_CONFIG_REQUIRES_PRIVATE = libssl libcrypto
-all: all-lib
+all: all-lib check-libpq-refs
# Shared library stuff
include $(top_srcdir)/src/Makefile.shlib
backend_src = $(top_srcdir)/src/backend
+# Check for functions that libpq must not call, currently abort() and exit().
+# If nm doesn't exist or doesn't work on shlibs, this test will silently
+# do nothing, which is fine. The exclusion of _eprintf.o is to prevent
+# complaining about <assert.h> infrastructure on ancient macOS releases.
+.PHONY: check-libpq-refs
+check-libpq-refs: $(shlib)
+ ! nm -A -g -u $< 2>/dev/null | grep -v '_eprintf\.o:' | grep -e abort -e exit
# 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