- fix libjavahl link (#496617)

- fix RPATHs in binaries (#469524)
This commit is contained in:
jorton 2009-05-14 10:45:26 +00:00
parent 6582f04ca6
commit b890c23a06
3 changed files with 60 additions and 33 deletions

View File

@ -1,31 +0,0 @@
Libraries should be linked with -rpath $libdir but programs should not.
Doing so for the latter means that a redundant RPATH entry of $libdir
will end up in the binaries.
The redundant RPATH can also cause obscure build failures by causing
in-build binaries to pick up libraries from the system environment,
which libtool will otherwise avoid.
--- subversion-1.6.0/build/generator/gen_base.py.rpath
+++ subversion-1.6.0/build/generator/gen_base.py
@@ -455,6 +455,9 @@ class TargetLib(TargetLinked):
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
self.msvc_export = options.get('msvc-export', '').split()
+ ### hmm. this is Makefile-specific
+ self.link_cmd = '$(LINK_LIB)'
+
class TargetApacheMod(TargetLib):
def __init__(self, name, options, gen_obj):
--- subversion-1.6.0/Makefile.in.rpath
+++ subversion-1.6.0/Makefile.in
@@ -184,6 +184,7 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
COMPILE_JAVAHL_JAVAH = $(JAVAH)
+LINK_LIB = $(LINK) -rpath $(libdir)
LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)

View File

@ -0,0 +1,54 @@
Libraries should be linked with -rpath $libdir but programs should not.
Doing so for the latter means that a redundant RPATH entry of $libdir
will end up in the binaries.
The redundant RPATH can also cause obscure build failures by causing
in-build binaries to pick up libraries from the system environment,
which libtool will otherwise avoid.
--- subversion-1.6.1/build.conf.rpath
+++ subversion-1.6.1/build.conf
@@ -472,7 +472,7 @@ type = swig_lib
lang = python
path = subversion/bindings/swig/python/libsvn_swig_py
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr apriconv apr
-link-cmd = $(LINK) $(SWIG_PY_LIBS)
+link-cmd = $(LINK_LIB) $(SWIG_PY_LIBS)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
@@ -495,7 +495,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
-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)
--- subversion-1.6.1/build/generator/gen_base.py.rpath
+++ subversion-1.6.1/build/generator/gen_base.py
@@ -455,6 +455,10 @@ class TargetLib(TargetLinked):
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
self.msvc_export = options.get('msvc-export', '').split()
+ ### hmm. this is Makefile-specific
+ if self.link_cmd == '$(LINK)':
+ self.link_cmd = '$(LINK_LIB)'
+
class TargetApacheMod(TargetLib):
def __init__(self, name, options, gen_obj):
--- subversion-1.6.1/Makefile.in.rpath
+++ subversion-1.6.1/Makefile.in
@@ -184,7 +184,8 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
COMPILE_JAVAHL_JAVAH = $(JAVAH)
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
+LINK_LIB = $(LINK) -rpath $(libdir)
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
# special link rule for mod_dav_svn

View File

@ -15,7 +15,7 @@
Summary: A Modern Concurrent Version Control System
Name: subversion
Version: 1.6.1
Release: 4%{?dist}
Release: 5%{?dist}
License: ASL 1.1
Group: Development/Tools
URL: http://subversion.tigris.org/
@ -25,7 +25,7 @@ Source3: filter-requires.sh
Source4: http://www.xsteve.at/prg/emacs/psvn.el
Source5: psvn-init.el
Patch2: subversion-1.6.0-deplibs.patch
Patch3: subversion-1.6.0-rpath.patch
Patch3: subversion-1.6.1-rpath.patch
Patch6: subversion-1.6.0-pie.patch
Patch7: subversion-1.1.3-java.patch
BuildRequires: autoconf, libtool, python, python-devel, texinfo, which
@ -286,6 +286,10 @@ rm -rf ${RPM_BUILD_ROOT}
%endif
%changelog
* Thu May 14 2009 Joe Orton <jorton@redhat.com> 1.6.1-5
- fix libjavahl link (#496617)
- fix RPATHs in binaries (#469524)
* Wed Apr 15 2009 Joe Orton <jorton@redhat.com> 1.6.1-4
- really disable PIE