90 lines
2.6 KiB
Diff
90 lines
2.6 KiB
Diff
|
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 67e7998f55..86612a42c3 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..bdcfb40d48
|
||
|
--- /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 95b82a6dea..a7065d02a4 100644
|
||
|
--- a/src/Makefile.shlib
|
||
|
+++ b/src/Makefile.shlib
|
||
|
@@ -221,7 +221,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 d6a38d0df8..29bebeac7e 100644
|
||
|
--- a/src/interfaces/libpq/exports.txt
|
||
|
+++ b/src/interfaces/libpq/exports.txt
|
||
|
@@ -171,4 +171,4 @@ PQsslAttributeNames 168
|
||
|
PQsslAttribute 169
|
||
|
PQsetErrorContextVisibility 170
|
||
|
PQresultVerboseErrorMessage 171
|
||
|
-PQencryptPasswordConn 172
|
||
|
+PQencryptPasswordConn 172 10
|
||
|
--
|
||
|
2.17.0
|
||
|
|