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