subversion/subversion-1.8.0-rpath.patch

88 lines
4.2 KiB
Diff
Raw Normal View History

Prevent the linker from adding an rpath to shared libraries. Original
patch by David Kimdon <dwhedon@debian.org>. 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.10.0/Makefile.in
===================================================================
--- subversion-1.10.0.orig/Makefile.in
+++ subversion-1.10.0/Makefile.in
@@ -264,10 +264,10 @@ COMPILE_CXXHL_CXX = $(LT_COMPILE_CXX) $(
COMPILE_GOOGLEMOCK_CXX = $(LT_COMPILE_CXX_NOWARN) $(GOOGLEMOCK_LIB_INCLUDES) -o $@ -c
COMPILE_CXXHL_GOOGLEMOCK_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) $(GOOGLEMOCK_INCLUDES) -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)
# special link rule for mod_dav_svn
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS) -shared
@@ -864,7 +864,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; $(PERL) Makefile.PL PREFIX=$(prefix)
+ cd $(SWIG_PL_DIR)/native; \
+ $(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.10.0/build.conf
===================================================================
--- subversion-1.10.0.orig/build.conf
+++ subversion-1.10.0/build.conf
@@ -568,7 +568,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)
@@ -594,7 +594,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.10.0/build/generator/gen_base.py
===================================================================
--- subversion-1.10.0.orig/build/generator/gen_base.py
+++ subversion-1.10.0/build/generator/gen_base.py
@@ -599,7 +599,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')
@@ -653,6 +653,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')