On Mon, Oct 03, 2016 at 12:29:18PM -0400, Tom Lane wrote:
> Pursuant to Andres' suggestion in
> https://www.postgresql.org/message-id/20161002223927.57xns3arkdg4h...@alap3.anarazel.de
> attached is a draft patch that gets rid of link-time references
> from hstore_plpython to both hstore and plpython.  I've verified
> that this allows "LOAD 'hstore_plpython'" to succeed in a fresh
> session without having loaded the prerequisite modules first.

I like how that turned out.  However, ...

> *** a/contrib/hstore_plpython/Makefile
> --- b/contrib/hstore_plpython/Makefile

> --- 23,40 ----
>   include $(top_srcdir)/contrib/contrib-global.mk
>   endif
>   
> ! # We must link libpython explicitly
>   ifeq ($(PORTNAME), aix)
>   rpathdir = $(pkglibdir):$(python_libdir)

... adding $(pkglibdir) to rpath is obsolete, now that this ceased to link to
hstore explicitly.

> ! SHLIB_LINK += $(python_libspec) $(python_additional_libs)
> ! else
>   ifeq ($(PORTNAME), win32)
> ! # ... see silliness in plpython Makefile ...
> ! SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
> ! else
> ! rpathdir = $(python_libdir)
> ! SHLIB_LINK += $(python_libspec)

For consistency with longstanding src/pl/plpython practice, $(python_libspec)
should always have an accompanying $(python_additional_libs).  This matters on
few configurations.

I propose to clean up both points as attached.  Tested on AIX, which ceases to
be a special case.
diff --git a/contrib/hstore_plperl/Makefile b/contrib/hstore_plperl/Makefile
index 41d3435..34e1e13 100644
--- a/contrib/hstore_plperl/Makefile
+++ b/contrib/hstore_plperl/Makefile
@@ -24,10 +24,6 @@ include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
 # We must link libperl explicitly
-ifeq ($(PORTNAME), aix)
-rpathdir = $(pkglibdir):$(perl_archlibexp)/CORE
-SHLIB_LINK += $(perl_embed_ldflags)
-else
 ifeq ($(PORTNAME), win32)
 # these settings are the same as for plperl
 override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
@@ -37,7 +33,6 @@ else
 rpathdir = $(perl_archlibexp)/CORE
 SHLIB_LINK += $(perl_embed_ldflags)
 endif
-endif
 
 # As with plperl we need to make sure that the CORE directory is included
 # last, probably because it sometimes contains some header files with names
diff --git a/contrib/hstore_plpython/Makefile b/contrib/hstore_plpython/Makefile
index a55c9a1..7ff787a 100644
--- a/contrib/hstore_plpython/Makefile
+++ b/contrib/hstore_plpython/Makefile
@@ -24,17 +24,12 @@ include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
 # We must link libpython explicitly
-ifeq ($(PORTNAME), aix)
-rpathdir = $(pkglibdir):$(python_libdir)
-SHLIB_LINK += $(python_libspec) $(python_additional_libs)
-else
 ifeq ($(PORTNAME), win32)
 # ... see silliness in plpython Makefile ...
 SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
 else
 rpathdir = $(python_libdir)
-SHLIB_LINK += $(python_libspec)
-endif
+SHLIB_LINK += $(python_libspec) $(python_additional_libs)
 endif
 
 REGRESS_OPTS += --load-extension=hstore
diff --git a/contrib/ltree_plpython/Makefile b/contrib/ltree_plpython/Makefile
index c45b7c2..bc7502b 100644
--- a/contrib/ltree_plpython/Makefile
+++ b/contrib/ltree_plpython/Makefile
@@ -24,17 +24,12 @@ include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
 # We must link libpython explicitly
-ifeq ($(PORTNAME), aix)
-rpathdir = $(pkglibdir):$(python_libdir)
-SHLIB_LINK += $(python_libspec) $(python_additional_libs)
-else
 ifeq ($(PORTNAME), win32)
 # ... see silliness in plpython Makefile ...
 SHLIB_LINK += $(sort $(wildcard ../../src/pl/plpython/libpython*.a))
 else
 rpathdir = $(python_libdir)
-SHLIB_LINK += $(python_libspec)
-endif
+SHLIB_LINK += $(python_libspec) $(python_additional_libs)
 endif
 
 REGRESS_OPTS += --load-extension=ltree
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to