aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Gierth <rhodiumtoad@postgresql.org>2019-02-04 18:47:33 +0000
committerAndrew Gierth <rhodiumtoad@postgresql.org>2019-02-04 18:56:17 +0000
commited1bb25075c5f12993af66bb0aba114f843b2764 (patch)
tree3fd0357f7bd5012a535dfb34ccc00f0eec52c057 /src
parent40e821b01870a1de5e3fdcf5c76d46116c0a56b7 (diff)
downloadpostgresql-ed1bb25075c5f12993af66bb0aba114f843b2764.tar.gz
postgresql-ed1bb25075c5f12993af66bb0aba114f843b2764.zip
Move port-specific parts of with_temp_install to port makefile.
Rather than define ld_library_path_ver with a big nested $(if), just put the overriding values in the makefiles for the relevant ports. Also add a variable for port makefiles to append their own stuff to with_temp_install, and use it to set LD_LIBRARY_PATH_RPATH=1 on FreeBSD which is needed to make LD_LIBRARY_PATH override DT_RPATH if DT_RUNPATH is not set (which seems to depend in unpredictable ways on the choice of compiler, at least on my system). Backpatch for the benefit of anyone doing regression tests on FreeBSD. (For other platforms there should be no functional change.)
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.global.in17
-rw-r--r--src/makefiles/Makefile.aix3
-rw-r--r--src/makefiles/Makefile.darwin3
-rw-r--r--src/makefiles/Makefile.freebsd8
-rw-r--r--src/makefiles/Makefile.hpux3
5 files changed, 27 insertions, 7 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 18a9394c8f9..e47cb759ad3 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -414,13 +414,16 @@ $(1)="$(if $($(1)),$(2):$$$(1),$(2))"
endef
# platform-specific environment variable to set shared library path
-define ld_library_path_var
-$(if $(filter $(PORTNAME),darwin),DYLD_LIBRARY_PATH,$(if $(filter $(PORTNAME),aix),LIBPATH,$(if $(filter $(PORTNAME),hpux),SHLIB_PATH,LD_LIBRARY_PATH)))
-endef
-
-define with_temp_install
-PATH="$(abs_top_builddir)/tmp_install$(bindir):$$PATH" $(call add_to_path,$(ld_library_path_var),$(abs_top_builddir)/tmp_install$(libdir))
-endef
+# individual ports can override this later, this is the default name
+ld_library_path_var = LD_LIBRARY_PATH
+
+# with_temp_install_extra is for individual ports to define if they
+# need something more here. If not defined then the expansion does
+# nothing.
+with_temp_install = \
+ PATH="$(abs_top_builddir)/tmp_install$(bindir):$$PATH" \
+ $(call add_to_path,$(strip $(ld_library_path_var)),$(abs_top_builddir)/tmp_install$(libdir)) \
+ $(with_temp_install_extra)
ifeq ($(enable_tap_tests),yes)
diff --git a/src/makefiles/Makefile.aix b/src/makefiles/Makefile.aix
index e5ad89d1470..00b5ea115db 100644
--- a/src/makefiles/Makefile.aix
+++ b/src/makefiles/Makefile.aix
@@ -23,6 +23,9 @@ else
LDFLAGS_SL += -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE
endif
+# env var name to use in place of LD_LIBRARY_PATH
+ld_library_path_var = LIBPATH
+
POSTGRES_IMP= postgres.imp
diff --git a/src/makefiles/Makefile.darwin b/src/makefiles/Makefile.darwin
index 7a8ba3e5274..892c2cb2d7a 100644
--- a/src/makefiles/Makefile.darwin
+++ b/src/makefiles/Makefile.darwin
@@ -2,6 +2,9 @@ AROPT = crs
DLSUFFIX = .so
+# env var name to use in place of LD_LIBRARY_PATH
+ld_library_path_var = DYLD_LIBRARY_PATH
+
ifdef PGXS
BE_DLLLIBS = -bundle_loader $(bindir)/postgres
else
diff --git a/src/makefiles/Makefile.freebsd b/src/makefiles/Makefile.freebsd
index 5a98e5a2b0b..5008c96b3f5 100644
--- a/src/makefiles/Makefile.freebsd
+++ b/src/makefiles/Makefile.freebsd
@@ -9,6 +9,14 @@ DLSUFFIX = .so
CFLAGS_SL = -fPIC -DPIC
+# extra stuff for $(with_temp_install)
+# we need this to get LD_LIBRARY_PATH searched ahead of the compiled-in
+# rpath, if no DT_RUNPATH is present in the executable. The conditions
+# under which DT_RUNPATH are added seem unpredictable, so be safe.
+
+define with_temp_install_extra
+LD_LIBRARY_PATH_RPATH=1
+endef
# Rule for building a shared library from a single .o file
%.so: %.o
diff --git a/src/makefiles/Makefile.hpux b/src/makefiles/Makefile.hpux
index 97bd0ba6d9e..84a1cc35425 100644
--- a/src/makefiles/Makefile.hpux
+++ b/src/makefiles/Makefile.hpux
@@ -36,6 +36,9 @@ else
CFLAGS_SL = +Z
endif
+# env var name to use in place of LD_LIBRARY_PATH
+ld_library_path_var = SHLIB_PATH
+
# Rule for building a shared library from a single .o file
%$(DLSUFFIX): %.o
ifeq ($(GCC), yes)