aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-09-27 19:35:32 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-09-27 19:35:32 +0000
commitcd75f94dafd43358305811b7576ad75d889097e3 (patch)
tree692b4512b76df4d73bdea0a4464c59caa87197aa /src
parente9ff025345b53967a8e2143142509a85b10ef621 (diff)
downloadpostgresql-cd75f94dafd43358305811b7576ad75d889097e3.tar.gz
postgresql-cd75f94dafd43358305811b7576ad75d889097e3.zip
Adjust Darwin build to use the default 'two level namespace' linking
method. Fix a number of places where shared libraries were linked without mentioning all the libraries they depend on; the Darwin and AIX ports are known to require this, and it doesn't seem to hurt any other supported platforms. (Hence, remove code in pl/tcl makefile that tried to avoid mentioning other libs if not needed.)
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.shlib4
-rw-r--r--src/interfaces/ecpg/compatlib/Makefile5
-rw-r--r--src/interfaces/ecpg/ecpglib/Makefile5
-rw-r--r--src/interfaces/libpgtcl/Makefile10
-rw-r--r--src/makefiles/Makefile.darwin8
-rw-r--r--src/pl/tcl/Makefile23
6 files changed, 18 insertions, 37 deletions
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index ca712a4d46b..b2a0343dda3 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
-# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.70 2003/09/20 21:26:20 tgl Exp $
+# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.71 2003/09/27 19:35:32 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -82,7 +82,7 @@ endif
ifeq ($(PORTNAME), darwin)
shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
- LINK.shared = $(COMPILER) $(DARWIN_NAMESPACE_SPEC) -bundle -undefined suppress
+ LINK.shared = $(COMPILER) -bundle
endif
ifeq ($(PORTNAME), openbsd)
diff --git a/src/interfaces/ecpg/compatlib/Makefile b/src/interfaces/ecpg/compatlib/Makefile
index cd05452aeae..5c65a538249 100644
--- a/src/interfaces/ecpg/compatlib/Makefile
+++ b/src/interfaces/ecpg/compatlib/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $Header: /cvsroot/pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.9 2003/09/27 15:32:47 momjian Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/ecpg/compatlib/Makefile,v 1.10 2003/09/27 19:35:32 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -17,7 +17,8 @@ SO_MAJOR_VERSION= 1
SO_MINOR_VERSION= 0
override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(libpq_srcdir) -I$(top_srcdir)/src/include/utils $(CPPFLAGS) $(THREAD_CPPFLAGS)
-SHLIB_LINK = -L../pgtypeslib -lpgtypes -L../ecpglib -lecpg $(THREAD_LIBS)
+SHLIB_LINK = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq) \
+ $(filter -lssl -lcrypto -lcrypt -lm, $(LIBS)) $(THREAD_LIBS)
OBJS= informix.o
diff --git a/src/interfaces/ecpg/ecpglib/Makefile b/src/interfaces/ecpg/ecpglib/Makefile
index 75fcfc90236..70e73aaba3c 100644
--- a/src/interfaces/ecpg/ecpglib/Makefile
+++ b/src/interfaces/ecpg/ecpglib/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.8 2003/09/27 15:32:47 momjian Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.9 2003/09/27 19:35:32 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -21,7 +21,8 @@ override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(libpq_srcdi
OBJS= execute.o typename.o descriptor.o data.o error.o prepare.o memory.o \
connect.o misc.o
-SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) $(THREAD_LIBS)
+SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) \
+ $(filter -lssl -lcrypto -lcrypt -lm, $(LIBS)) $(THREAD_LIBS)
all: all-lib
diff --git a/src/interfaces/libpgtcl/Makefile b/src/interfaces/libpgtcl/Makefile
index 63fffeabe26..a81795a5037 100644
--- a/src/interfaces/libpgtcl/Makefile
+++ b/src/interfaces/libpgtcl/Makefile
@@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
-# $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/Makefile,v 1.30 2002/12/30 17:19:52 tgl Exp $
+# $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/Makefile,v 1.31 2003/09/27 19:35:32 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -20,12 +20,8 @@ override CPPFLAGS := -I$(libpq_srcdir) $(CPPFLAGS) $(TCL_INCLUDE_SPEC)
OBJS= pgtcl.o pgtclCmds.o pgtclId.o
-SHLIB_LINK = $(libpq)
-
-# If crypt is a separate library, rather than part of libc, it may need
-# to be referenced separately to keep (broken) linkers happy. (This is
-# braindead; users of libpq should not need to know what it depends on.)
-SHLIB_LINK+= $(filter -L%, $(LDFLAGS)) $(filter -lcrypt, $(LIBS))
+SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) $(libpq) \
+ $(filter -lssl -lcrypto -lcrypt, $(LIBS)) $(THREAD_LIBS)
all: submake-libpq all-lib
diff --git a/src/makefiles/Makefile.darwin b/src/makefiles/Makefile.darwin
index 3d58055b9b3..d872c57eabb 100644
--- a/src/makefiles/Makefile.darwin
+++ b/src/makefiles/Makefile.darwin
@@ -3,11 +3,11 @@ AWK= awk
DLSUFFIX = .so
CFLAGS_SL =
-ifeq (,$(filter $(host_os), darwin1.0 darwin1.1 darwin1.2))
-DARWIN_NAMESPACE_SPEC = -flat_namespace
-endif
+BE_DLLLIBS= -bundle_loader $(top_builddir)/src/backend/postgres
+# Rule for building shared libs (currently used only for regression test
+# shlib ... should go away, since this is not really enough knowledge)
%.so: %.o
- $(CC) $(DARWIN_NAMESPACE_SPEC) -bundle -undefined suppress -o $@ $<
+ $(CC) -bundle -o $@ $< $(BE_DLLLIBS)
sqlmansect = 7
diff --git a/src/pl/tcl/Makefile b/src/pl/tcl/Makefile
index c48671b0b32..371242f98fd 100644
--- a/src/pl/tcl/Makefile
+++ b/src/pl/tcl/Makefile
@@ -2,7 +2,7 @@
#
# Makefile for the pltcl shared object
#
-# $Header: /cvsroot/pgsql/src/pl/tcl/Makefile,v 1.39 2002/12/30 17:19:54 tgl Exp $
+# $Header: /cvsroot/pgsql/src/pl/tcl/Makefile,v 1.40 2003/09/27 19:35:32 tgl Exp $
#
#-------------------------------------------------------------------------
@@ -11,7 +11,7 @@ top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
-override CPPFLAGS := $(CPPFLAGS) $(TCL_INCLUDE_SPEC)
+override CPPFLAGS += $(TCL_INCLUDE_SPEC)
# Find out whether Tcl was built as a shared library --- if not, we
@@ -29,24 +29,7 @@ endif
endif
-# The following attempts to figure out what libraries need to be
-# linked with pltcl. The information comes from the tclConfig.sh
-# file, but it's mostly bogus. This just might work.
-
-ifneq ($(TCL_SHLIB_LD_LIBS),)
-# link command for a shared lib must mention shared libs it uses
-SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) -lc
-else
-ifeq ($(PORTNAME), hpux)
-# link command for a shared lib must mention shared libs it uses,
-# even though Tcl doesn't think so...
-SHLIB_LINK = $(TCL_LIB_SPEC) $(TCL_LIBS) -lc
-else
-# link command for a shared lib must NOT mention shared libs it uses
-SHLIB_LINK = $(TCL_LIB_SPEC)
-endif
-endif
-
+SHLIB_LINK = $(BE_DLLLIBS) $(TCL_LIB_SPEC) $(TCL_LIBS) -lc
NAME = pltcl
SO_MAJOR_VERSION = 2