Install a cleaner solution to the AIX libpq linking problem, as per

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.
This commit is contained in:
Tom Lane 2006-09-10 22:07:02 +00:00
parent 723af8e67a
commit 4ee24cbb55
4 changed files with 17 additions and 21 deletions

View 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))

View 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

View 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

View 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