- restore PIE support

This commit is contained in:
Joe Orton 2010-09-03 15:47:21 +01:00
parent 4e0d1d395d
commit d9d021d68b
3 changed files with 61 additions and 68 deletions

View File

@ -1,62 +0,0 @@
--- subversion-1.6.0/build.conf.pie
+++ subversion-1.6.0/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.0/build/generator/gen_base.py.pie
+++ subversion-1.6.0/build/generator/gen_base.py
@@ -413,6 +413,9 @@ class TargetExe(TargetLinked):
self.manpages = options.get('manpages', '')
self.testing = options.get('testing')
+ if self.install == 'test' or self.install == 'bdb-test':
+ self.link_cmd = '$(LINK_TEST)'
+
def add_dependencies(self):
TargetLinked.add_dependencies(self)
@@ -455,8 +458,11 @@ 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)'
+ ### more Makefile-specific stuff:
+ if self.install == 'test':
+ self.link_cmd = '$(LINK_TEST_LIB)'
+ elif self.link_cmd == '$(LINK)':
+ self.link_cmd = '$(LINK_LIB)'
class TargetApacheMod(TargetLib):
--- subversion-1.6.0/Makefile.in.pie
+++ subversion-1.6.0/Makefile.in
@@ -184,8 +185,11 @@ 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)
+BASE_LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
+LINK = $(BASE_LINK) -pie
+LINK_TEST = $(BASE_LINK) -no-install
+LINK_LIB = $(BASE_LINK) -rpath $(libdir)
+LINK_TEST_LIB = $(BASE_LINK)
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
# special link rule for mod_dav_svn

View File

@ -0,0 +1,49 @@
--- subversion-1.6.11/build/generator/gen_base.py.pie
+++ subversion-1.6.11/build/generator/gen_base.py
@@ -357,7 +357,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')
@@ -413,6 +413,11 @@ class TargetExe(TargetLinked):
self.manpages = options.get('manpages', '')
self.testing = options.get('testing')
+ if self.install == 'test' or self.install == 'bdb-test':
+ self.link_cmd = '$(LINK_TEST)'
+ else:
+ self.link_cmd = '$(LINK_EXE)'
+
def add_dependencies(self):
TargetLinked.add_dependencies(self)
@@ -456,8 +461,8 @@ class TargetLib(TargetLinked):
self.msvc_export = options.get('msvc-export', '').split()
### hmm. this is Makefile-specific
- if self.link_cmd == '$(LINK)':
- self.link_cmd = '$(LINK_LIB)'
+ if self.install == 'test':
+ self.link_cmd = '$(LINK_TEST_LIB)'
class TargetApacheMod(TargetLib):
--- subversion-1.6.11/Makefile.in.pie
+++ subversion-1.6.11/Makefile.in
@@ -184,8 +184,11 @@ 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)
+LINK_LIB = $(LINK) -rpath $(libdir)
+LINK_TEST = $(LINK) -no-install
+LINK_TEST_LIB = $(LINK) -avoid-version
+LINK_EXE = $(LINK) -pie
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
# special link rule for mod_dav_svn

View File

@ -30,7 +30,7 @@ Source5: psvn-init.el
Patch0: subversion-1.6.5-newlines.patch
Patch2: subversion-1.6.0-deplibs.patch
Patch3: subversion-1.6.1-rpath.patch
Patch6: subversion-1.6.0-pie.patch
Patch6: subversion-1.6.11-pie.patch
Patch7: subversion-1.1.3-java.patch
Patch8: subversion-1.6.6-kwallet.patch
Patch9: subversion-1.6.12-disable-client-test.patch
@ -152,13 +152,10 @@ cd contrib/client-side/svn2cl
cd ../../..
%patch2 -p1 -b .deplibs
%patch3 -p1 -b .rpath
#patch6 -p1 -b .pie
%patch6 -p1 -b .pie
%if %{with_java}
%patch7 -p1 -b .java
%endif
%ifarch sparc64
sed -i -e 's|-fpie|-fPIE|g' Makefile.in
%endif
%patch8 -p1 -b .kwallet
%patch9 -p1 -b .disable-client-test
@ -188,7 +185,13 @@ export svn_cv_ruby_link="%{__cc} -shared"
export svn_cv_ruby_sitedir_libsuffix=""
export svn_cv_ruby_sitedir_archsuffix=""
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS"
%ifarch sparc64
pieflag=-fPIE
%else
pieflag=-fpie
%endif
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS $pieflag"
%configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
--with-swig --with-neon=%{_prefix} \
--with-ruby-sitedir=%{ruby_sitearch} \
@ -393,6 +396,9 @@ rm -rf ${RPM_BUILD_ROOT}
%{_mandir}/man1/svn2cl.1*
%changelog
* Fri Sep 3 2010 Joe Orton <jorton@redhat.com> - 1.6.12-3
- restore PIE support
* Sat Jul 24 2010 David Malcolm <dmalcolm@redhat.com> - 1.6.12-3
- for now, disable python cases that fail against python 2.7 (patch 9)