libpq/libpq-12.1-symbol-versionin...

99 lines
3.0 KiB
Diff
Raw Normal View History

2020-10-30 19:29:26 +00:00
commit 75040c3388d9a7dd5ad2bee53cbcc8bf3d35cd17
Author: Honza Horak <hhorak@redhat.com>
Date: Fri Oct 30 20:16:50 2020 +0100
The libpq package is supposed to be used for all the PostgreSQL modules
available in RHEL 8, and ABI versioning will guarantee us that modular RPMs will
depend on appropriate libpq ABI version (picked at build-time).
diff --git a/config/Makefile b/config/Makefile
2020-10-30 19:29:26 +00:00
index 67e7998..86612a4 100644
--- a/config/Makefile
+++ b/config/Makefile
@@ -8,6 +8,7 @@ include $(top_builddir)/src/Makefile.global
install: all installdirs
$(INSTALL_SCRIPT) $(srcdir)/install-sh '$(DESTDIR)$(pgxsdir)/config/install-sh'
$(INSTALL_SCRIPT) $(srcdir)/missing '$(DESTDIR)$(pgxsdir)/config/missing'
+ $(INSTALL_SCRIPT) $(srcdir)/build-exports-gnu-ld '$(DESTDIR)$(pgxsdir)/config/build-exports-gnu-ld'
installdirs:
$(MKDIR_P) '$(DESTDIR)$(pgxsdir)/config'
2020-10-30 19:29:26 +00:00
diff --git a/config/build-exports-gnu-ld b/config/build-exports-gnu-ld
new file mode 100755
index 0000000000..84c48e3ade
--- /dev/null
+++ b/config/build-exports-gnu-ld
@@ -0,0 +1,41 @@
+#! /bin/sh
+
+# by default use PG_ prefix
+: "${SYMBOL_VERSION_PREFIX=PG_}"
+
+# we started symbol versioning since v10
+: "${SYMBOL_VERSION_START=9.6}"
+
+version=$SYMBOL_VERSION_START
+version_prev=
+first=:
+
+open_block ()
+{
+ $first || echo
+ first=false
+ echo "${SYMBOL_VERSION_PREFIX}$version {"
+ echo "global:"
+}
+
+close_block ()
+{
+ echo "}${version_prev:+ $SYMBOL_VERSION_PREFIX$version_prev};"
+ version_prev=$version
+ version=$1
+}
+
+open_block
+while read -r symbol _ new_version
+do
+ case $symbol in '#'*) continue ;; esac
+ if test -n "$new_version" && test "$new_version" != "$version"; then
+ close_block "$new_version"
+ open_block
+ fi
+ echo " $symbol;"
+done
+
+echo "local:"
+echo " *;"
+close_block
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
2020-10-30 19:29:26 +00:00
index 373d73caef..d5bd5468cd 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
2020-10-30 19:29:26 +00:00
@@ -231,7 +231,7 @@ ifeq ($(PORTNAME), linux)
ifdef soname
LINK.shared += -Wl,-soname,$(soname)
endif
- BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@
+ BUILD.exports = $(SHELL) $(top_srcdir)/config/build-exports-gnu-ld < $< > $@
exports_file = $(SHLIB_EXPORTS:%.txt=%.list)
ifneq (,$(exports_file))
LINK.shared += -Wl,--version-script=$(exports_file)
diff --git a/src/interfaces/libpq/exports.txt b/src/interfaces/libpq/exports.txt
2020-10-30 19:29:26 +00:00
index bbc1f90..fc3ef8a 100644
--- a/src/interfaces/libpq/exports.txt
+++ b/src/interfaces/libpq/exports.txt
2020-10-22 11:14:13 +00:00
@@ -171,11 +171,11 @@ PQsslAttributeNames 168
PQsslAttribute 169
PQsetErrorContextVisibility 170
PQresultVerboseErrorMessage 171
-PQencryptPasswordConn 172
2020-10-30 19:29:26 +00:00
+PQencryptPasswordConn 172 10
PQresultMemorySize 173
PQhostaddr 174
PQgssEncInUse 175
2020-10-30 19:29:26 +00:00
PQgetgssctx 176
-PQsetSSLKeyPassHook_OpenSSL 177
+PQsetSSLKeyPassHook_OpenSSL 177 13
2020-10-22 11:14:13 +00:00
PQgetSSLKeyPassHook_OpenSSL 178
PQdefaultSSLKeyPassHook_OpenSSL 179