summaryrefslogtreecommitdiffstats
path: root/meta/packages/gcc/gcc-4.3.1/debian/gcc-ssp-default.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.1/debian/gcc-ssp-default.dpatch')
-rw-r--r--meta/packages/gcc/gcc-4.3.1/debian/gcc-ssp-default.dpatch209
1 files changed, 209 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.3.1/debian/gcc-ssp-default.dpatch b/meta/packages/gcc/gcc-4.3.1/debian/gcc-ssp-default.dpatch
new file mode 100644
index 0000000000..6ba9893680
--- /dev/null
+++ b/meta/packages/gcc/gcc-4.3.1/debian/gcc-ssp-default.dpatch
@@ -0,0 +1,209 @@
1#! /bin/sh -e
2
3# DP: Turn on -fstack-protector by default for C, C++, ObjC, ObjC++.
4# DP: Build libgcc using -fno-stack-protector.
5
6dir=
7if [ $# -eq 3 -a "$2" = '-d' ]; then
8 pdir="-d $3"
9 dir="$3/"
10elif [ $# -ne 1 ]; then
11 echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
12 exit 1
13fi
14case "$1" in
15 -patch)
16 patch $pdir -f --no-backup-if-mismatch -p0 < $0
17 ;;
18 -unpatch)
19 patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
20 ;;
21 *)
22 echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
23 exit 1
24esac
25exit 0
26
27--- gcc/doc/invoke.texi.orig 2007-11-29 11:21:52.863409623 +0000
28+++ gcc/doc/invoke.texi 2007-11-29 11:22:35.014045455 +0000
29@@ -6553,6 +6553,10 @@
30 when a function is entered and then checked when the function exits.
31 If a guard check fails, an error message is printed and the program exits.
32
33+NOTE: In Ubuntu 6.10 and later versions this option is enabled by default
34+for C, C++, ObjC, ObjC++, if neither @option{-no-fstack-protector}
35+nor @option{-nostdlib} are found.
36+
37 @item -fstack-protector-all
38 @opindex fstack-protector-all
39 Like @option{-fstack-protector} except that all functions are protected.
40--- gcc/objc/lang-specs.h.orig 2007-11-29 11:21:52.863409623 +0000
41+++ gcc/objc/lang-specs.h 2007-11-29 11:22:35.014045455 +0000
42@@ -30,13 +30,13 @@
43 %{traditional|ftraditional|traditional-cpp:\
44 %eGNU Objective C no longer supports traditional compilation}\
45 %{save-temps|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps:%b.mi} %{!save-temps:%g.mi} \n\
46- cc1obj -fpreprocessed %{save-temps:%b.mi} %{!save-temps:%g.mi} %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\
47+ cc1obj -fpreprocessed %{save-temps:%b.mi} %{!save-temps:%g.mi} %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}}\
48 %{!save-temps:%{!no-integrated-cpp:\
49- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}}\
50+ cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}}}\
51 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
52 {".mi", "@objc-cpp-output", 0, 0, 0},
53 {"@objc-cpp-output",
54- "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
55+ "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\
56 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
57 {"@objective-c-header",
58 "%{E|M|MM:cc1obj -E %{traditional|ftraditional|traditional-cpp:-traditional-cpp}\
59@@ -45,10 +45,10 @@
60 %{traditional|ftraditional|traditional-cpp:\
61 %eGNU Objective C no longer supports traditional compilation}\
62 %{save-temps|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps:%b.mi} %{!save-temps:%g.mi} \n\
63- cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
64+ cc1obj -fpreprocessed %b.mi %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\
65 -o %g.s %{!o*:--output-pch=%i.gch}\
66 %W{o*:--output-pch=%*}%V}\
67 %{!save-temps:%{!no-integrated-cpp:\
68- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
69+ cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\
70 -o %g.s %{!o*:--output-pch=%i.gch}\
71 %W{o*:--output-pch=%*}%V}}}}}", 0, 0, 0},
72--- gcc/objcp/lang-specs.h.orig 2007-11-29 11:21:52.863409623 +0000
73+++ gcc/objcp/lang-specs.h 2007-11-29 11:22:35.014045455 +0000
74@@ -36,7 +36,7 @@
75 %(cpp_options) %2 -o %{save-temps:%b.mii} %{!save-temps:%g.mii} \n}\
76 cc1objplus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.mii} %{!save-temps:%g.mii}}\
77 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
78- %(cc1_options) %2 %{+e1*}\
79+ %(cc1_options) %(ssp_default) %2 %{+e1*}\
80 -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}",
81 CPLUSPLUS_CPP_SPEC, 0, 0},
82 {"@objective-c++",
83@@ -46,15 +46,15 @@
84 %(cpp_options) %2 -o %{save-temps:%b.mii} %{!save-temps:%g.mii} \n}\
85 cc1objplus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.mii} %{!save-temps:%g.mii}}\
86 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
87- %(cc1_options) %2 %{+e1*}\
88+ %(cc1_options) %(ssp_default) %2 %{+e1*}\
89 %{!fsyntax-only:%(invoke_as)}}}}",
90 CPLUSPLUS_CPP_SPEC, 0, 0},
91 {".mii", "@objective-c++-cpp-output", 0, 0, 0},
92 {"@objective-c++-cpp-output",
93 "%{!M:%{!MM:%{!E:\
94- cc1objplus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
95+ cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2 %{+e*}\
96 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
97 {"@objc++-cpp-output",
98 "%{!M:%{!MM:%{!E:\
99- cc1objplus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
100+ cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2 %{+e*}\
101 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
102--- gcc/cp/lang-specs.h.orig 2007-11-29 11:21:52.863409623 +0000
103+++ gcc/cp/lang-specs.h 2007-11-29 11:22:35.014045455 +0000
104@@ -47,7 +47,7 @@
105 %(cpp_options) %2 -o %{save-temps:%b.ii} %{!save-temps:%g.ii} \n}\
106 cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}}\
107 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
108- %(cc1_options) %2 %{+e1*}\
109+ %(cc1_options) %(ssp_default) %2 %{+e1*}\
110 %{!fsyntax-only:-o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}}",
111 CPLUSPLUS_CPP_SPEC, 0, 0},
112 {"@c++",
113@@ -57,11 +57,11 @@
114 %(cpp_options) %2 -o %{save-temps:%b.ii} %{!save-temps:%g.ii} \n}\
115 cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}}\
116 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
117- %(cc1_options) %2 %{+e1*}\
118+ %(cc1_options) %(ssp_default) %2 %{+e1*}\
119 %{!fsyntax-only:%(invoke_as)}}}}",
120 CPLUSPLUS_CPP_SPEC, 0, 0},
121 {".ii", "@c++-cpp-output", 0, 0, 0},
122 {"@c++-cpp-output",
123 "%{!M:%{!MM:%{!E:\
124- cc1plus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
125+ cc1plus -fpreprocessed %i %(cc1_options) %(ssp_default) %2 %{+e*}\
126 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
127--- gcc/Makefile.in.orig 2007-11-29 11:21:52.863409623 +0000
128+++ gcc/Makefile.in 2007-11-29 11:23:23.254773156 +0000
129@@ -559,6 +559,7 @@
130 LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
131 $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
132 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
133+ -fno-stack-protector \
134 $(INHIBIT_LIBC_CFLAGS)
135
136 # Additional options to use when compiling libgcc2.a.
137@@ -572,6 +573,7 @@
138 CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
139 -finhibit-size-directive -fno-inline-functions -fno-exceptions \
140 -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
141+ -fno-stack-protector \
142 $(INHIBIT_LIBC_CFLAGS)
143
144 # Additional sources to handle exceptions; overridden by targets as needed.
145--- gcc/gcc.c.orig 2007-11-29 11:21:52.873409773 +0000
146+++ gcc/gcc.c 2007-11-29 11:22:35.024045606 +0000
147@@ -701,6 +701,10 @@
148 #endif
149 #endif
150
151+#ifndef SSP_DEFAULT_SPEC
152+#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!nostdlib:-fstack-protector}}"
153+#endif
154+
155 #ifndef LINK_PIE_SPEC
156 #ifdef HAVE_LD_PIE
157 #define LINK_PIE_SPEC "%{pie:-pie} "
158@@ -754,6 +758,7 @@
159 static const char *cc1plus_spec = CC1PLUS_SPEC;
160 static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC;
161 static const char *link_ssp_spec = LINK_SSP_SPEC;
162+static const char *ssp_default_spec = SSP_DEFAULT_SPEC;
163 static const char *asm_spec = ASM_SPEC;
164 static const char *asm_final_spec = ASM_FINAL_SPEC;
165 static const char *link_spec = LINK_SPEC;
166@@ -827,6 +832,7 @@
167 %{--help=*:--help=%(VALUE)}\
168 %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
169 %{fsyntax-only:-o %j} %{-param*}\
170+ %(ssp_default)\
171 %{fmudflap|fmudflapth:-fno-builtin -fno-merge-constants}\
172 %{coverage:-fprofile-arcs -ftest-coverage}";
173
174@@ -988,15 +994,15 @@
175 %{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
176 %(cpp_options) -o %{save-temps:%b.i} %{!save-temps:%g.i} \n\
177 cc1 -fpreprocessed %{save-temps:%b.i} %{!save-temps:%g.i} \
178- %(cc1_options)}\
179+ %(cc1_options) %(ssp_default)}\
180 %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
181- cc1 %(cpp_unique_options) %(cc1_options)}}}\
182+ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}\
183 %{!fsyntax-only:%(invoke_as)}} \
184 %{combine:\
185 %{save-temps|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
186 %(cpp_options) -o %{save-temps:%b.i} %{!save-temps:%g.i}}\
187 %{!save-temps:%{!traditional-cpp:%{!no-integrated-cpp:\
188- cc1 %(cpp_unique_options) %(cc1_options)}}\
189+ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}\
190 %{!fsyntax-only:%(invoke_as)}}}}}}", 0, 1, 1},
191 {"-",
192 "%{!E:%e-E or -x required when input is from standard input}\
193@@ -1019,7 +1025,7 @@
194 %W{o*:--output-pch=%*}%V}}}}}}", 0, 0, 0},
195 {".i", "@cpp-output", 0, 1, 0},
196 {"@cpp-output",
197- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 1, 0},
198+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %(ssp_default) %{!fsyntax-only:%(invoke_as)}}}}", 0, 1, 0},
199 {".s", "@assembler", 0, 1, 0},
200 {"@assembler",
201 "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 1, 0},
202@@ -1579,6 +1585,7 @@
203 INIT_STATIC_SPEC ("cc1plus", &cc1plus_spec),
204 INIT_STATIC_SPEC ("link_gcc_c_sequence", &link_gcc_c_sequence_spec),
205 INIT_STATIC_SPEC ("link_ssp", &link_ssp_spec),
206+ INIT_STATIC_SPEC ("ssp_default", &ssp_default_spec),
207 INIT_STATIC_SPEC ("endfile", &endfile_spec),
208 INIT_STATIC_SPEC ("link", &link_spec),
209 INIT_STATIC_SPEC ("lib", &lib_spec),