Fix shared library creation to work properly on AIX. Albe Laurenz
This commit is contained in:
parent
48fe137425
commit
9b5e108ee9
|
@ -1,5 +1,5 @@
|
||||||
# -*-makefile-*-
|
# -*-makefile-*-
|
||||||
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.229 2006/09/11 13:35:08 tgl Exp $
|
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.230 2006/09/19 15:36:07 tgl Exp $
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# All PostgreSQL makefiles include this file and use the variables it sets,
|
# All PostgreSQL makefiles include this file and use the variables it sets,
|
||||||
|
@ -345,13 +345,6 @@ libpq := -L$(libpq_builddir) -lpq
|
||||||
ifeq ($(enable_shared), no)
|
ifeq ($(enable_shared), no)
|
||||||
libpq += $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt, $(LIBS)) \
|
libpq += $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt, $(LIBS)) \
|
||||||
$(LDAP_LIBS_FE) $(PTHREAD_LIBS)
|
$(LDAP_LIBS_FE) $(PTHREAD_LIBS)
|
||||||
else
|
|
||||||
# On AIX even shared libraries do not remember their required libs,
|
|
||||||
# so again add in what libpq depends on.
|
|
||||||
ifeq ($(PORTNAME), aix)
|
|
||||||
libpq += $(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt, $(LIBS)) \
|
|
||||||
$(LDAP_LIBS_FE) $(PTHREAD_LIBS)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# This macro is for use by client executables (not libraries) that use libpq.
|
# This macro is for use by client executables (not libraries) that use libpq.
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# Copyright (c) 1998, Regents of the University of California
|
# Copyright (c) 1998, Regents of the University of California
|
||||||
#
|
#
|
||||||
# IDENTIFICATION
|
# IDENTIFICATION
|
||||||
# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.104 2006/04/28 02:53:20 tgl Exp $
|
# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.105 2006/09/19 15:36:07 tgl Exp $
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -96,8 +96,8 @@ override CFLAGS += $(CFLAGS_SL)
|
||||||
soname = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
|
soname = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
|
||||||
|
|
||||||
ifeq ($(PORTNAME), aix)
|
ifeq ($(PORTNAME), aix)
|
||||||
shlib = lib$(NAME)$(DLSUFFIX)
|
shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
|
||||||
# SHLIB_LINK += -lc
|
haslibarule = yes
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PORTNAME), darwin)
|
ifeq ($(PORTNAME), darwin)
|
||||||
|
@ -295,9 +295,13 @@ endif
|
||||||
else # PORTNAME == aix
|
else # PORTNAME == aix
|
||||||
|
|
||||||
# AIX case
|
# AIX case
|
||||||
$(shlib): lib$(NAME).a
|
$(shlib) lib$(NAME).a: $(OBJS)
|
||||||
|
$(LINK.static) lib$(NAME).a $^
|
||||||
|
$(RANLIB) lib$(NAME).a
|
||||||
$(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
|
$(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
|
||||||
$(COMPILER) $(LDFLAGS_NO_L) $(LDFLAGS_SL) -o $@ $< -Wl,-bE:lib$(NAME)$(EXPSUFF) $(SHLIB_LINK)
|
$(COMPILER) $(LDFLAGS_NO_L) $(LDFLAGS_SL) -o $(shlib) lib$(NAME).a -Wl,-bE:lib$(NAME)$(EXPSUFF) $(SHLIB_LINK)
|
||||||
|
rm -f lib$(NAME).a
|
||||||
|
$(AR) $(AROPT) lib$(NAME).a $(shlib)
|
||||||
|
|
||||||
endif # PORTNAME == aix
|
endif # PORTNAME == aix
|
||||||
|
|
||||||
|
@ -350,6 +354,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(enable_shared), yes)
|
ifeq ($(enable_shared), yes)
|
||||||
install-lib-shared: $(shlib)
|
install-lib-shared: $(shlib)
|
||||||
|
ifneq ($(PORTNAME), aix) # we don't install $(shlib) on AIX
|
||||||
$(INSTALL_SHLIB) $< '$(DESTDIR)$(libdir)/$(shlib)'
|
$(INSTALL_SHLIB) $< '$(DESTDIR)$(libdir)/$(shlib)'
|
||||||
ifneq ($(PORTNAME), cygwin)
|
ifneq ($(PORTNAME), cygwin)
|
||||||
ifneq ($(PORTNAME), win32)
|
ifneq ($(PORTNAME), win32)
|
||||||
|
@ -365,6 +370,7 @@ ifneq ($(shlib), $(shlib_bare))
|
||||||
endif
|
endif
|
||||||
endif # not win32
|
endif # not win32
|
||||||
endif # not cygwin
|
endif # not cygwin
|
||||||
|
endif # not aix
|
||||||
endif # enable_shared
|
endif # enable_shared
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@ override CPPFLAGS := -I../../include -I$(top_srcdir)/src/interfaces/ecpg/include
|
||||||
-I$(libpq_srcdir) $(CPPFLAGS)
|
-I$(libpq_srcdir) $(CPPFLAGS)
|
||||||
override CFLAGS += $(PTHREAD_CFLAGS)
|
override CFLAGS += $(PTHREAD_CFLAGS)
|
||||||
|
|
||||||
override LDFLAGS := -L../../ecpglib -L../../pgtypeslib -L../../../libpq $(LDFLAGS)
|
override LDFLAGS := -L../../ecpglib -L../../pgtypeslib $(LDFLAGS)
|
||||||
override LIBS := -lpgtypes -lecpg -lpq $(LIBS) $(PTHREAD_LIBS)
|
override LIBS := -lecpg -lpgtypes $(libpq) $(LIBS) $(PTHREAD_LIBS)
|
||||||
|
|
||||||
ECPG = ../../preproc/ecpg -I$(srcdir)/../../include
|
ECPG = ../../preproc/ecpg -I$(srcdir)/../../include
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,12 @@ top_builddir = ../../../../..
|
||||||
include $(top_builddir)/src/Makefile.global
|
include $(top_builddir)/src/Makefile.global
|
||||||
include $(top_srcdir)/$(subdir)/../Makefile.regress
|
include $(top_srcdir)/$(subdir)/../Makefile.regress
|
||||||
|
|
||||||
# special informix compatiblity switches
|
# special informix compatibility switches
|
||||||
ECPG += -C INFORMIX
|
ECPG += -C INFORMIX
|
||||||
ECPG_NOIND = $(ECPG) -r no_indicator
|
ECPG_NOIND = $(ECPG) -r no_indicator
|
||||||
override LDFLAGS += -L../../compatlib
|
|
||||||
override LIBS += $(LIBS) -lecpg_compat
|
override LDFLAGS := -L../../compatlib $(LDFLAGS)
|
||||||
|
override LIBS := -lecpg_compat $(LIBS)
|
||||||
|
|
||||||
TESTS = test_informix test_informix.c \
|
TESTS = test_informix test_informix.c \
|
||||||
test_informix2 test_informix2.c \
|
test_informix2 test_informix2.c \
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# $PostgreSQL: pgsql/src/interfaces/ecpg/test/pg_regress.sh,v 1.13 2006/09/08 13:32:27 meskes Exp $
|
# $PostgreSQL: pgsql/src/interfaces/ecpg/test/pg_regress.sh,v 1.14 2006/09/19 15:36:08 tgl Exp $
|
||||||
|
|
||||||
me=`basename $0`
|
me=`basename $0`
|
||||||
|
|
||||||
|
@ -322,6 +322,7 @@ do_temp_install(){
|
||||||
# Set up shared library paths, needed by psql and pg_encoding
|
# Set up shared library paths, needed by psql and pg_encoding
|
||||||
# (if you run multibyte). LD_LIBRARY_PATH covers many platforms.
|
# (if you run multibyte). LD_LIBRARY_PATH covers many platforms.
|
||||||
# DYLD_LIBRARY_PATH works on Darwin, and maybe other Mach-based systems.
|
# DYLD_LIBRARY_PATH works on Darwin, and maybe other Mach-based systems.
|
||||||
|
# LIBPATH is for AIX.
|
||||||
# Feel free to account for others as well.
|
# Feel free to account for others as well.
|
||||||
# ----------
|
# ----------
|
||||||
|
|
||||||
|
@ -339,6 +340,13 @@ do_temp_install(){
|
||||||
fi
|
fi
|
||||||
export DYLD_LIBRARY_PATH
|
export DYLD_LIBRARY_PATH
|
||||||
|
|
||||||
|
if [ -n "$LIBPATH" ]; then
|
||||||
|
LIBPATH="$libdir:$LIBPATH"
|
||||||
|
else
|
||||||
|
LIBPATH=$libdir
|
||||||
|
fi
|
||||||
|
export LIBPATH
|
||||||
|
|
||||||
# ----------
|
# ----------
|
||||||
# Windows needs shared libraries in PATH. (Only those linked into
|
# Windows needs shared libraries in PATH. (Only those linked into
|
||||||
# executables, not dlopen'ed ones)
|
# executables, not dlopen'ed ones)
|
||||||
|
|
|
@ -5,6 +5,15 @@ MAKE_EXPORTS= true
|
||||||
RANLIB= touch
|
RANLIB= touch
|
||||||
AROPT = crs
|
AROPT = crs
|
||||||
|
|
||||||
|
# -blibpath must contain ALL directories where we should look for libraries
|
||||||
|
libpath := $(shell echo $(subst -L,:,$(filter -L/%,$(LDFLAGS))) | sed -e's/ //g'):/usr/lib:/lib
|
||||||
|
|
||||||
|
ifeq ($(host_os), aix3.2.5)
|
||||||
|
rpath = -L$(rpathdir)
|
||||||
|
else
|
||||||
|
rpath = -Wl,-blibpath:$(rpathdir)$(libpath)
|
||||||
|
endif
|
||||||
|
|
||||||
DLSUFFIX = .so
|
DLSUFFIX = .so
|
||||||
ifeq ($(host_os), aix3.2.5)
|
ifeq ($(host_os), aix3.2.5)
|
||||||
ifneq ($(GCC), yes)
|
ifneq ($(GCC), yes)
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.20 2006/08/13 20:39:07 tgl Exp $
|
* $PostgreSQL: pgsql/src/test/regress/pg_regress.c,v 1.21 2006/09/19 15:36:08 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -507,12 +507,14 @@ initialize_environment(void)
|
||||||
* Set up shared library paths to include the temp install.
|
* Set up shared library paths to include the temp install.
|
||||||
*
|
*
|
||||||
* LD_LIBRARY_PATH covers many platforms. DYLD_LIBRARY_PATH works on
|
* LD_LIBRARY_PATH covers many platforms. DYLD_LIBRARY_PATH works on
|
||||||
* Darwin, and maybe other Mach-based systems. Windows needs shared
|
* Darwin, and maybe other Mach-based systems. LIBPATH is for AIX.
|
||||||
* libraries in PATH. (Only those linked into executables, not
|
* Windows needs shared libraries in PATH (only those linked into
|
||||||
* dlopen'ed ones) Feel free to account for others as well.
|
* executables, not dlopen'ed ones).
|
||||||
|
* Feel free to account for others as well.
|
||||||
*/
|
*/
|
||||||
add_to_path("LD_LIBRARY_PATH", ':', libdir);
|
add_to_path("LD_LIBRARY_PATH", ':', libdir);
|
||||||
add_to_path("DYLD_LIBRARY_PATH", ':', libdir);
|
add_to_path("DYLD_LIBRARY_PATH", ':', libdir);
|
||||||
|
add_to_path("LIBPATH", ':', libdir);
|
||||||
#if defined(WIN32) || defined(__CYGWIN__)
|
#if defined(WIN32) || defined(__CYGWIN__)
|
||||||
add_to_path("PATH", ';', libdir);
|
add_to_path("PATH", ';', libdir);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue