summaryrefslogtreecommitdiff
path: root/libpq-12.1-symbol-versioning.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-08-31 09:13:37 +0000
committerCoprDistGit <infra@openeuler.org>2023-08-31 09:13:37 +0000
commitd8a538d7266fb76b9976728f80c2005ffa93fa1a (patch)
tree134f6ef8019b70981300555b8e99a2d34ed55719 /libpq-12.1-symbol-versioning.patch
parent88e58cf7d4a8cfdb4cc97b8ca8ba9c837e614430 (diff)
automatic import of libpqopeneuler20.03
Diffstat (limited to 'libpq-12.1-symbol-versioning.patch')
-rw-r--r--libpq-12.1-symbol-versioning.patch99
1 files changed, 99 insertions, 0 deletions
diff --git a/libpq-12.1-symbol-versioning.patch b/libpq-12.1-symbol-versioning.patch
new file mode 100644
index 0000000..9bbb15b
--- /dev/null
+++ b/libpq-12.1-symbol-versioning.patch
@@ -0,0 +1,99 @@
+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
+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'
+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
+index 373d73caef..d5bd5468cd 100644
+--- a/src/Makefile.shlib
++++ b/src/Makefile.shlib
+@@ -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
+index bbc1f90..fc3ef8a 100644
+--- a/src/interfaces/libpq/exports.txt
++++ b/src/interfaces/libpq/exports.txt
+@@ -171,11 +171,11 @@ PQsslAttributeNames 168
+ PQsslAttribute 169
+ PQsetErrorContextVisibility 170
+ PQresultVerboseErrorMessage 171
+-PQencryptPasswordConn 172
++PQencryptPasswordConn 172 10
+-PQresultMemorySize 173
++PQresultMemorySize 173 12
+ PQhostaddr 174
+ PQgssEncInUse 175
+ PQgetgssctx 176
+-PQsetSSLKeyPassHook_OpenSSL 177
++PQsetSSLKeyPassHook_OpenSSL 177 13
+ PQgetSSLKeyPassHook_OpenSSL 178
+ PQdefaultSSLKeyPassHook_OpenSSL 179