]> granicus.if.org Git - postgresql/commitdiff
AIX: Link TRANSFORM modules with their dependencies.
authorNoah Misch <noah@leadboat.com>
Thu, 16 Jul 2015 01:00:26 +0000 (21:00 -0400)
committerNoah Misch <noah@leadboat.com>
Thu, 16 Jul 2015 01:00:30 +0000 (21:00 -0400)
The result closely resembles linking of these modules for the "win32"
port.  Augment the $(exports_file) header so the file is also usable as
an import file.  Unfortunately, relocating an AIX installation will now
require adding $(pkglibdir) to LD_LIBRARY_PATH.  Back-patch to 9.5,
where the modules were introduced.

contrib/hstore_plperl/Makefile
contrib/hstore_plpython/Makefile
contrib/ltree_plpython/Makefile
src/Makefile.shlib

index 19a8ab4493c6a2e2920f58b4b56d519836f66873..d789b99375af0af6edd733b561f3c2fcdf435df7 100644 (file)
@@ -23,10 +23,15 @@ include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
+# In configurations that forbid undefined symbols in libraries, link with each
+# dependency.  This does preclude pgxs builds.
+ifeq ($(PORTNAME), aix)
+rpathdir = $(pkglibdir):$(perl_archlibexp)/CORE
+SHLIB_LINK += ../hstore/libhstore.exp $(perl_embed_ldflags)
+endif
 ifeq ($(PORTNAME), win32)
 # these settings are the same as for plperl
 override CPPFLAGS += -DPLPERL_HAVE_UID_GID -Wno-comment
-# This means we need an in-tree build on Windows, not a pgxs build
 SHLIB_LINK += ../hstore/libhstore.a $(wildcard ../../src/pl/plperl/libperl*.a)
 endif
 
index 6ee434bafa80431574452b87d35dfd1c774d6ccc..395fc7375368f75dfdd3d414d846cae61ad88e66 100644 (file)
@@ -23,8 +23,13 @@ include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
+# In configurations that forbid undefined symbols in libraries, link with each
+# dependency.  This does preclude pgxs builds.
+ifeq ($(PORTNAME), aix)
+rpathdir = $(pkglibdir):$(python_libdir)
+SHLIB_LINK += ../hstore/libhstore.exp $(python_libspec) $(python_additional_libs) $(wildcard ../../src/pl/plpython/libplpython*.exp)
+endif
 ifeq ($(PORTNAME), win32)
-# This means we need an in-tree build on Windows, not a pgxs build
 SHLIB_LINK += ../hstore/libhstore.a $(wildcard ../../src/pl/plpython/libpython*.a) $(wildcard ../../src/pl/plpython/libplpython*.a)
 endif
 
index 0eeb9b83eb3b884c026054378bbd7ca7b6ae755f..20b0dcfbc587239c7abbd6dd1b45fea07886a230 100644 (file)
@@ -23,8 +23,13 @@ include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
 
+# In configurations that forbid undefined symbols in libraries, link with each
+# dependency.  This does preclude pgxs builds.
+ifeq ($(PORTNAME), aix)
+rpathdir = $(pkglibdir):$(python_libdir)
+SHLIB_LINK += $(python_libspec) $(python_additional_libs) $(wildcard ../../src/pl/plpython/libplpython*.exp)
+endif
 ifeq ($(PORTNAME), win32)
-# This means we need an in-tree build on Windows, not a pgxs build
 SHLIB_LINK += $(wildcard ../../src/pl/plpython/libpython*.a) $(wildcard ../../src/pl/plpython/libplpython*.a)
 endif
 
index 50c3805eec02f23fc2683ed2e05b9d875412f1e0..86db52fe5e1f5b0c36ea91eff2e30a5a5a387f1e 100644 (file)
@@ -111,6 +111,7 @@ ifeq ($(PORTNAME), aix)
     shlib              = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
   endif
   haslibarule   = yes
+  # $(exports_file) is also usable as an import file
   exports_file         = lib$(NAME).exp
 endif
 
@@ -341,7 +342,7 @@ $(shlib) $(stlib): $(OBJS) | $(SHLIB_PREREQS)
        rm -f $(stlib)
        $(LINK.static) $(stlib) $^
        $(RANLIB) $(stlib)
-       $(MKLDEXPORT) $(stlib) >$(exports_file)
+       $(MKLDEXPORT) $(stlib) $(shlib) >$(exports_file)
        $(COMPILER) -o $(shlib) $(stlib) -Wl,-bE:$(exports_file) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK)
        rm -f $(stlib)
        $(AR) $(AROPT) $(stlib) $(shlib)