Prevent the linker from adding an rpath to shared libraries. Original patch by David Kimdon . The basic theory is: - Split the $(LINK) makefile macro into $(LINK) and $(LINK_LIB). - Comment out LD_RUN_PATH in the Perl makefiles. - Use libtool instead of apxs to install the apache modules. libtool relinks without rpath in this case, apxs obviously doesn't. --- Makefile.in | 12 +++++++----- build.conf | 4 ++-- build/generator/gen_base.py | 3 ++- 3 files changed, 11 insertions(+), 8 deletions(-) Index: subversion-1.14.3/Makefile.in =================================================================== --- subversion-1.14.3.orig/Makefile.in +++ subversion-1.14.3/Makefile.in @@ -272,10 +272,10 @@ TEST_SHLIB_VAR_SWIG_RB=\ COMPILE_SVNXX = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) -o $@ -c COMPILE_SVNXX_TEST = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) $(BOOST_TEST_CPPFLAGS) -o $@ -c -LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir) -LINK_LIB = $(LINK) $(LT_SO_VERSION) -LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir) -LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) +LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) +LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir) +LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) +LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) -rpath $(libdir) LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS) # special link rule for mod_dav_svn @@ -883,7 +883,9 @@ $(SWIG_PL_DIR)/native/Makefile.PL: $(SWI ./config.status subversion/bindings/swig/perl/native/Makefile.PL $(SWIG_PL_DIR)/native/Makefile: libsvn_swig_perl $(SWIG_PL_DIR)/native/Makefile.PL - cd $(SWIG_PL_DIR)/native; $(SWIG_PL_PERL) Makefile.PL PREFIX=$(prefix) + cd $(SWIG_PL_DIR)/native; \ + $(SWIG_PL_PERL) Makefile.PL PREFIX=$(prefix) INSTALLDIRS=vendor; \ + sed -i -e '/^LD_RUN_PATH/s/^/#/' Makefile Makefile.[a-z]* # There is a "readlink -f" command on some systems for the same purpose, # but it's not as portable (e.g. Mac OS X doesn't have it). These should Index: subversion-1.14.3/build.conf =================================================================== --- subversion-1.14.3.orig/build.conf +++ subversion-1.14.3/build.conf @@ -573,7 +573,7 @@ lang = python path = subversion/bindings/swig/python/libsvn_swig_py libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr apriconv apr python swig -link-cmd = $(LINK) +link-cmd = $(LINK_LIB) $(SWIG_PY_LIBS) install = swig-py-lib # need special build rule to include -DSWIGPYTHON compile-cmd = $(COMPILE_SWIG_PY) @@ -599,7 +599,7 @@ type = swig_lib lang = ruby path = subversion/bindings/swig/ruby/libsvn_swig_ruby libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr ruby swig -link-cmd = $(LINK) $(SWIG_RB_LIBS) +link-cmd = $(LINK_LIB) $(SWIG_RB_LIBS) install = swig-rb-lib # need special build rule to include compile-cmd = $(COMPILE_SWIG_RB) Index: subversion-1.14.3/build/generator/gen_base.py =================================================================== --- subversion-1.14.3.orig/build/generator/gen_base.py +++ subversion-1.14.3/build/generator/gen_base.py @@ -600,7 +600,7 @@ class TargetLinked(Target): self.install = options.get('install') self.compile_cmd = options.get('compile-cmd') self.sources = options.get('sources', '*.c *.cpp') - self.link_cmd = options.get('link-cmd', '$(LINK)') + self.link_cmd = options.get('link-cmd', '$(LINK_LIB)') self.external_lib = options.get('external-lib') self.external_project = options.get('external-project') @@ -654,6 +654,7 @@ class TargetExe(TargetLinked): extmap = self.gen_obj._extension_map self.objext = extmap['exe', 'object'] self.filename = build_path_join(self.path, name + extmap['exe', 'target']) + self.link_cmd = '$(LINK)' self.manpages = options.get('manpages', '') self.testing = options.get('testing')