]> git.ipfire.org Git - ipfire-3.x.git/blob - subversion/patches/0002-subversion-1.9.0-pie.patch
Subversion: Update to 1.9.4
[ipfire-3.x.git] / subversion / patches / 0002-subversion-1.9.0-pie.patch
1
2 Link executables using -pie, link test executables using -no-install.
3
4 diff -uap subversion-1.9.0/build.conf.pie subversion-1.9.0/build.conf
5 diff -uap subversion-1.9.0/build.conf.pie subversion-1.9.0/build.conf
6 diff -uap subversion-1.9.0/build.conf.pie subversion-1.9.0/build.conf
7 --- subversion-1.9.0/build.conf.pie
8 +++ subversion-1.9.0/build.conf
9 @@ -743,7 +743,7 @@ libs = libsvncxxhl libgmock libsvn_subr
10 sources = tests/*.cpp
11 install = tests
12 compile-cmd = $(COMPILE_CXXHL_GMOCK_CXX)
13 -link-cmd = $(LINK_CXX)
14 +link-cmd = $(LINK_TEST_CXX)
15
16
17 # ----------------------------------------------------------------------------
18 @@ -760,7 +760,7 @@ sources = gmock-gtest-all.cc
19 install = tests
20 msvc-static = yes
21 compile-cmd = $(COMPILE_GMOCK_CXX)
22 -link-cmd = $(LINK_CXX_LIB)
23 +link-cmd = $(LINK_TEST_CXX_LIB)
24
25 # ----------------------------------------------------------------------------
26 #
27 @@ -775,6 +775,7 @@ install = test
28 libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr aprutil apriconv apr
29 msvc-static = yes
30 undefined-lib-symbols = yes
31 +link-cmd = $(LINK_TEST_LIB)
32
33 # ----------------------------------------------------------------------------
34 # Tests for libsvn_fs_base
35 diff -uap subversion-1.9.0/build/generator/gen_base.py.pie subversion-1.9.0/build/generator/gen_base.py
36 --- subversion-1.9.0/build/generator/gen_base.py.pie
37 +++ subversion-1.9.0/build/generator/gen_base.py
38 @@ -585,7 +585,7 @@ class TargetLinked(Target):
39 self.install = options.get('install')
40 self.compile_cmd = options.get('compile-cmd')
41 self.sources = options.get('sources', '*.c *.cpp')
42 - self.link_cmd = options.get('link-cmd', '$(LINK)')
43 + self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
44
45 self.external_lib = options.get('external-lib')
46 self.external_project = options.get('external-project')
47 @@ -644,6 +644,14 @@ class TargetExe(TargetLinked):
48
49 self.msvc_force_static = options.get('msvc-force-static') == 'yes'
50
51 + if self.install in ['test', 'bdb-test', 'sub-test', ]:
52 + self.link_cmd = '$(LINK_TEST)'
53 + elif self.link_cmd == '$(LINK_LIB)':
54 + # Over-ride the default for TargetLinked.
55 + self.link_cmd = '$(LINK_EXE)'
56 + elif self.link_cmd not in ['$(LINK_TEST_CXX)', ]:
57 + raise GenError('ERROR: Unknown executable link type for ' + self.name + ': ' + self.link_cmd)
58 +
59 def add_dependencies(self):
60 TargetLinked.add_dependencies(self)
61
62 diff -uap subversion-1.9.0/Makefile.in.pie subversion-1.9.0/Makefile.in
63 --- subversion-1.9.0/Makefile.in.pie
64 +++ subversion-1.9.0/Makefile.in
65 @@ -259,6 +259,11 @@ LINK = $(LIBTOOL) $(LTFLAGS) --mode=link
66 LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
67 LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS)
68 LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) -rpath $(libdir)
69 +LINK_TEST = $(LINK) -no-install
70 +LINK_TEST_LIB = $(LINK) -avoid-version
71 +LINK_TEST_CXX_LIB = $(LINK_CXX) -avoid-version
72 +LINK_EXE = $(LINK) -pie
73 +LINK_CXX_EXE = $(LINK) -pie
74
75 # special link rule for mod_dav_svn
76 LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS)
77 @@ -753,10 +758,10 @@ schema-clean:
78 $(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
79
80 .c.o:
81 - $(COMPILE) -o $@ -c $<
82 + $(COMPILE) -fPIE -o $@ -c $<
83
84 .cpp.o:
85 - $(COMPILE_CXX) -o $@ -c $<
86 + $(COMPILE_CXX) -fPIE -o $@ -c $<
87
88 .c.lo:
89 $(LT_COMPILE) -o $@ -c $<