libpq/SOURCES/libpq-12.1-symbol-versioning.patch

100 lines
3.0 KiB
Diff
Raw Normal View History

2023-10-19 08:34:29 +00:00
commit 75040c3388d9a7dd5ad2bee53cbcc8bf3d35cd17
Author: Honza Horak <hhorak@redhat.com>
Date: Fri Oct 30 20:16:50 2020 +0100
2020-07-28 13:44:01 +00:00
2023-10-19 08:34:29 +00:00
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).
2019-08-01 17:37:17 +00:00
diff --git a/config/Makefile b/config/Makefile
2023-10-19 08:34:29 +00:00
index 67e7998..86612a4 100644
2019-08-01 17:37:17 +00:00
--- 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
2020-07-28 13:44:01 +00:00
index 0000000000..84c48e3ade
2019-08-01 17:37:17 +00:00
--- /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-07-28 13:44:01 +00:00
index 373d73caef..d5bd5468cd 100644
2019-08-01 17:37:17 +00:00
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
2020-07-28 13:44:01 +00:00
@@ -231,7 +231,7 @@ ifeq ($(PORTNAME), linux)
2019-08-01 17:37:17 +00:00
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
2023-10-19 08:34:29 +00:00
index bbc1f90..fc3ef8a 100644
2019-08-01 17:37:17 +00:00
--- a/src/interfaces/libpq/exports.txt
+++ b/src/interfaces/libpq/exports.txt
2023-10-19 08:34:29 +00:00
@@ -171,11 +171,11 @@ PQsslAttributeNames 168
2019-08-01 17:37:17 +00:00
PQsslAttribute 169
PQsetErrorContextVisibility 170
PQresultVerboseErrorMessage 171
-PQencryptPasswordConn 172
2023-10-19 08:34:29 +00:00
+PQencryptPasswordConn 172 10
2020-07-28 13:44:01 +00:00
-PQresultMemorySize 173
2023-10-19 08:34:29 +00:00
+PQresultMemorySize 173 12
2020-07-28 13:44:01 +00:00
PQhostaddr 174
PQgssEncInUse 175
PQgetgssctx 176
2021-03-30 15:20:00 +00:00
-PQsetSSLKeyPassHook_OpenSSL 177
2023-10-19 08:34:29 +00:00
+PQsetSSLKeyPassHook_OpenSSL 177 13
2021-03-30 15:20:00 +00:00
PQgetSSLKeyPassHook_OpenSSL 178
PQdefaultSSLKeyPassHook_OpenSSL 179