diff options
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.dpatch | 209 |
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 | |||
6 | dir= | ||
7 | if [ $# -eq 3 -a "$2" = '-d' ]; then | ||
8 | pdir="-d $3" | ||
9 | dir="$3/" | ||
10 | elif [ $# -ne 1 ]; then | ||
11 | echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" | ||
12 | exit 1 | ||
13 | fi | ||
14 | case "$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 | ||
24 | esac | ||
25 | exit 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), | ||