diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 02c32de3a0f1fa2f1dad6a941333eabaf91c5319..2c8f38f1e716d37845f82796115664f364c0ccf5 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -1,5 +1,5 @@ # -*-makefile-*- -# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.204 2004/10/20 02:12:07 neilc Exp $ +# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.205 2004/11/19 00:41:38 tgl Exp $ #------------------------------------------------------------------------------ # All PostgreSQL makefiles include this file and use the variables it sets, @@ -284,6 +284,10 @@ ELF_SYSTEM= @ELF_SYS@ # Pull in platform-specific magic include $(top_builddir)/src/Makefile.port +# Set up rpath if enabled. By default it will point to our libdir, +# but individual Makefiles can force other rpath paths if needed. +rpathdir = $(libdir) + ifeq ($(enable_rpath), yes) LDFLAGS += $(rpath) endif diff --git a/src/makefiles/Makefile.bsdi b/src/makefiles/Makefile.bsdi index 99be3eebb10fc6e6c27654396cb3ed911476cd81..0257f6367a46128245dfbf23f3db647fa8d82386 100644 --- a/src/makefiles/Makefile.bsdi +++ b/src/makefiles/Makefile.bsdi @@ -14,7 +14,7 @@ endif ifeq ($(DLSUFFIX), .so) CFLAGS_SL = -fpic -rpath = -Wl,-rpath,$(libdir) +rpath = -Wl,-rpath,$(rpathdir) export_dynamic = -export-dynamic shlib_symbolic = -Wl,-Bsymbolic else diff --git a/src/makefiles/Makefile.freebsd b/src/makefiles/Makefile.freebsd index a9e59604d5a4448c5da0cee8835f685db805ae75..8f41ea4d867ed4cf2debaee3e5bd549d155a858e 100644 --- a/src/makefiles/Makefile.freebsd +++ b/src/makefiles/Makefile.freebsd @@ -2,7 +2,7 @@ AROPT = cr ifdef ELF_SYSTEM export_dynamic = -export-dynamic -rpath = -R$(libdir) +rpath = -R$(rpathdir) shlib_symbolic = -Wl,-Bsymbolic -lc endif diff --git a/src/makefiles/Makefile.hpux b/src/makefiles/Makefile.hpux index 2ffd791e40109d1ac71d47718ed5bb454a746995..4a1e551ec148456f8585689698bc4d22fd61fb62 100644 --- a/src/makefiles/Makefile.hpux +++ b/src/makefiles/Makefile.hpux @@ -16,14 +16,12 @@ endif # 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.) +# Set up rpath so that the executables don't need SHLIB_PATH to be set. +# (Note: --disable-rpath is a really bad idea on this platform...) ifeq ($(with_gnu_ld), yes) - LDFLAGS += -Wl,-rpath -Wl,$(libdir) + rpath = -Wl,-rpath,$(rpathdir) else - LDFLAGS += -Wl,+b -Wl,$(libdir) + rpath = -Wl,+b,$(rpathdir) endif # catch null pointer dereferences diff --git a/src/makefiles/Makefile.irix b/src/makefiles/Makefile.irix index 4062161d9ef58587b5a68a0683e656ddf8db705d..4486ed05e09d57481052442edbfd22bedd7d0b2f 100644 --- a/src/makefiles/Makefile.irix +++ b/src/makefiles/Makefile.irix @@ -1,6 +1,6 @@ MK_NO_LORDER= true AROPT = crs -rpath = -Wl,-rpath,$(libdir) +rpath = -Wl,-rpath,$(rpathdir) shlib_symbolic = -Wl,-B,symbolic DLSUFFIX = .so diff --git a/src/makefiles/Makefile.linux b/src/makefiles/Makefile.linux index e48ad5a6b105015b973ecef105c22166addf8e71..c473214466e2aa6c459d79955f52f80c65e7a154 100644 --- a/src/makefiles/Makefile.linux +++ b/src/makefiles/Makefile.linux @@ -1,6 +1,6 @@ AROPT = crs export_dynamic = -Wl,-E -rpath = -Wl,-rpath,$(libdir) +rpath = -Wl,-rpath,$(rpathdir) shlib_symbolic = -Wl,-Bsymbolic allow_nonpic_in_shlib = yes DLSUFFIX = .so diff --git a/src/makefiles/Makefile.netbsd b/src/makefiles/Makefile.netbsd index 531fc1356b5f77433e7013f9298239634bfa7a20..2b6a1e13fd25560f1df6b3a49f47bdb2aa0507cb 100644 --- a/src/makefiles/Makefile.netbsd +++ b/src/makefiles/Makefile.netbsd @@ -2,10 +2,10 @@ AROPT = cr ifdef ELF_SYSTEM export_dynamic = -Wl,-E -rpath = -Wl,-R$(libdir) +rpath = -Wl,-R$(rpathdir) shlib_symbolic = -Wl,-Bsymbolic -lc else -rpath = -R$(libdir) +rpath = -R$(rpathdir) endif DLSUFFIX = .so diff --git a/src/makefiles/Makefile.openbsd b/src/makefiles/Makefile.openbsd index 66671e675fb074a64dc5c5b1c1e16586d8c23ed7..e35739573cdba6080611899b52bb4fdfb49f583a 100644 --- a/src/makefiles/Makefile.openbsd +++ b/src/makefiles/Makefile.openbsd @@ -2,7 +2,7 @@ AROPT = cr ifdef ELF_SYSTEM export_dynamic = -Wl,-E -rpath = -R$(libdir) +rpath = -R$(rpathdir) shlib_symbolic = -Wl,-Bsymbolic endif diff --git a/src/makefiles/Makefile.osf b/src/makefiles/Makefile.osf index 4ee46ccd756b19cefc8692f75a937bdbb1591317..ebd6c30149bcd8c51640fcdd6deca29c896af131 100644 --- a/src/makefiles/Makefile.osf +++ b/src/makefiles/Makefile.osf @@ -1,7 +1,7 @@ AROPT = crs DLSUFFIX = .so CFLAGS_SL = -rpath = -rpath $(libdir) +rpath = -rpath $(rpathdir) %.so: %.o $(LD) -shared -expect_unresolved '*' -o $@ $< diff --git a/src/makefiles/Makefile.solaris b/src/makefiles/Makefile.solaris index d6fb7d8a7e7f250ea402ea0d751a65bf25e63131..2ff7e28c90756a65c4d38d1276fe831ff73b9942 100644 --- a/src/makefiles/Makefile.solaris +++ b/src/makefiles/Makefile.solaris @@ -1,12 +1,12 @@ -# $PostgreSQL: pgsql/src/makefiles/Makefile.solaris,v 1.10 2003/11/29 19:52:12 pgsql Exp $ +# $PostgreSQL: pgsql/src/makefiles/Makefile.solaris,v 1.11 2004/11/19 00:41:39 tgl Exp $ AROPT = crs ifeq ($(with_gnu_ld), yes) export_dynamic = -Wl,-E -rpath = -Wl,-rpath,$(libdir) +rpath = -Wl,-rpath,$(rpathdir) else -rpath = -R$(libdir) +rpath = -R$(rpathdir) endif shlib_symbolic = -Wl,-Bsymbolic diff --git a/src/makefiles/Makefile.unixware b/src/makefiles/Makefile.unixware index 3372a8e5747003cf61f01cd75e00a5388002267b..e8953756a678110f79db17b92a1edad2593c2240 100644 --- a/src/makefiles/Makefile.unixware +++ b/src/makefiles/Makefile.unixware @@ -7,9 +7,9 @@ endif ifeq ($(ld_R_works), yes) ifeq ($(with_gnu_ld), yes) - rpath = -Wl,-rpath,$(libdir) + rpath = -Wl,-rpath,$(rpathdir) else - rpath = -Wl,-R$(libdir) + rpath = -Wl,-R$(rpathdir) endif endif shlib_symbolic = -Wl,-Bsymbolic