]> granicus.if.org Git - postgresql/commitdiff
Install a cleaner solution to the AIX libpq linking problem, as per
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 10 Sep 2006 22:07:02 +0000 (22:07 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 10 Sep 2006 22:07:02 +0000 (22:07 +0000)
an earlier discussion.  Centralize assumptions about what libpq depends
on in one place in Makefile.global.  I am unconvinced that this list
is complete, but since ecpg seems to have gotten along with just these
entries, we'll try it this way and see what happens.

contrib/dblink/Makefile
src/Makefile.global.in
src/interfaces/ecpg/compatlib/Makefile
src/interfaces/ecpg/ecpglib/Makefile

index 950fed5069317ecc39052d936fd95e3c568a525e..aebf403fae4413ba8a566e98514b388ab3ffbe64 100644 (file)
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/contrib/dblink/Makefile,v 1.12 2006/09/10 21:38:26 tgl Exp $
+# $PostgreSQL: pgsql/contrib/dblink/Makefile,v 1.13 2006/09/10 22:07:02 tgl Exp $
 
 MODULE_big = dblink
 PG_CPPFLAGS = -I$(libpq_srcdir)
@@ -20,6 +20,3 @@ top_builddir = ../..
 include $(top_builddir)/src/Makefile.global
 include $(top_srcdir)/contrib/contrib-global.mk
 endif
-
-# Apparently AIX requires that we mention everything libpq depends on :-(
-SHLIB_LINK += $(filter -lintl -lssl -lcrypto, $(LIBS))
index f2a3a255f8c2c574cf931d04a67780158bec0536..a9ac4f6179f9dcd2a16aa70258ef8e2824b269e1 100644 (file)
@@ -1,5 +1,5 @@
 # -*-makefile-*-
-# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.227 2006/09/09 03:15:40 tgl Exp $
+# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.228 2006/09/10 22:07:02 tgl Exp $
 
 #------------------------------------------------------------------------------
 # All PostgreSQL makefiles include this file and use the variables it sets,
@@ -336,23 +336,24 @@ libpq_srcdir = $(top_srcdir)/src/interfaces/libpq
 libpq_builddir = $(top_builddir)/src/interfaces/libpq
 endif
 
-# This is for use for libraries linking to libpq.  Because libpqport
-# isn't created with the same link flags as libpq, it can't be used.
-libpq = -L$(libpq_builddir) -lpq
+# This macro is for use by libraries linking to libpq.  (Because libpgport
+# isn't created with the same link flags as libpq, it can't be used.)
+libpq := -L$(libpq_builddir) -lpq
   
-# If doing static linking, shared library dependency can't be
-# used so we specify pthread libs for every usage of libpq
+# If doing static linking, shared library dependency info isn't available,
+# so add in the libraries that libpq depends on.
 ifeq ($(enable_shared), no)
-libpq += $(PTHREAD_LIBS)
+libpq += $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt, $(LIBS)) $(PTHREAD_LIBS)
 else
-# AIX libraries do not remember their required libs so we have to force
-# thread dependent libraires in the link
+# On AIX even shared libraries do not remember their required libs,
+# so again add in what libpq depends on.
 ifeq ($(PORTNAME), aix)
-libpq += $(PTHREAD_LIBS)
+libpq += $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt, $(LIBS)) $(PTHREAD_LIBS)
 endif
 endif
 
-# Force clients to pull symbols from the non-shared library libpgport 
+# This macro is for use by client executables (not libraries) that use libpq.
+# We force clients to pull symbols from the non-shared library libpgport 
 # rather than pulling some libpgport symbols from libpq just because 
 # libpq uses those functions too.  This makes applications less 
 # dependent on changes in libpq's usage of pgport.  To do this we link to
index f385d8b745e1d7adbd0d46956693cafa724f5cf1..6372e351fc00d906880492f4e047dcd09b302e75 100644 (file)
@@ -4,7 +4,7 @@
 #
 # Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.24 2006/08/28 16:13:10 tgl Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.25 2006/09/10 22:07:02 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -20,8 +20,7 @@ DLTYPE= library
 override CPPFLAGS := -I../include -I$(top_srcdir)/src/interfaces/ecpg/include \
        -I$(libpq_srcdir) -I$(top_srcdir)/src/include/utils $(CPPFLAGS)
 override CFLAGS += $(PTHREAD_CFLAGS)
-SHLIB_LINK = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq) \
-       $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt -lm, $(LIBS)) \
+SHLIB_LINK = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq) -lm \
        $(PTHREAD_LIBS)
 
 OBJS= informix.o
index 3528133aa66aa3828f7ff55b62fb33ad1ee1053c..374432dd66e2979916adadd369cc1dd807e14f4b 100644 (file)
@@ -4,7 +4,7 @@
 #
 # Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.41 2006/08/28 16:13:11 tgl Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.42 2006/09/10 22:07:02 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -34,8 +34,7 @@ ifneq ($(PORTNAME), win32)
 OBJS += thread.o
 endif
 
-SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) \
-       $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt -lm, $(LIBS)) $(PTHREAD_LIBS)
+SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) -lm $(PTHREAD_LIBS)
 
 ifeq ($(PORTNAME), win32)
 # Link to shfolder.dll instead of shell32.dll