Blob Blame History Raw
--- subversion-1.5.0/build.conf.pie
+++ subversion-1.5.0/build.conf
@@ -452,7 +452,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)
@@ -475,7 +475,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.5.0/build/generator/gen_base.py.pie
+++ subversion-1.5.0/build/generator/gen_base.py
@@ -411,6 +411,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)
 
@@ -453,8 +456,11 @@ class TargetLib(TargetLinked):
     self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
     self.msvc_export = string.split(options.get('msvc-export', ''))
 
-    ### 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.5.0/Makefile.in.pie
+++ subversion-1.5.0/Makefile.in
@@ -2,7 +2,7 @@
 # Makefile.in:  template Makefile for Subversion
 #
 # ====================================================================
-# Copyright (c) 2000-2006 CollabNet.  All rights reserved.
+# Copyright (c) 2000-2006, 2008 CollabNet.  All rights reserved.
 #
 # This software is licensed as described in the file COPYING, which
 # you should have received as part of this distribution.  The terms
@@ -150,9 +150,10 @@ CXXFLAGS = @CXXFLAGS@ $(EXTRA_CXXFLAGS)
 CPPFLAGS = @CPPFLAGS@ $(EXTRA_CPPFLAGS)
 LDFLAGS = @LDFLAGS@ $(EXTRA_LDFLAGS)
 
-COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES)
+BASE_COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES)
+COMPILE = $(BASE_COMPILE) -fpie
 COMPILE_CXX = $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDES)
-LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE)
+LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(BASE_COMPILE)
 
 # special compilation for files destined for mod_dav_svn
 COMPILE_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) $(APACHE_INCLUDES) $(INCLUDES) -o $@ -c
@@ -167,8 +168,11 @@ 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)
-LINK_LIB = $(LINK) -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)
 
 # 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)