diff --git a/src/Makefile.shlib b/src/Makefile.shlib index 0d7283ce3e..555c97d88c 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -6,7 +6,7 @@ # Copyright (c) 1998, Regents of the University of California # # IDENTIFICATION -# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.77 2004/07/13 00:06:46 tgl Exp $ +# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.78 2004/09/02 23:06:43 tgl Exp $ # #------------------------------------------------------------------------- @@ -148,10 +148,14 @@ endif ifeq ($(PORTNAME), hpux) shlib = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) - LINK.shared = $(LD) +h $(soname) -b +b $(libdir) ifeq ($(GCC), yes) SHLIB_LINK += `$(CC) -print-libgcc-file-name` endif + ifeq ($(with_gnu_ld), yes) + LINK.shared = $(CC) $(LDFLAGS) -shared -Wl,-h -Wl,$(soname) + else + LINK.shared = $(LD) +h $(soname) -b +b $(libdir) + endif endif ifeq ($(PORTNAME), irix) diff --git a/src/makefiles/Makefile.hpux b/src/makefiles/Makefile.hpux index 3f81ce3d91..2ffd791e40 100644 --- a/src/makefiles/Makefile.hpux +++ b/src/makefiles/Makefile.hpux @@ -11,14 +11,27 @@ ifeq ($(HAVE_POSIX_SIGNALS), no) LIBS := -lBSD $(LIBS) endif +# Using X/Open Networking Interfaces requires to link with libxnet. +# Without specifying this, bind(), getpeername() and so on don't work +# correctly in the LP64 data model. +LIBS := -lxnet $(LIBS) + # Embed 'libdir' as the shared library search path so that the executables # don't need SHLIB_PATH to be set. (We do not observe the --enable-rpath # switch here because you'd get rather bizarre behavior if you leave this # option off.) -LDFLAGS += -Wl,+b -Wl,$(libdir) +ifeq ($(with_gnu_ld), yes) + LDFLAGS += -Wl,-rpath -Wl,$(libdir) +else + LDFLAGS += -Wl,+b -Wl,$(libdir) +endif # catch null pointer dereferences -LDFLAGS += -Wl,-z +ifeq ($(with_gnu_ld), yes) +# XXX what to put here? +else + LDFLAGS += -Wl,-z +endif # set up appropriate options for shared library builds export_dynamic = -Wl,-E @@ -28,16 +41,24 @@ INSTALL_SHLIB_OPTS = -m 555 AROPT = crs -DLSUFFIX = .sl -ifeq ($(GCC), yes) -CFLAGS_SL = -fpic +ifeq ($(host_cpu), ia64) + DLSUFFIX = .so else -CFLAGS_SL = +z + DLSUFFIX = .sl +endif +ifeq ($(GCC), yes) + CFLAGS_SL = -fpic +else + CFLAGS_SL = +z endif # Rule for building shared libs (currently used only for regression test # shlib ... should go away, since this is not really enough knowledge) -%.sl: %.o +%$(DLSUFFIX): %.o +ifeq ($(with_gnu_ld), yes) + $(CC) $(LDFLAGS) -shared -o $@ $< +else $(LD) -b -o $@ $< +endif sqlmansect = 5