diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2018-07-09 17:23:31 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2018-07-09 17:23:31 -0400 |
commit | 6532ca57ad326d6ac9200eff3f93c3b036626bb6 (patch) | |
tree | d5280513ef4e721883f080034a3aaaf67648ba2f /contrib/ltree_plpython | |
parent | 62203e6084adcebd277a138e2e0ed21f2b8ed305 (diff) | |
download | postgresql-6532ca57ad326d6ac9200eff3f93c3b036626bb6.tar.gz postgresql-6532ca57ad326d6ac9200eff3f93c3b036626bb6.zip |
Prevent accidental linking of system-supplied copies of libpq.so etc.
Back-patch commit dddfc4cb2, which broke LDFLAGS and related Makefile
variables into two parts, one for within-build-tree library references and
one for external libraries, to ensure that the order of -L flags has all
of the former before all of the latter. This turns out to fix a problem
recently noted on buildfarm member peripatus, that we attempted to
incorporate code from libpgport.a into a shared library. That will fail on
platforms that are sticky about putting non-PIC code into shared libraries.
(It's quite surprising we hadn't seen such failures before, since the code
in question has been like that for a long time.)
I think that peripatus' problem could have been fixed with just a subset
of this patch; but since the previous issue of accidentally linking to the
wrong copy of a Postgres shlib seems likely to bite people in the field,
let's just back-patch the whole change. Now that commit dddfc4cb2 has
survived some beta testing, I'm less afraid to back-patch it than I was
at the time.
This also fixes undesired inclusion of "-DFRONTEND" in pg_config's CPPFLAGS
output (in 9.6 and up) and undesired inclusion of "-L../../src/common" in
its LDFLAGS output (in all supported branches).
Back-patch to v10 and older branches; this is already in v11.
Discussion: https://postgr.es/m/20180704234304.bq2dxispefl65odz@ler-imac.local
Diffstat (limited to 'contrib/ltree_plpython')
-rw-r--r-- | contrib/ltree_plpython/Makefile | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/contrib/ltree_plpython/Makefile b/contrib/ltree_plpython/Makefile index 08186f19a13..b7e2a926c61 100644 --- a/contrib/ltree_plpython/Makefile +++ b/contrib/ltree_plpython/Makefile @@ -27,15 +27,17 @@ endif # dependency. This does preclude pgxs builds. ifeq ($(PORTNAME), aix) rpathdir = $(pkglibdir):$(python_libdir) -SHLIB_LINK += $(python_libspec) $(python_additional_libs) $(sort $(wildcard ../../src/pl/plpython/libplpython*.exp)) +SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plpython/libplpython*.exp)) +SHLIB_LINK += $(python_libspec) $(python_additional_libs) endif ifeq ($(PORTNAME), win32) -SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a)) $(sort $(wildcard ../../src/pl/plpython/libplpython*.a)) +SHLIB_LINK_INTERNAL += $(sort $(wildcard ../../src/pl/plpython/libplpython*.a)) $(sort $(wildcard ../../src/pl/plpython/libpython*.a)) endif ifeq ($(PORTNAME), cygwin) -SHLIB_LINK += -L../ltree -lltree -L../../src/pl/plpython \ - -lplpython$(python_majorversion) $(python_libspec) +SHLIB_LINK_INTERNAL += -L../ltree -lltree -L../../src/pl/plpython \ + -lplpython$(python_majorversion) +SHLIB_LINK += $(python_libspec) endif REGRESS_OPTS += --load-extension=ltree |