--- 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)