You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.5 KiB
85 lines
2.5 KiB
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..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 7c808e5215..3631340b23 100644 |
|
--- a/src/interfaces/libpq/exports.txt |
|
+++ b/src/interfaces/libpq/exports.txt |
|
@@ -171,7 +171,7 @@ PQsslAttributeNames 168 |
|
PQsslAttribute 169 |
|
PQsetErrorContextVisibility 170 |
|
PQresultVerboseErrorMessage 171 |
|
-PQencryptPasswordConn 172 |
|
+PQencryptPasswordConn 172 10 |
|
PQresultMemorySize 173 |
|
PQhostaddr 174 |
|
PQgssEncInUse 175
|
|
|