Gentoo Archives: gentoo-commits

From: "Ryan Hill (dirtyepic)" <dirtyepic@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/gcc/4.5.3/pie: 10_all_gcc45_configure.patch 11_all_gcc44_config.in.patch 12_all_gcc45_Makefile.in.patch 20_all_gcc45_gcc.c.patch 21_all_gcc44_decl-tls-model.patch 30_all_gcc44_esp.h.patch 33_all_gcc45_config_rs6000_linux64.h.patch 35_all_gcc44_config_crtbegints.patch 40_all_gcc44_cp_lang-specs.h.patch 41_all_gcc44_objc_lang-specs.h.patch 42_all_gcc44_objcp_lang-specs.h.patch 60_all_gcc44_invoke.texi.patch README README.Changelog README.Gentoo.patches README.history
Date: Thu, 04 Aug 2011 03:10:34
Message-Id: 20110804031022.C0E9120054@flycatcher.gentoo.org
1 dirtyepic 11/08/04 03:10:22
2
3 Added: 10_all_gcc45_configure.patch
4 11_all_gcc44_config.in.patch
5 12_all_gcc45_Makefile.in.patch
6 20_all_gcc45_gcc.c.patch
7 21_all_gcc44_decl-tls-model.patch
8 30_all_gcc44_esp.h.patch
9 33_all_gcc45_config_rs6000_linux64.h.patch
10 35_all_gcc44_config_crtbegints.patch
11 40_all_gcc44_cp_lang-specs.h.patch
12 41_all_gcc44_objc_lang-specs.h.patch
13 42_all_gcc44_objcp_lang-specs.h.patch
14 60_all_gcc44_invoke.texi.patch README
15 README.Changelog README.Gentoo.patches
16 README.history
17 Log:
18 Initial 4.5.3 patchset based on latest 4.5.2 patchset.
19
20 Revision Changes Path
21 1.1 src/patchsets/gcc/4.5.3/pie/10_all_gcc45_configure.patch
22
23 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/10_all_gcc45_configure.patch?rev=1.1&view=markup
24 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/10_all_gcc45_configure.patch?rev=1.1&content-type=text/plain
25
26 Index: 10_all_gcc45_configure.patch
27 ===================================================================
28 2010-05-25 Magnus Granberg <zorry@g.o>, Anthony G. Basile <basile@××××××××××××××.edu>
29
30 * configure Add --enable-esp. Add-fno-stack-protector
31 to stage1_cflags.
32 * gcc/configure Add --enable-esp. Check -z now and -z relro.
33 Define ENABLE_ESP.
34 Check if we support crtbeginTS and define ENABLE_CRTBEGINTS.
35 * libmudflap/configure Add AC_SUBST enable_esp.
36
37
38 --- configure 2010-01-31 13:12:21.000000000 -0500
39 +++ configure 2010-02-07 14:29:51.000000000 -0500
40 @@ -707,6 +707,7 @@
41 CFLAGS
42 CC
43 target_subdir
44 +enable_esp
45 host_subdir
46 build_subdir
47 build_libsubdir
48 @@ -934,6 +934,11 @@
49 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
50 --enable-gold use gold instead of ld
51 --enable-libada build libada directory
52 + --enable-esp
53 + Enable Stack protector, Position independent executable as
54 + default if we have suppot for it when compiling
55 + and link with -z relro and -z now as default.
56 + Linux targets supported i*86, x86_64, powerpc, powerpc64, ia64 and arm
57 --enable-libssp build libssp directory
58 --disable-ppl-version-check disable check for PPL version
59 --disable-cloog-version-check disable check for CLooG version
60 @@ -2145,6 +2150,25 @@
61 noconfigdirs="$noconfigdirs gnattools"
62 fi
63
64 +# Check whether --enable-esp was given and target have the support.
65 +# Check whether --enable-esp or --disable-esp was given.
66 +if test "${enable_esp+set}" = set; then
67 + enableval="$enable_esp"
68 +
69 + case $target in
70 + i?86*-*-linux* | x86_64*-*-linux* | powerpc-*-linux* | powerpc64-*-linux* | arm*-*-linux* | ia64-*-linux*)
71 + enable_esp=yes
72 + ;;
73 + *)
74 + { { echo "$as_me:$LINENO: error: *** --enable-esp is not supported on this $target target." >&5
75 +echo "$as_me: error: *** --enable-esp is not supported on this $target target." >&2;}
76 + { (exit 1); exit 1; }; }
77 + ;;
78 + esac
79 +
80 +fi;
81 +
82 +
83 # Check whether --enable-libssp was given.
84 if test "${enable_libssp+set}" = set; then :
85 enableval=$enable_libssp; ENABLE_LIBSSP=$enableval
86 @@ -14266,6 +14290,9 @@
87 *) stage1_cflags="-g -J" ;;
88 esac ;;
89 esac
90 +if test x$enable_esp = xyes; then
91 + stage1_cflags="$stage1_cflags -fno-stack-protector"
92 +fi
93
94 # This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
95 if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
96 --- gcc/configure 2010-01-31 10:01:53.000000000 -0500
97 +++ gcc/configure 2010-02-07 14:29:56.000000000 -0500
98 @@ -678,6 +678,8 @@
99 HOST_LIBS
100 GGC
101 libgcc_visibility
102 +enable_esp
103 +enable_crtbeginTS
104 gcc_cv_readelf
105 gcc_cv_objdump
106 ORIGINAL_NM_FOR_TARGET
107 @@ -24480,6 +24481,50 @@
108 ;;
109 esac
110
111 +echo "$as_me:$LINENO: checking linker -z now support" >&5
112 +echo $ECHO_N "checking linker -z now support... $ECHO_C" >&6
113 +if test "${gcc_cv_ld_now+set}" = set; then
114 + echo $ECHO_N "(cached) $ECHO_C" >&6
115 +else
116 + gcc_cv_ld_now=no
117 +if test $in_tree_ld = yes ; then
118 + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
119 + && test $in_tree_ld_is_elf = yes; then
120 + gcc_cv_ld_now=yes
121 + fi
122 +elif test x$gcc_cv_ld != x; then
123 + # Check if linker supports -z now options
124 + if $gcc_cv_ld --help 2>/dev/null | grep now > /dev/null; then
125 + gcc_cv_ld_now=yes
126 + fi
127 +fi
128 +
129 +fi
130 +echo "$as_me:$LINENO: result: $gcc_cv_ld_now" >&5
131 +echo "${ECHO_T}$gcc_cv_ld_now" >&6
132 +
133 +echo "$as_me:$LINENO: checking linker -z relro support" >&5
134 +echo $ECHO_N "checking linker -z relro support... $ECHO_C" >&6
135 +if test "${gcc_cv_ld_relro+set}" = set; then
136 + echo $ECHO_N "(cached) $ECHO_C" >&6
137 +else
138 + gcc_cv_ld_relro=no
139 +if test $in_tree_ld = yes ; then
140 + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
141 + && test $in_tree_ld_is_elf = yes; then
142 + gcc_cv_ld_relro=yes
143 + fi
144 +elif test x$gcc_cv_ld != x; then
145 + # Check if linker supports -z relro and -z norelro options
146 + if $gcc_cv_ld --help 2>/dev/null | grep relro > /dev/null; then
147 + gcc_cv_ld_relro=yes
148 + fi
149 +fi
150 +
151 +fi
152 +echo "$as_me:$LINENO: result: $gcc_cv_ld_relro" >&5
153 +echo "${ECHO_T}$gcc_cv_ld_relro" >&6
154 +
155 { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --build-id support" >&5
156 $as_echo_n "checking linker --build-id support... " >&6; }
157 if test "${gcc_cv_ld_buildid+set}" = set; then :
158 @@ -24411,6 +23745,74 @@
159
160 fi
161
162 +if test x$enable_esp = xyes ; then
163 +case $target in
164 + ia64*-*-linux*)
165 + if test x$gcc_cv_ld_now = xyes; then
166 + enable_esp_ld=yes
167 + else
168 + enable_esp_ld=no
169 + fi
170 + ;;
171 + *-*-linux*)
172 + if test x$gcc_cv_ld_relro = xyes && test x$gcc_cv_ld_now = xyes; then
173 + enable_esp_ld=yes
174 + else
175 + enable_esp_ld=no
176 + fi
177 + ;;
178 + *)
179 + enable_esp_ld=no
180 + ;;
181 + esac
182 +else
183 + enable_espf_ld=no
184 +fi
185 +if test x$enable_esp_ld = xyes; then
186 +
187 +cat >>confdefs.h <<\_ACEOF
188 +#define ENABLE_ESP 1
189 +_ACEOF
190 +
191 +fi
192 +
193 +if test x$enable_esp = xyes && test x$enable_esp_ld = xno; then
194 + { { echo "$as_me:$LINENO: error: *** --enable-esp is not supported. You don't have -z,relro or -z,now support in the linker." >&5
195 +echo "$as_me: error: *** --enable-esp is not supported. You don't have -z,relro or -z,now support in the linker." >&2;}
196 + { (exit 1); exit 1; }; }
197 +fi
198 +
199 +echo "$as_me:$LINENO: checking for crtbeginTS.o support" >&5
200 +echo $ECHO_N "checking for crtbeginTS.o support... $ECHO_C" >&6
201 +if test "${enable_crtbeginTS+set}" = set; then
202 + echo $ECHO_N "(cached) $ECHO_C" >&6
203 +else
204 +
205 +if test x$enable_esp = xyes ; then
206 + case "$target" in
207 + ia64*-*-linux*)
208 + enable_crtbeginTS=no ;;
209 + *-*-linux*)
210 + if test x$gcc_cv_ld_pie = xyes && test x$lt_cv_prog_compiler_static_works = xyes; then
211 + enable_crtbeginTS=yes
212 + fi
213 + ;;
214 + *) enable_crtbeginTS=no ;;
215 + esac
216 +fi
217 +
218 +fi
219 +echo "$as_me:$LINENO: result: $enable_crtbeginTS" >&5
220 +echo "${ECHO_T}$enable_crtbeginTS" >&6
221 +
222 +if test x$enable_crtbeginTS = xyes; then
223 +
224 +cat >>confdefs.h <<\_ACEOF
225 +#define ENABLE_CRTBEGINTS 1
226 +_ACEOF
227 +
228 +fi
229 +
230 # Check if TFmode long double should be used by default or not.
231 # Some glibc targets used DFmode long double, but with glibc 2.4
232 # and later they can use TFmode.
233 --- libmudflap/configure 2009-12-05 12:18:53.000000000 -0500
234 +++ libmudflap/configure 2010-02-07 14:29:51.000000000 -0500
235 @@ -652,6 +652,7 @@
236 MAINTAINER_MODE_FALSE
237 MAINTAINER_MODE_TRUE
238 am__untar
239 +enable_esp
240 am__tar
241 AMTAR
242 am__leading_dot
243
244
245
246 1.1 src/patchsets/gcc/4.5.3/pie/11_all_gcc44_config.in.patch
247
248 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/11_all_gcc44_config.in.patch?rev=1.1&view=markup
249 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/11_all_gcc44_config.in.patch?rev=1.1&content-type=text/plain
250
251 Index: 11_all_gcc44_config.in.patch
252 ===================================================================
253 2010-05-24 Magnus Granberg <zorry@g.o>
254
255 * gcc/config.in Add ENABLE_CRTBEGINTS and ENABLE_ESP
256
257 --- gcc/config.in 2009-04-21 11:08:08.000000000 +0200
258 +++ gcc/config.in 2009-05-12 00:10:08.000000000 +0200
259 @@ -46,6 +46,12 @@
260 #endif
261
262
263 +/* Define to 1 to enable crtbeginTS.o. */
264 +#ifndef USED_FOR_TARGET
265 +#undef ENABLE_CRTBEGINTS
266 +#endif
267 +
268 +
269 /* Define to 1 to specify that we are using the BID decimal floating point
270 format instead of DPD */
271 #ifndef USED_FOR_TARGET
272 @@ -65,6 +65,12 @@
273 #endif
274
275
276 +/* Define to 1 to enable esp. */
277 +#ifndef USED_FOR_TARGET
278 +#undef ENABLE_ESP
279 +#endif
280 +
281 +
282 /* Define to 1 to enable fixed-point arithmetic extension to C. */
283 #ifndef USED_FOR_TARGET
284 #undef ENABLE_FIXED_POINT
285
286
287
288 1.1 src/patchsets/gcc/4.5.3/pie/12_all_gcc45_Makefile.in.patch
289
290 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/12_all_gcc45_Makefile.in.patch?rev=1.1&view=markup
291 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/12_all_gcc45_Makefile.in.patch?rev=1.1&content-type=text/plain
292
293 Index: 12_all_gcc45_Makefile.in.patch
294 ===================================================================
295 2010-04-25 Magnus Granberg <zorry@g.o> Anthony G. Basile <basile@××××××××××××××.edu>
296
297 * Makefile.in We add -fno-stack-protector to BOOT_CFLAGS, LIBCFLAGS and LIBCXXFLAGS if enable_esp yes.
298 * gcc/Makefile.in Add -fno-PIE and -fno-stack-protector.
299 Libgcc2 doesn't compile with -fstack-protector.
300 Crtstuff doesn't compile with -fPIE and -fstack-protector.
301 $(out_object_file): ix86_split_to_parts() stack smashing attack b.g.o #149292.
302 Add crtbeginTS.o to EXTRA_PARTS if enable_crtbeginTS yes
303 We add new file crtbeginTS.o if enable_crtbeginTS yes
304 * libgcc/Makefile.in Add crtbeginTS.o to EXTRA_PARTS if enable_crtbeginTS yes
305 We add new file crtbeginTS.o if enable_crtbeginTS yes
306
307 2010-04-25 Magnus Granberg <zorry@g.o>, Kees Cook <kees@×××××××.net>
308
309 LP #344502
310 * libmudflap/Makefiles.in Add -fno-stack-protector -U_FORTIFY_SOURCE
311 to AM_CFLAGS ifdef enable_esp.
312
313 --- Makefile.in 2010-01-22 08:35:38.000000000 -0500
314 +++ Makefile.in 2010-02-07 15:10:59.000000000 -0500
315 @@ -350,9 +350,17 @@
316 BUILD_PREFIX = @BUILD_PREFIX@
317 BUILD_PREFIX_1 = @BUILD_PREFIX_1@
318
319 +# Some stuff don't compile with SSP
320 +enable_esp = @enable_esp@
321 +ifeq ($(enable_esp),yes)
322 +ESP_NOSSP_CFLAGS = -fno-stack-protector
323 +else
324 +ESP_NOSSP_CFLAGS=
325 +endif
326 +
327 # Flags to pass to stage2 and later makes. They are defined
328 # here so that they can be overridden by Makefile fragments.
329 -BOOT_CFLAGS= -g -O2
330 +BOOT_CFLAGS= -g -O2 $(ESP_NOSSP_CFLAGS)
331 BOOT_LDFLAGS=
332 BOOT_ADAFLAGS=-gnatpg -gnata
333
334 @@ -397,9 +405,9 @@
335
336 CFLAGS = @CFLAGS@
337 LDFLAGS = @LDFLAGS@
338 -LIBCFLAGS = $(CFLAGS)
339 +LIBCFLAGS = $(CFLAGS) $(ESP_NOSSP_CFLAGS)
340 CXXFLAGS = @CXXFLAGS@
341 -LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
342 +LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates $(ESP_NOSSP_CFLAGS)
343
344 TFLAGS =
345
346 --- gcc/Makefile.in 2010-01-22 17:22:51.000000000 -0500
347 +++ gcc/Makefile.in 2010-02-07 15:15:13.000000000 -0500
348 @@ -629,13 +629,24 @@
349 INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
350 endif
351
352 +# We don't want __stack_chk_fail in crt* and libgcc2.a.
353 +# We don't want to compile crtbegin, crtend and crtbeginT with -fPIE.
354 +enable_esp = @enable_esp@
355 +ifeq ($(enable_esp),yes)
356 +ESP_NOPIE_CFLAGS = -fno-PIE
357 +ESP_NOSSP_CFLAGS = -fno-stack-protector
358 +else
359 +ESP_NOPIE_CFLAGS=
360 +ESP_NOSSP_CFLAGS=
361 +endif
362 +
363 # Options to use when compiling libgcc2.a.
364 #
365 LIBGCC2_DEBUG_CFLAGS = -g
366 LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) \
367 $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) \
368 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED \
369 - $(INHIBIT_LIBC_CFLAGS)
370 + $(INHIBIT_LIBC_CFLAGS) $(ESP_NOSSP_CFLAGS)
371
372 # Additional options to use when compiling libgcc2.a.
373 # Some targets override this to -isystem include
374 @@ -648,7 +659,7 @@
375 CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
376 -finhibit-size-directive -fno-inline -fno-exceptions \
377 -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
378 - $(INHIBIT_LIBC_CFLAGS)
379 + $(INHIBIT_LIBC_CFLAGS) $(ESP_NOSSP_CFLAGS)
380
381 # Additional sources to handle exceptions; overridden by targets as needed.
382 LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
383 @@ -678,6 +689,12 @@
384 # The rules for compiling them should be in the t-* file for the machine.
385 EXTRA_PARTS = @extra_parts@
386
387 +# We add crtbeginTS.o to the EXTRA_PARTS list if enable_crtbeginTS = yes
388 +enable_crtbeginTS = @enable_crtbeginTS@
389 +ifeq ($(enable_crtbeginTS),yes)
390 +EXTRA_PARTS += crtbeginTS.o
391 +endif
392 +
393 # List of extra object files that should be compiled and linked with
394 # compiler proper (cc1, cc1obj, cc1plus).
395 EXTRA_OBJS = @extra_objs@
396 @@ -1856,9 +1873,10 @@
397 echo LIBGCC_SYNC = '$(LIBGCC_SYNC)' >> tmp-libgcc.mvars
398 echo LIBGCC_SYNC_CFLAGS = '$(LIBGCC_SYNC_CFLAGS)' >> tmp-libgcc.mvars
399 echo CRTSTUFF_CFLAGS = '$(CRTSTUFF_CFLAGS)' >> tmp-libgcc.mvars
400 - echo CRTSTUFF_T_CFLAGS = '$(CRTSTUFF_T_CFLAGS)' >> tmp-libgcc.mvars
401 + echo CRTSTUFF_T_CFLAGS = '$(CRTSTUFF_T_CFLAGS) $(ESP_NOPIE_CFLAGS)' >> tmp-libgcc.mvars
402 echo CRTSTUFF_T_CFLAGS_S = '$(CRTSTUFF_T_CFLAGS_S)' >> tmp-libgcc.mvars
403 echo TARGET_SYSTEM_ROOT = '$(TARGET_SYSTEM_ROOT)' >> tmp-libgcc.mvars
404 + echo enable_crtbeginTS = '$(enable_crtbeginTS)' >> tmp-libgcc.mvars
405
406 mv tmp-libgcc.mvars libgcc.mvars
407
408 @@ -1892,12 +1910,14 @@
409 $(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
410 gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
411 $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
412 + $(ESP_NOPIE_CFLAGS) \
413 -c $(srcdir)/crtstuff.c -DCRT_BEGIN \
414 -o $(T)crtbegin$(objext)
415
416 $(T)crtend.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
417 gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
418 $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
419 + $(ESP_NOPIE_CFLAGS) \
420 -c $(srcdir)/crtstuff.c -DCRT_END \
421 -o $(T)crtend$(objext)
422
423 @@ -1918,9 +1938,19 @@
424 $(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
425 gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
426 $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
427 + $(ESP_NOPIE_CFLAGS) \
428 -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
429 -o $(T)crtbeginT$(objext)
430
431 +# This is a version of crtbegin for -static -fPIE links if esp is enable.
432 +ifeq ($(enable_crtbeginTS),yes)
433 +$(T)crtbeginTS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
434 + gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
435 + $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
436 + -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O -DCRTSTUFFS_O \
437 + -o $(T)crtbeginTS$(objext)
438 +endif
439 +
440 # Compile the start modules crt0.o and mcrt0.o that are linked with
441 # every program
442 $(T)crt0.o: s-crt0 ; @true
443 --- libgcc/Makefile.in 2009-07-30 18:33:49.000000000 -0400
444 +++ libgcc/Makefile.in 2010-02-07 15:10:59.000000000 -0500
445 @@ -291,6 +291,12 @@
446 gen-hide-list = echo > \$@
447 endif
448
449 +# We add crtbeginTS.o to the EXTRA_PARTS list if enable_crtbeginTS = yes
450 +enable_libgcc_crtbeginTS = $(enable_crtbeginTS)
451 +ifeq ($(enable_libgcc_crtbeginTS),yes)
452 +EXTRA_PARTS += crtbeginTS.o
453 +endif
454 +
455 ifneq ($(EXTRA_PARTS),)
456 extra-parts = libgcc-extra-parts
457 INSTALL_PARTS = $(EXTRA_PARTS)
458 @@ -842,6 +848,13 @@
459 crtbeginT.o: $(gcc_srcdir)/crtstuff.c
460 $(crt_compile) $(CRTSTUFF_T_CFLAGS) \
461 -c $(gcc_srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O
462 +
463 +# This is a version of crtbegin for -static -fPIE links.
464 +ifeq ($(enable_libgcc_crtbeginTS),yes)
465 +crtbeginTS.o: $(gcc_srcdir)/crtstuff.c
466 + $(crt_compile) $(CRTSTUFF_T_CFLAGS_S) \
467 + -c $(gcc_srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O -DCRTSTUFFS_O
468 +endif
469 endif
470
471 # Build extra startfiles in the libgcc directory.
472 --- libmudflap/Makefile.in 2009-12-05 12:18:53.000000000 -0500
473 +++ libmudflap/Makefile.in 2010-02-07 15:10:59.000000000 -0500
474 @@ -253,9 +253,17 @@
475 MAINT_CHARSET = latin1
476 SUBDIRS = testsuite
477
478 +# Some stuff don't compile with SSP and FORTIFY_SOURCE
479 +enable_esp = @enable_esp@
480 +ifeq ($(enable_esp),yes)
481 + NO_ESP_CFLAGS = -fno-stack-protector -U_FORTIFY_SOURCE
482 +else
483 + NO_ESP_CFLAGS =
484 +endif
485 +
486 # May be used by various substitution variables.
487 gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
488 -AM_CFLAGS = -Wall $(SECTION_FLAGS)
489 +AM_CFLAGS = -Wall $(SECTION_FLAGS) $(NO_ESP_CFLAGS)
490 @LIBMUDFLAPTH_FALSE@libmudflapth =
491 @LIBMUDFLAPTH_TRUE@libmudflapth = libmudflapth.la
492 toolexeclib_LTLIBRARIES = libmudflap.la $(libmudflapth)
493
494
495
496 1.1 src/patchsets/gcc/4.5.3/pie/20_all_gcc45_gcc.c.patch
497
498 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/20_all_gcc45_gcc.c.patch?rev=1.1&view=markup
499 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/20_all_gcc45_gcc.c.patch?rev=1.1&content-type=text/plain
500
501 Index: 20_all_gcc45_gcc.c.patch
502 ===================================================================
503 2010-05-26 Magnus Granberg <zorry@g.o>, Anthony G. Basile <basile@××××××××××××××.edu>
504
505 * gcc/gcc.c include esp.h
506 static const char *cc1_spec We set that in esp.h if ENABLE_ESP.
507 #ifdef EXTRA_SPECS: Add ESP_EXTRA_SPECS
508 main(): Add do_self_spec esp_command_options_spec()
509
510 2009-06-27 Matthias Klose <doko@××××××.com>, Kees Cook <kees@×××××××.net>,
511 Anthony G. Basile <basile@××××××××××××××.edu>
512
513 LP #346126
514 * gcc/gcc.c *cpp_options Add %(esp_cpp_options)
515
516 * gcc/gcc.c default_compilers[] Add %(esp_options)
517 *cpp_unique_options Add %(esp_cpp_unique_options)
518
519 --- gcc/gcc.c 2010-01-21 10:29:30.000000000 -0500
520 +++ gcc/gcc.c 2010-01-29 23:29:16.000000000 -0500
521 @@ -84,6 +84,7 @@
522 #include "gcc.h"
523 #include "flags.h"
524 #include "opts.h"
525 +#include "esp.h" /* for --enable-esp support */
526
527 #ifdef HAVE_MMAP_FILE
528 # include <sys/mman.h>
529 @@ -822,7 +823,9 @@
530
531 static const char *asm_debug;
532 static const char *cpp_spec = CPP_SPEC;
533 +#ifndef ENABLE_ESP
534 static const char *cc1_spec = CC1_SPEC;
535 +#endif
536 static const char *cc1plus_spec = CC1PLUS_SPEC;
537 static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC;
538 static const char *link_ssp_spec = LINK_SSP_SPEC;
539 @@ -885,7 +888,7 @@
540 static const char *cpp_options =
541 "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
542 %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*}\
543 - %{undef} %{save-temps*:-fpch-preprocess}";
544 + %{undef} %{save-temps*:-fpch-preprocess} %(esp_cpp_options)";
545
546 /* This contains cpp options which are not passed when the preprocessor
547 output will be used by another program. */
548 @@ -1075,15 +1081,15 @@
549 %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
550 %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
551 cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
552 - %(cc1_options)}\
553 + %(cc1_options) %(esp_options)}\
554 %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
555 - cc1 %(cpp_unique_options) %(cc1_options)}}}\
556 + cc1 %(cpp_unique_options) %(cc1_options) %(esp_options)}}}\
557 %{!fsyntax-only:%(invoke_as)}} \
558 %{combine:\
559 %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
560 %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i}}\
561 %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
562 - cc1 %(cpp_unique_options) %(cc1_options)}}\
563 + cc1 %(cpp_unique_options) %(cc1_options) %(esp_options)}}\
564 %{!fsyntax-only:%(invoke_as)}}}}}}", 0, 1, 1},
565 {"-",
566 "%{!E:%e-E or -x required when input is from standard input}\
567 @@ -1106,7 +1112,7 @@
568 %W{o*:--output-pch=%*}%V}}}}}}", 0, 0, 0},
569 {".i", "@cpp-output", 0, 1, 0},
570 {"@cpp-output",
571 - "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 1, 0},
572 + "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %(esp_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 1, 0},
573 {".s", "@assembler", 0, 1, 0},
574 {"@assembler",
575 "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 1, 0},
576 @@ -1699,18 +1705,23 @@
577 INIT_STATIC_SPEC ("sysroot_hdrs_suffix_spec", &sysroot_hdrs_suffix_spec),
578 };
579
580 -#ifdef EXTRA_SPECS /* additional specs needed */
581 +/* EXTRA_SPECS needs to be defined */
582 +#ifndef EXTRA_SPECS
583 +#define EXTRA_SPECS
584 +#endif
585 +
586 +/* EXTRA_SPECS and ESP_EXTRA_SPECS add additional specs */
587 /* Structure to keep track of just the first two args of a spec_list.
588 - That is all that the EXTRA_SPECS macro gives us. */
589 + That is all that the EXTRA_SPECS and ESP_EXTRA_SPECS macro gives us. */
590 struct spec_list_1
591 {
592 const char *const name;
593 const char *const ptr;
594 };
595
596 -static const struct spec_list_1 extra_specs_1[] = { EXTRA_SPECS };
597 +/* ESP_EXTRA_SPECS before EXTRA_SPECS */
598 +static const struct spec_list_1 extra_specs_1[] = { ESP_EXTRA_SPECS, EXTRA_SPECS };
599 static struct spec_list *extra_specs = (struct spec_list *) 0;
600 -#endif
601
602 /* List of dynamically allocates specs that have been defined so far. */
603
604 @@ -1798,7 +1809,6 @@
605 if (verbose_flag)
606 notice ("Using built-in specs.\n");
607
608 -#ifdef EXTRA_SPECS
609 extra_specs = XCNEWVEC (struct spec_list, ARRAY_SIZE (extra_specs_1));
610
611 for (i = ARRAY_SIZE (extra_specs_1) - 1; i >= 0; i--)
612 @@ -1811,7 +1821,6 @@
613 sl->ptr_spec = &sl->ptr;
614 next = sl;
615 }
616 -#endif
617
618 for (i = ARRAY_SIZE (static_specs) - 1; i >= 0; i--)
619 {
620 @@ -7096,6 +7123,12 @@
621 gcc_exec_prefix = concat (gcc_exec_prefix, spec_machine, dir_separator_str,
622 spec_version, dir_separator_str, NULL);
623
624 +#ifdef ENABLE_ESP
625 + /* Process ESP_COMMAND_OPTIONS_SPEC, adding any new options to the end
626 + of the command line. */
627 + do_self_spec (esp_command_options_spec);
628 +#endif
629 +
630 /* Now we have the specs.
631 Set the `valid' bits for switches that match anything in any spec. */
632
633
634
635
636 1.1 src/patchsets/gcc/4.5.3/pie/21_all_gcc44_decl-tls-model.patch
637
638 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/21_all_gcc44_decl-tls-model.patch?rev=1.1&view=markup
639 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/21_all_gcc44_decl-tls-model.patch?rev=1.1&content-type=text/plain
640
641 Index: 21_all_gcc44_decl-tls-model.patch
642 ===================================================================
643 2009-06-13 Magnus Granberg <zorry@×××.nu>
644
645 b.g.o #232601
646 * gcc/varasm.c (decl_tls_model): Check flag_pic instead of flag_shlib.
647
648 --- gcc/varasm.c 2009-03-17 21:18:21.000000000 +0100
649 +++ gcc/varasm.c 2009-04-29 03:10:09.000000000 +0200
650 @@ -5607,7 +5607,11 @@
651 bool is_local;
652
653 is_local = targetm.binds_local_p (decl);
654 - if (!flag_shlib)
655 + #ifdef ENABLE_ESP
656 + if (!flag_pic)
657 + #else
658 + if (!flag_shlib)
659 + #endif
660 {
661 if (is_local)
662 kind = TLS_MODEL_LOCAL_EXEC;
663
664
665
666 1.1 src/patchsets/gcc/4.5.3/pie/30_all_gcc44_esp.h.patch
667
668 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/30_all_gcc44_esp.h.patch?rev=1.1&view=markup
669 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/30_all_gcc44_esp.h.patch?rev=1.1&content-type=text/plain
670
671 Index: 30_all_gcc44_esp.h.patch
672 ===================================================================
673 2010-05-27 Magnus Granberg <zorry@g.o>
674
675 * gcc/esp.h New file to support --enable-esp
676 Version 20100527.1
677
678 --- gcc/esp.h 2010-04-09 16:14:00.000000000 +0200
679 +++ gcc/esp.h 2010-04-29 21:30:47.000000000 +0200
680 @@ -0,0 +1,145 @@
681 +/* License terms see GNU GENERAL PUBLIC LICENSE Version 3.
682 + * Version 20100527.1
683 + * Magnus Granberg (Zorry) <zorry@g.o> */
684 +#ifndef GCC_ESP_H
685 +#define GCC_ESP_H
686 +
687 +/* This file will add -fstack-protector-all, -fPIE, -pie and -z now
688 + as default if the defines and the spec allow it.
689 + Added a hack for gcc-specs-* in toolchain-funcs.eclass and _filter-hardened in flag-o-matic.eclass
690 + to support older hardened GCC patches and we don't need to change the code on gcc-specs-* and _filter-hardened.
691 + This will add some unsupported upstream commands options as -nopie and -nonow.
692 + -D__KERNEL__ is added so we don't have -fPIE, -pie and -fstack-protector-all when building kernels.
693 + ESP_CC1_SPEC is added to CC1_SPEC.
694 + ESP_CC1_STRICT_OVERFLOW_SPEC is added so we don't disable the strict-overflow check.
695 + ESP_LINK_PIE_CHECK_SPEC check for -pie, -p, -pg, -profile and -static.
696 + ENABLE_CRTBEGINTS add support for crtbeginTS.o, build -static with -fPIE or -fpie.
697 +*/
698 +#ifdef ENABLE_ESP
699 +
700 + /* Hack to support gcc-specs-* in toolchain-funcs.eclass and _filter-hardened in flag-o-matic.eclass */
701 + #define ESP_CC1_SPEC " %(esp_cc1_ssp) %(esp_cc1_pie) %(esp_cc1_strict_overflow)"
702 + #if defined ( EFAULT_SSP ) || defined ( EFAULT_PIE_SSP )
703 + #define ESP_CC1_SSP_SPEC "%{!fno-stack-protector: %{!fno-stack-protector-all: }}"
704 + #else
705 + #define ESP_CC1_SSP_SPEC ""
706 + #endif
707 + #if defined ( EFAULT_PIE ) || defined ( EFAULT_PIE_SSP )
708 + #define ESP_CC1_PIE_SPEC "%{!nopie: }"
709 + #else
710 + #define ESP_CC1_PIE_SPEC ""
711 + #endif
712 + #define ESP_CC1_STRICT_OVERFLOW_SPEC "%{!fstrict-overflow:%{!fno-strict-overflow: -fno-strict-overflow}}"
713 +
714 + /* ESP_LINK_SPEC is added to LINK_PIE_SPEC if esp is enable
715 + -z now will be added if we don't have -vanilla spec. We do a -pie incompatible check
716 + Don't remove the specs in the end */
717 + #define ESP_LINK_SPEC "%(esp_link_now) %(esp_link_pie_check) "
718 + #define ESP_LINK_NOW_SPEC "%{!nonow:-z now}"
719 +
720 + /* We use ESP_COMMAND_OPTIONS_SPEC to add pie command-line options. */
721 + #define ESP_COMMAND_OPTIONS_SPEC "%{!D__KERNEL__:%{!nopie:%(esp_options_pie) %(esp_link_pie)}}"
722 +
723 + /* ESP_OPTIONS_SPEC is added to the compiler spec in gcc/gcc.c */
724 + #define ESP_OPTIONS_SPEC "%(esp_options_ssp)"
725 +
726 + /* ESP_CPP_OPTIONS_SPEC is added to the cpp_options spec in gcc/gcc.c
727 + For precompiling headers. */
728 + #define ESP_CPP_OPTIONS_SPEC "%(esp_options_ssp)"
729 +
730 + /* This will add -fstack-protector-all if we don't have -nostdlib -nodefaultlibs -fno-stack-protector -fstack-protector
731 + -fstack-protector-all and we have EFAULT_SSP or EFAULT_PIE_SSP defined. */
732 + #if defined ( EFAULT_SSP ) || defined ( EFAULT_PIE_SSP )
733 + #define ESP_OPTIONS_SSP_SPEC \
734 + "%{!D__KERNEL__:%{!nostdlib:%{!nodefaultlibs: %{!fno-stack-protector: \
735 + %{!fstack-protector:%{!fstack-protector-all:-fstack-protector-all}}}}}}"
736 + #else
737 + #define ESP_OPTIONS_SSP_SPEC ""
738 + #endif
739 +
740 + /* If EFAULT_PIE or EFAULT_PIE_SSP is defined we will add -fPIE -pie */
741 + #if defined ( EFAULT_PIE ) || defined ( EFAULT_PIE_SSP )
742 +
743 + /* This will add -fPIE if we don't have -pie -fpic -fPIC -fpie -fPIE -fno-pic -fno-PIC -fno-pie -fno-PIE -shared -static
744 + -nostdlib -nostartfiles. */
745 + /* With ENABLE_CRTBEGINTS we don't need to check for -static */
746 + #ifdef ENABLE_CRTBEGINTS
747 + #define ESP_OPTIONS_PIE_SPEC \
748 + "%{!pie: %{!fpic:%{!fPIC:%{!fpie:%{!fPIE: %{!fno-pic:%{!fno-PIC:%{!fno-pie:%{!fno-PIE: \
749 + %{!shared: %{!nostdlib: %{!nostartfiles:-fPIE}} } }}}} }}}} }"
750 + #else
751 + #define ESP_OPTIONS_PIE_SPEC \
752 + "%{!pie: %{!fpic:%{!fPIC:%{!fpie:%{!fPIE: %{!fno-pic:%{!fno-PIC:%{!fno-pie:%{!fno-PIE: \
753 + %{!shared: %{!static: %{!nostdlib: %{!nostartfiles:-fPIE}} } }}}} }}}} }}"
754 + #endif
755 +
756 + /* This will add -pie if we don't have -pie -A -fno-pic -fno-PIC -fno-pie -fno-PIE -shared -static -r -nostdlib
757 + -nostartfiles */
758 + /* With ENABLE_CRTBEGINTS we don't need to check for -static
759 + and we add -pie only to get the start and endfiles. -pie will not go to the linker. */
760 + #ifdef ENABLE_CRTBEGINTS
761 + #define ESP_LINK_PIE_SPEC \
762 + "%{!pie:%{!A:%{!fno-pie:%{!fno-PIE:%{!fno-pic:%{!fno-PIC:%{!shared:%{!r: \
763 + %{!nostdlib:%{!nostartfiles:-pie}}}}}}}}}}"
764 + #else
765 + #define ESP_LINK_PIE_SPEC \
766 + "%{!pie:%{!A:%{!fno-pie:%{!fno-PIE:%{!fno-pic:%{!fno-PIC:%{!shared:%{!static:%{!r: \
767 + %{!nostdlib:%{!nostartfiles:-pie}}}}}}}}}}}"
768 + #endif
769 +
770 + /* This will check if -pie is set when (-static) -pg -p -profile. If set it will make gcc print out
771 + "-pie and (static)|pg|p|profile are incompatible when linking" */
772 + /* With ENABLE_CRTBEGINTS we don't need to check for -static */
773 + #ifdef ENABLE_CRTBEGINTS
774 + #define ESP_LINK_PIE_CHECK_SPEC \
775 + "%{pie:%{pg|p|profile:%e-pie and -pg|p|profile are incompatible when linking}}"
776 + #else
777 + #define ESP_LINK_PIE_CHECK_SPEC \
778 + "%{pie:%{static|pg|p|profile:%e-pie and -static|pg|p|profile are incompatible when linking}}"
779 + #endif
780 +
781 + /* We don't pass -pie to the linker when -static. */
782 + #ifdef ENABLE_CRTBEGINTS
783 + #define LINK_PIE_SPEC "%{!static:%{pie:-pie}} %(esp_link)"
784 + #else
785 + #define LINK_PIE_SPEC "%{pie:-pie} %(esp_link)"
786 + #endif
787 +
788 + #else
789 + #define ESP_OPTIONS_PIE_SPEC ""
790 + #define ESP_LINK_PIE_CHECK_SPEC ""
791 + #define ESP_LINK_PIE_SPEC ""
792 + #define LINK_PIE_SPEC "%{pie:-pie} %(esp_link)"
793 + #endif
794 +
795 + /* We add extra spec name's to the EXTRA_SPECS list */
796 + #define ESP_EXTRA_SPECS \
797 + { "esp_cc1", ESP_CC1_SPEC }, \
798 + { "esp_cc1_pie", ESP_CC1_PIE_SPEC }, \
799 + { "esp_cc1_ssp", ESP_CC1_SSP_SPEC }, \
800 + { "esp_cc1_strict_overflow", ESP_CC1_STRICT_OVERFLOW_SPEC }, \
801 + { "esp_link", ESP_LINK_SPEC }, \
802 + { "esp_link_now", ESP_LINK_NOW_SPEC }, \
803 + { "esp_link_pie", ESP_LINK_PIE_SPEC }, \
804 + { "esp_link_pie_check", ESP_LINK_PIE_CHECK_SPEC }, \
805 + { "esp_command_options", ESP_COMMAND_OPTIONS_SPEC }, \
806 + { "esp_cpp_options", ESP_CPP_OPTIONS_SPEC }, \
807 + { "esp_options", ESP_OPTIONS_SPEC }, \
808 + { "esp_options_pie", ESP_OPTIONS_PIE_SPEC }, \
809 + { "esp_options_ssp", ESP_OPTIONS_SSP_SPEC }
810 +
811 + static const char *esp_command_options_spec = ESP_COMMAND_OPTIONS_SPEC;
812 + static const char *cc1_spec = CC1_SPEC ESP_CC1_SPEC;
813 +
814 +#else /* If not ESP_ENABLE defined do this. */
815 +
816 + #define ESP_OPTIONS_SPEC ""
817 + #define ESP_CPP_OPTIONS_SPEC ""
818 +
819 + /* We add extra spec name's to the EXTRA_SPECS list */
820 + #define ESP_EXTRA_SPECS \
821 + { "esp_options", ESP_OPTIONS_SPEC }, \
822 + { "esp_cpp_options", ESP_CPP_OPTIONS_SPEC }
823 +
824 +#endif
825 +#endif /* End GCC_ESP_H */
826
827
828
829 1.1 src/patchsets/gcc/4.5.3/pie/33_all_gcc45_config_rs6000_linux64.h.patch
830
831 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/33_all_gcc45_config_rs6000_linux64.h.patch?rev=1.1&view=markup
832 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/33_all_gcc45_config_rs6000_linux64.h.patch?rev=1.1&content-type=text/plain
833
834 Index: 33_all_gcc45_config_rs6000_linux64.h.patch
835 ===================================================================
836 2010-04-25 Peter S. Mazinger <ps.m@×××.net>, Magnus Granberg <zorry@g.o>
837
838 * gcc/config/rs6000/linux64.h ASM_SPEC32 Change %{fpic:-K PIC} %{fPIC:-K PIC}
839 to %{fpic|fPIC|fpie|fPIE:-K PIC}
840
841 --- gcc/config/rs6000/linux64.h.psm 2009-04-10 01:23:07.000000000 +0200
842 +++ gcc/config/rs6000/linux64.h 2009-09-23 12:34:26.000000000 +0200
843 @@ -162,7 +162,7 @@
844 #endif
845
846 #define ASM_SPEC32 "-a32 %{n} %{T} %{Ym,*} %{Yd,*} \
847 -%{mrelocatable} %{mrelocatable-lib} %{fpic:-K PIC} %{fPIC:-K PIC} \
848 +%{mrelocatable} %{mrelocatable-lib} %{fpic|fPIC|fpie|fPIE:-K PIC} \
849 %{memb} %{!memb: %{msdata=eabi: -memb}} \
850 %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
851 %{mcall-freebsd: -mbig} \
852
853
854
855 1.1 src/patchsets/gcc/4.5.3/pie/35_all_gcc44_config_crtbegints.patch
856
857 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/35_all_gcc44_config_crtbegints.patch?rev=1.1&view=markup
858 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/35_all_gcc44_config_crtbegints.patch?rev=1.1&content-type=text/plain
859
860 Index: 35_all_gcc44_config_crtbegints.patch
861 ===================================================================
862 2010-06-18 Magnus Granberg <zorry@g.o>
863
864 * gcc/config/linux.h If ENABLE_CRTBEGINTS, -static and -pie use crtbegineTS.o.
865 * gcc/config/rs6000/sysv4.h If ENABLE_CRTBEGINTS, -static and -pie use crtbegineTS.o.
866
867 --- gcc/config/linux.h 2009-04-10 01:23:07.000000000 +0200
868 +++ gcc/config/linux.h 2009-09-08 04:08:06.000000000 +0200
869 @@ -43,7 +43,11 @@
870 object constructed before entering `main'. */
871
872 #undef STARTFILE_SPEC
873 -#if defined HAVE_LD_PIE
874 +#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINTS)
875 +#define STARTFILE_SPEC \
876 + "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crti.o%s \
877 + %{static:%{pie:crtbeginTS.o%s;:crtbeginT.o%s}} %{!static:%{shared|pie:crtbeginS.o%s;:crtbegin.o%s}}"
878 +#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINTS)
879 #define STARTFILE_SPEC \
880 "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
881 crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
882 --- gcc/config/rs6000/sysv4.h 2009-04-10 01:23:07.000000000 +0200
883 +++ gcc/config/rs6000/sysv4.h 2009-09-08 04:41:50.000000000 +0200
884 @@ -883,7 +883,12 @@
885 %{!mnewlib: %{pthread:-lpthread} %{shared:-lc} \
886 %{!shared: %{profile:-lc_p} %{!profile:-lc}}}"
887
888 -#ifdef HAVE_LD_PIE
889 +#if defined (HAVE_LD_PIE) && defined (ENABLE_CRTBEGINTS)
890 +#define STARTFILE_LINUX_SPEC "\
891 +%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
892 +%{mnewlib:ecrti.o%s;:crti.o%s} \
893 +%{static:%{pie:crtbeginTS.o%s;:crtbeginT.o%s}} %{!static:%{shared|pie:crtbeginS.o%s;:crtbegin.o%s}}"
894 +#elif defined (HAVE_LD_PIE) && ! defined (ENABLE_CRTBEGINTS)
895 #define STARTFILE_LINUX_SPEC "\
896 %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
897 %{mnewlib:ecrti.o%s;:crti.o%s} \
898
899
900
901 1.1 src/patchsets/gcc/4.5.3/pie/40_all_gcc44_cp_lang-specs.h.patch
902
903 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/40_all_gcc44_cp_lang-specs.h.patch?rev=1.1&view=markup
904 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/40_all_gcc44_cp_lang-specs.h.patch?rev=1.1&content-type=text/plain
905
906 Index: 40_all_gcc44_cp_lang-specs.h.patch
907 ===================================================================
908 2009-06-18 Matthias Klose <doko@××××××.com>, Kees Cook <kees@×××××××.net>
909
910 LP #346126
911 * gcc/cp/lang-specs.h compiler spec Add %(esp_options).
912
913 --- gcc/cp/lang-specs.h.orig 2009-03-23 01:21:54.000000000 +0100
914 +++ gcc/cp/lang-specs.h 2009-03-23 01:22:16.000000000 +0100
915 @@ -47,7 +47,7 @@
916 %(cpp_options) %2 -o %{save-temps:%b.ii} %{!save-temps:%g.ii} \n}\
917 cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}}\
918 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
919 - %(cc1_options) %2 %{+e1*}\
920 + %(cc1_options) %(esp_options) %2 %{+e1*}\
921 %{!fsyntax-only:-o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}}",
922 CPLUSPLUS_CPP_SPEC, 0, 0},
923 {"@c++",
924 @@ -57,11 +57,11 @@
925 %(cpp_options) %2 -o %{save-temps:%b.ii} %{!save-temps:%g.ii} \n}\
926 cc1plus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.ii} %{!save-temps:%g.ii}}\
927 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
928 - %(cc1_options) %2 %{+e1*}\
929 + %(cc1_options) %(esp_options) %2 %{+e1*}\
930 %{!fsyntax-only:%(invoke_as)}}}}",
931 CPLUSPLUS_CPP_SPEC, 0, 0},
932 {".ii", "@c++-cpp-output", 0, 0, 0},
933 {"@c++-cpp-output",
934 "%{!M:%{!MM:%{!E:\
935 - cc1plus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
936 + cc1plus -fpreprocessed %i %(cc1_options) %(esp_options) %2 %{+e*}\
937 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
938
939
940
941 1.1 src/patchsets/gcc/4.5.3/pie/41_all_gcc44_objc_lang-specs.h.patch
942
943 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/41_all_gcc44_objc_lang-specs.h.patch?rev=1.1&view=markup
944 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/41_all_gcc44_objc_lang-specs.h.patch?rev=1.1&content-type=text/plain
945
946 Index: 41_all_gcc44_objc_lang-specs.h.patch
947 ===================================================================
948 2009-06-18 Matthias Klose <doko@××××××.com>, Kees Cook <kees@×××××××.net>
949
950 LP #346126
951 * gcc/objc/lang-specs.h compiler spec Add %(esp_options).
952
953 --- gcc/objc/lang-specs.h 2009-03-23 01:21:54.000000000 +0100
954 +++ gcc/objc/lang-specs.h 2009-03-23 01:22:16.000000000 +0100
955 @@ -30,13 +30,13 @@
956 %{traditional|ftraditional|traditional-cpp:\
957 %eGNU Objective C no longer supports traditional compilation}\
958 %{save-temps|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps:%b.mi} %{!save-temps:%g.mi} \n\
959 - cc1obj -fpreprocessed %{save-temps:%b.mi} %{!save-temps:%g.mi} %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\
960 + cc1obj -fpreprocessed %{save-temps:%b.mi} %{!save-temps:%g.mi} %(cc1_options) %(esp_options) %{print-objc-runtime-info} %{gen-decls}}\
961 %{!save-temps:%{!no-integrated-cpp:\
962 - cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}}\
963 + cc1obj %(cpp_unique_options) %(cc1_options) %(esp_options) %{print-objc-runtime-info} %{gen-decls}}}\
964 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
965 {".mi", "@objc-cpp-output", 0, 0, 0},
966 {"@objc-cpp-output",
967 - "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
968 + "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(esp_options) %{print-objc-runtime-info} %{gen-decls}\
969 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
970 {"@objective-c-header",
971 "%{E|M|MM:cc1obj -E %{traditional|ftraditional|traditional-cpp:-traditional-cpp}\
972 @@ -45,10 +45,10 @@
973 %{traditional|ftraditional|traditional-cpp:\
974 %eGNU Objective C no longer supports traditional compilation}\
975 %{save-temps|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps:%b.mi} %{!save-temps:%g.mi} \n\
976 - cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
977 + cc1obj -fpreprocessed %b.mi %(cc1_options) %(esp_options) %{print-objc-runtime-info} %{gen-decls}\
978 -o %g.s %{!o*:--output-pch=%i.gch}\
979 %W{o*:--output-pch=%*}%V}\
980 %{!save-temps:%{!no-integrated-cpp:\
981 - cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\
982 + cc1obj %(cpp_unique_options) %(cc1_options) %(esp_options) %{print-objc-runtime-info} %{gen-decls}\
983 -o %g.s %{!o*:--output-pch=%i.gch}\
984 %W{o*:--output-pch=%*}%V}}}}}", 0, 0, 0},
985
986
987
988 1.1 src/patchsets/gcc/4.5.3/pie/42_all_gcc44_objcp_lang-specs.h.patch
989
990 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/42_all_gcc44_objcp_lang-specs.h.patch?rev=1.1&view=markup
991 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/42_all_gcc44_objcp_lang-specs.h.patch?rev=1.1&content-type=text/plain
992
993 Index: 42_all_gcc44_objcp_lang-specs.h.patch
994 ===================================================================
995 2009-06-18 Matthias Klose <doko@××××××.com>, Kees Cook <kees@×××××××.net>
996
997 LP #346126
998 * gcc/objcp/lang-specs.h compiler spec Add %(esp_options).
999
1000 --- gcc/objcp/lang-specs.h 2009-03-23 01:21:54.000000000 +0100
1001 +++ gcc/objcp/lang-specs.h 2009-03-23 01:22:16.000000000 +0100
1002 @@ -36,7 +36,7 @@
1003 %(cpp_options) %2 -o %{save-temps:%b.mii} %{!save-temps:%g.mii} \n}\
1004 cc1objplus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.mii} %{!save-temps:%g.mii}}\
1005 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
1006 - %(cc1_options) %2 %{+e1*}\
1007 + %(cc1_options) %(esp_options) %2 %{+e1*}\
1008 -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}",
1009 CPLUSPLUS_CPP_SPEC, 0, 0},
1010 {"@objective-c++",
1011 @@ -46,15 +46,15 @@
1012 %(cpp_options) %2 -o %{save-temps:%b.mii} %{!save-temps:%g.mii} \n}\
1013 cc1objplus %{save-temps|no-integrated-cpp:-fpreprocessed %{save-temps:%b.mii} %{!save-temps:%g.mii}}\
1014 %{!save-temps:%{!no-integrated-cpp:%(cpp_unique_options)}}\
1015 - %(cc1_options) %2 %{+e1*}\
1016 + %(cc1_options) %(esp_options) %2 %{+e1*}\
1017 %{!fsyntax-only:%(invoke_as)}}}}",
1018 CPLUSPLUS_CPP_SPEC, 0, 0},
1019 {".mii", "@objective-c++-cpp-output", 0, 0, 0},
1020 {"@objective-c++-cpp-output",
1021 "%{!M:%{!MM:%{!E:\
1022 - cc1objplus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
1023 + cc1objplus -fpreprocessed %i %(cc1_options) %(esp_options) %2 %{+e*}\
1024 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
1025 {"@objc++-cpp-output",
1026 "%{!M:%{!MM:%{!E:\
1027 - cc1objplus -fpreprocessed %i %(cc1_options) %2 %{+e*}\
1028 + cc1objplus -fpreprocessed %i %(cc1_options) %(esp_options) %2 %{+e*}\
1029 %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
1030
1031
1032
1033 1.1 src/patchsets/gcc/4.5.3/pie/60_all_gcc44_invoke.texi.patch
1034
1035 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/60_all_gcc44_invoke.texi.patch?rev=1.1&view=markup
1036 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/60_all_gcc44_invoke.texi.patch?rev=1.1&content-type=text/plain
1037
1038 Index: 60_all_gcc44_invoke.texi.patch
1039 ===================================================================
1040 2009-09-11 Magnus Granberg <zorry@g.o>
1041
1042 * gcc/doc/invoke.texi Add NOTES about -fstack-protector-all, -pie and
1043 -fPIE/-fpie when --enable-esp is enable, this options is on by default.
1044
1045 --- gcc/doc/invoke.texi 2009-04-01 09:18:47.000000000 +0200
1046 +++ gcc/doc/invoke.texi 2009-06-18 14:08:38.000000000 +0200
1047 @@ -7134,6 +7134,11 @@
1048 @opindex fstack-protector-all
1049 Like @option{-fstack-protector} except that all functions are protected.
1050
1051 +NOTE: When --enable-esp this option is enabled by default
1052 +for C, C++, ObjC, ObjC++, if neither @option{-fno-stack-protector}
1053 +or @option{-nostdlib} or @option{-nodefaultlibs} or
1054 +@option{-fstack-protector} are found.
1055 +
1056 @item -fsection-anchors
1057 @opindex fsection-anchors
1058 Try to reduce the number of symbolic address calculations by using
1059 @@ -7960,6 +7965,12 @@
1060 that were used to generate code (@option{-fpie}, @option{-fPIE},
1061 or model suboptions) when you specify this option.
1062
1063 +NOTE: When --enable-esp this option is enabled by default
1064 +for C, C++, ObjC, ObjC++, if neither @option{-fno-pie} or @option{-fno-PIE}
1065 +or @option{-fno-pic} or @option{-fno-PIC} or @option{-nostdlib} or
1066 +@option{-nostartfiles} or @option{-shared} or @option{-pg} or @option{-p}
1067 +are found.
1068 +
1069 @item -rdynamic
1070 @opindex rdynamic
1071 Pass the flag @option{-export-dynamic} to the ELF linker, on targets
1072 @@ -15889,6 +15910,11 @@
1073 @code{__pie__} and @code{__PIE__}. The macros have the value 1
1074 for @option{-fpie} and 2 for @option{-fPIE}.
1075
1076 +NOTE: When --enable-esp this option is enabled by default
1077 +for C, C++, ObjC, ObjC++, if neither @option{-fno-pie} or @option{-fno-PIE}
1078 +or @option{-fno-pic} or @option{-fno-PIC} or @option{-nostdlib} or
1079 +@option{-nostartfiles} or @option{-shared} are found.
1080 +
1081 @item -fno-jump-tables
1082 @opindex fno-jump-tables
1083 Do not use jump tables for switch statements even where it would be
1084
1085
1086
1087 1.1 src/patchsets/gcc/4.5.3/pie/README
1088
1089 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README?rev=1.1&view=markup
1090 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README?rev=1.1&content-type=text/plain
1091
1092 Index: README
1093 ===================================================================
1094 This work started with bugs #94325 #100689 #106222 #149292 #149649 and the overlay on http://overlays.gentoo.org/dev/kevquinn.
1095 By Kevin K. Quinn, Peter S. Mazinger, Natanael Copa, Alexander Gabert, Solar, PaX Team, SpanKY and mentor.
1096
1097 The work stalled. Some threads on the Gentoo forum started to do their own fixes to get it working.
1098 Xake started the thread where most of the new work is done: "How long until hardened and toolchain will produce a hardened gcc4?"
1099 http://forums.gentoo.org/viewtopic-t-668885.html. I joined the thread and started to code.
1100
1101 We started with the pieworld code from kevquinn's overlay. The PIE and minispecs part hit the tree later on.
1102 With GCC 4.4.0 I was willing to do some code cleanup, use built-in specs and add it as --enable-esp in the
1103 configure command line.
1104
1105 Thank you all:
1106 Kevin K. Quinn, Peter S. Mazinger, Natanael Copa, Alexander Gabert, Solar, PaX Team, SpanKY, Xake, Dwokfur,
1107 KernelOfTruth, SteveL, nixnut, Hopeless, forsaken1, XioXous, obrut<-, mv, qjim, Tommy[D], Genewb, radegand,
1108 unk, neuron, alexxy, hellboi64, likewhoa, g0rg0n, costel78, polsas, 7v5w7go9ub0o, uberpinguin, Naib, cilly,
1109 bonsaikitten, kerframil, agaffney, Gordon Malm, blueness, Matthias Klose, Kees Cook, mentor, Anarchy,
1110 devurandom and everyone else for helping to test, suggestions, fixes and anything else we have missed.
1111 /2009-00-09 Magnus Grenberg (Zorry) <zorry@×××.nu>
1112
1113
1114
1115 1.1 src/patchsets/gcc/4.5.3/pie/README.Changelog
1116
1117 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README.Changelog?rev=1.1&view=markup
1118 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README.Changelog?rev=1.1&content-type=text/plain
1119
1120 Index: README.Changelog
1121 ===================================================================
1122 0.4.5 Magnus Granberg <zorry@g.o>
1123
1124 * gcc/config/rs6000/sysv4.h Fix a typo in the static spec rules
1125
1126 0.4.4 Magnus Granberg <zorry@g.o>
1127
1128 * gcc/esp.h Renamed ESP_CC1_STRICT_SPEC to ESP_CC1_STRICT_OVERFLOW_SPEC
1129 Renamed ESP_OPTIONS_PIE_CHECK_SPEC to ESP_LINK_PIE_CHECK_SPEC
1130
1131 0.4.3 Magnus Granberg <zorry@g.o>
1132
1133 #299061 b.g.o
1134 * gcc/gcc.c removed the pie incompatible specs rule call
1135 * gcc/esp.h Move the -pie incompatible check to esp_link
1136 remove the -shared incompatible check
1137
1138 0.4.2 Magnus granberg <zorry@g.o>
1139
1140 * configure remove the changes from 0.4.1
1141 * Makefile.in remove the changes from 0.4.1 remove -fstack-protector check.
1142 * gcc/configure remove the changes from 0.4.1
1143 * gcc/config.in remove the changes from 0.4.1 remove HAVE_GCC_SSP
1144 * gcc/Makefile remove the changes from 0.4.1
1145 * gcc/esp.h change HAVE_GCC_LD_PIE to (EFAULT_PIE || EFAULT_PIE_SSP)
1146 change HAVE_GCC_SSP to (EFAULT_SSP || EFAULT_PIE_SSP)
1147 * libmudflap/Makefiles.in remove the changes from 0.4.1
1148
1149 0.4.1 Magnus Granberg <zorry@g.o>
1150
1151 *configure removed check for --enable-esp removed enable_esp
1152 added check for --enable-esp=(no|all|nopie|nossp). added enable_esp_set
1153 *Makefile.in renamed enable_esp to enable_esp_set
1154 *gcc/configure removed check for --enable-esp removed enable_esp
1155 added check for --enable-esp=(no|all|nopie|nossp). added enable_esp_set
1156 added a -fPIE -pie check. change AC_COMPILE_IFELSE to AC_LINK_IFELSE in the
1157 -fstack-protector check.
1158 * gcc/config.in Added HAVE_GCC_LD_PIE
1159 *gcc/Makefile.in renamed enable_esp to enable_esp_set
1160 *gcc/esp.h Renamed HAVE_LD_PIE to HAVE_GCC_LD_PIE
1161 Added HAVE_GCC_LD_PIE to #define ESP_CC1_PIE_SPEC. Move ESP_COMMAND_OPTIONS_SPEC
1162 * libmudflap/Makefiles.in In enable_esp change ifeq to ifdef.
1163
1164 #293843 b.g.o
1165 *gcc/esp.h Added -nonow to the -z now specs.
1166
1167 0.4.0 Anthony G. Basile <basile@××××××××××××××.edu>
1168
1169 rename espf to esp and change espf-patchset to piepatchset
1170
1171 0.3.9 Magnus Granberg <zorry@g.o>
1172
1173 * gcc/configure Added check for TLS on the target in the SSP check.
1174
1175 #149292 b.g.o
1176 * gcc/config/i386/linux.h Removed uclibc don't support TLS on stack-protector
1177 * gcc/config/i386/linux64.h Removed uclibc don't support TLS on stack-protector
1178 * gcc/config/rs6000/linux.h Removed uclibc don't support TLS on stack-protector
1179 * gcc/config/i386/linux.h Removed uclibc don't support TLS on stack-protector
1180 * gcc/config/sparc/linux.h Removed uclibc don't support TLS on stack-protector
1181 * gcc/config/sparc/linux64.h Removed uclibc don't support TLS on stack-protector
1182
1183 0.3.8 Magnus Granberg <zorry@g.o>
1184
1185 * gcc/configure Redone the -fstack-protector check.
1186 * gcc/config.in Added HAVE_GCC_SSP
1187 * gcc/gcc.c Removed code for espf_link_spec in X
1188 * gcc/espf.h Added ifdef HAVE_GCC_SSP, change code for espf_link_spec and link_pie_spec
1189
1190 0.3.7_beta Anthony G. Basile <basile@××××××××××××××.edu>
1191
1192 * gcc/configure Check if -fstack-protector is supported by gcc on ARCH
1193 Updated AC_SUBST enable_espf
1194 * gcc/Makefile.in Remove the fix for $(out_object_file): ix86_split_to_parts() stack smashing attack b.g.o #149292.
1195 * gcc/gcc.c Updaded the .c .cc compiler specs.
1196
1197 0.3.6 Magnus Granberg <zorry@×××.nu>
1198
1199 * configure Check --enable-espf change ppc* to powerpc*, powerpc64 and add ia64.
1200 * gcc/configure Don't check for -z,relro on ia64. Disable crtbeginTS for ia64.
1201 * gcc/espf.h ia64 don't support -fstack-protector*
1202
1203 0.3.5 Maguns Granberg <zorry@×××.nu>
1204
1205 * gcc/espf.h Change the specs for crtbegin.TS.o.
1206 * gcc/gcc.c Rename espf_cc1_options to espf_options_pie_check.
1207 * gcc/config/linux.h Fix typos ENABLE_CRTBEGINS to ENABLE_CRTBEGINTS
1208 * gcc/config/rs6000/linux64.h ASM_SPEC32: %{fpic:-K PIC} %{fPIC:-K PIC} to
1209 %{fpic|fPIC|fpie|fPIE:-K PIC}
1210
1211 0.3.4 Magnus Granberg <zorry@×××.nu>
1212
1213 * gcc/configure Add crtbeginTS.o support.
1214 * gcc/Makefile.in Add crtbeginTS.o support.
1215 * gcc/gcc.c Add espf_cc1_options.
1216 * gcc/espf.h Added espf_cc1_options, crtbeginTS.o support,
1217 espf_cc1_options and espf_cc1_strictoverflow.
1218 * gcc/config.in Add crtbeginTS.o support.
1219 * gcc/config/linux.h Add crtbeginTS.o support.
1220 * gcc/config/rs6000/sysv4.h Add crtbeginTS.o support.
1221 * gcc/doc/invoke.texi Add NOTES about -fstack-protector-all,
1222 -pie and -fPIE.
1223 * libgcc/Makefile.in Add crtbeginTS.o support.
1224
1225 0.3.3 Magnus Granberg <zorry@×××.nu>
1226
1227 * gcc/opts.c change #ifdef ENABLE_ESPF to #ifndef ENABLE_ESPF
1228
1229 0.3.2 Magnus Granberg <zorry@×××.nu>
1230
1231 * gcc/opts.c disable flag_delete_null_pointer_checks >= -O2
1232 * gcc/espf.h add ESPF_CC1_SSP_SPEC and ESPF_CC1_PIE_SPEC to fix bugs on -vanilla spec
1233
1234 #149292 b.g.o
1235 * gcc/config/i386/linux.h uclibc don't support TLS on stack-protector
1236 * gcc/config/i386/linux64.h uclibc don't support TLS on stack-protector
1237 * gcc/config/rs6000/linux.h uclibc don't support TLS on stack-protector
1238 * gcc/config/i386/linux.h uclibc don't support TLS on stack-protector
1239 * gcc/config/sparc/linux.h uclibc don't support TLS on stack-protector
1240 * gcc/config/sparc/linux64.h uclibc don't support TLS on stack-protector
1241
1242 0.3.1 Magnus Granberg <zorry@×××.nu>
1243
1244 * gcc/cp/Make-lang.in cc1plus: pch test fail when cc1plus is compile with -fPIE.
1245 * gcc/configure fix --enable-espf when USE"-hardened"
1246
1247 4.4.1-espf-0.3.0 Magnus Granberg <zorry@×××.nu>
1248
1249 * gcc/espf.h add ESPF_LINK_SPEC ESPF_LINK_NOW_SPEC
1250 * gcc/gcc.c move do_self_spec (espf_command_options_spec)
1251 do_spec_1() add espf_link_spec
1252
1253 0.3.0 Magnus Granberg <zorry@×××.nu>
1254
1255 * gcc/objc/lang-specs.h Add %(espf_options)
1256 * gcc/objcp/lang-specs.h Add %(espf_options)
1257 * gcc/cp/lang-specs.h Add %(espf_options)
1258 * gcc/config.in removed ENABLE_LIBSSP
1259 * Makefile.in We add -fno-stack-protector to
1260 BOOT_CFLAGS, LIBCFLAGS and LIBCXXFLAGS
1261 cc1: pch.exp test fail when cc1 is compile with -fPIE
1262 * libmudflap/Makefiles.in Add -fno-stack-protector -U_FORTIFY_SOURCE
1263 to AM_CFLAGS
1264 * configure add --enable-espf
1265 add -fno-stack-protector to stage1_cflags
1266 add targes ppc* arm sparc*
1267 * gcc/configure change code for check --enable-espf
1268 * libmudflap/configure add enable_espf
1269 * gcc/espf.h ESPF_CC1_OPTIONS_SPEC renamed to ESPF_OPTIONS_SPEC
1270 add ESPF_CPP_OPTIONS_SPEC ESPF_COMMAND_OPTIONS_SPEC
1271 ESPF_CC1_OPTIONS_SSP_SPEC renamed to ESPF_OPTIONS_SSP_SPEC
1272 ESPF_COMPILER_COMMAND_PIE_SPEC renamed to ESPF_OPTIONS_PIE_SPEC
1273 ESPF_LINK_COMMAND_PIE_SPEC renamed to ESPF_LINK_PIE_SPEC
1274 add !p !pg to ESPF_LINK_PIE_SPEC
1275 removed ESPF_LINK_SPEC ESPF_CC1_OPTIONS_PIE_INCOMPATIBLE_SPEC
1276 * gcc/gcc.c cpp_options add %(espf_cpp_options)
1277 compiler spec add %(espf_options)
1278 change code for ESPF_EXTRA_SPECS
1279 process_command(): Check for lazy, or now
1280 do_spec_1(): Add -z now and -z relro
1281 main() add do_self_spec (espf_command_options_spec)
1282 removed do_self_spec (espf_cc1_command_spec) do_self_spec (espf_link_command_spec)
1283
1284 0.2.9 Magnus Granberg <zorry@×××.nu>
1285
1286 * gcc/espf.h add ESPF_COMPILER_COMMAND_PIE_SPEC
1287 add ESPF_LINK_COMMAND_PIE_SPEC
1288 change ESPF_COMPILER_COMMAND_SPEC ESPF_LINK_COMMAND_SPEC
1289
1290 0.2.8 Magnus Granberg <zorry@×××.nu>
1291
1292 * gcc/configure removed check crtbeginTS.o
1293 * gcc/espf.h added notes
1294 add ESPF_CC1_SPEC
1295 removed ESPF_CPP_UNIQUE_OPTIONS espf_override_options()
1296 * gcc/gcc.c cc1_spec Set it to CC1_SPEC if ! ENABLE_ESPF
1297 * gcc/toplev.c removed ESPF_OVERRIDE_OPTIONS
1298
1299 0.2.7 Magnus Granberg <zorry@×××.nu>
1300
1301 * gcc/opts.c (decode_options): Remove flag_strict_overflow as opt2
1302 * gcc/config.in removed HAVE_CRTBEGINTS
1303 * gcc/Makefile removed crtbeginTS.o
1304 * libgcc/Makefile.in removed crtbeginTS.o
1305 * gcc/config/i386/i386.h removed espf_override_options ESPF_EXTRA_SPECS
1306 * gcc/config/linux.h remoevd crtbeginTS.o
1307 * gcc/espf.h ESPF_CC1_OPTIONS_PIE_SPEC renamed to ESPF_CC1_COMMAND_SPEC
1308 * gcc/gcc.c add ESPF_EXTRA_SPECS
1309 main() add do_self_spec (espf_cc1_command_spec)
1310
1311 0.2.6 Magnus Granberg <zorry@×××.nu>
1312
1313 * gcc/config/i386/i386.h add espf_override_options() to OVERRIDE_OPTIONS
1314 * gcc/espf.h add espf_override_options()
1315 * gcc/toplev.c add ESPF_OVERRIDE_OPTIONS
1316
1317 0.2.5 Magnus Granberg <zorry@×××.nu>
1318
1319 * gcc/config/i386/i386.h removed espf_cc1
1320 * gcc/config/i386/linux.h removed espf_cc1 %(crtend_gen)
1321 * gcc/config/i386/x86-64.h removed espf_cc1 %(crtend_gen)
1322 * gcc/config/linux.h removed espf_cc1 %(crtfile_gen)
1323 %(crtbegin_t_gen) %(crtend_gen)
1324 add crtbeginTS.o
1325 * gcc/config.in removed TARGET_LIBC_PROVIDES_PIE
1326 add HAVE_CRTBEGINTS
1327 * gcc/Makefile.in add ESPF_NOPIE_CFLAGS ESPF_NOSSP_CFLAGS to
1328 CRTSTUFF_T_CFLAGS
1329 add ESPF_NOSSP_CFLAGS to CRTSTUFF_T_CFLAGS_S
1330 * espf.h ESPF_CC1_SPEC renamed to ESPF_CC1_OPTIONS_SPEC
1331 add ESPF_LINK_SPEC
1332 ESPF_CC1_SSP_SPEC renamed to ESPF_CC1_OPTIONS_SSP_SPEC
1333 ESPF_CC1_PIE_SPEC renamed to ESPF_CC1_OPTIONS_PIE_SPEC
1334 ESPF_CC1_OPTIONS_SPEC renamed to ESPF_CC1_OPTIONS_PIE_INCOMPATIBLE_SPEC
1335 LINK_PIE_SPEC renamed to ESPF_LINK_COMMAND_SPEC
1336 removed ESPF_CC1_STRICT_SPEC CRTFILE_GEN_SPEC CRTBEGIN_GEN_SPEC
1337 CRTBEGIN_T_GEN_SPEC CRTEND_GEN_SPEC
1338 * gcc/configure remove TARGET_LIBC_PROVIDES_PIE
1339 define HAVE_CRTBEGINTS
1340 * gcc/gcc.c LINK_COMMAND_SPEC add %(espf_link)
1341 main() add do_self_spec (espf_link_command_spec)
1342
1343 0.2.4 Magnus Granberg <zorry@×××.nu>
1344
1345 libgcc/Makefile.in clean specs
1346
1347 0.2.3 Magnus Granberg <zorry@×××.nu>
1348
1349 *gcc/espf.h add ESPF_CC1_STRICT_SPEC
1350
1351 0.2.2 Magnus Granberg <zorry@×××.nu>
1352
1353 * gcc/config/i386/i386.h Add espf_cc1
1354 Add ESPF_EXTRA_SPECS
1355 * gcc/config/i386/linux.h Add espf_cc1
1356 * gcc/config/i386/x86-64.h Add espf_cc1
1357 * gcc/config/linux.h Add espf_cc1
1358 * gcc/Makefile.in add crtbeginTS.o to EXTRA_PARTS list
1359 * libgcc/Makefile.in add crtbeginTS.o to EXTRA_PARTS list
1360 * gcc/configure add define ENABLE_LIBSSP
1361 * gcc/gcc.c %(fortify_default) renamed to %(espf_cpp_unique_options)
1362 %(pie_incompatible) renamed to %(espf_cc1_options)
1363 removed ESPF_EXTRA_SPECS
1364 * gcc/espf.h ESPF_DEFAULT_SPEC renamed to ESPF_CC1_SPEC
1365 SSP_DEFAULT_SPEC renamed to ESPF_CC1_SSP_SPEC
1366 FORTIFY_DEFAULT_SPEC renamed to ESPF_CPP_UNIQUE_OPTIONS
1367 PIE_DEFAULT_SPEC renamed to ESPF_CC1_PIE_SPEC
1368 PIE_INCOMPATIBLE_SPEC renamed to ESPF_CC1_OPTIONS_SPEC
1369 add new CRTFILE_GEN_SPEC CRTBEGIN_T_GEN_SPEC CRTEND_GEN_SPEC if !
1370 TARGET_LIBC_PROVIDES_PIE
1371
1372 4.4.0-espf-0.2.1 Magnus Granberg <zorry@×××.nu>
1373
1374 * gcc/gcc.c include: espf.h
1375 cc1_spec = CC1_SPEC if not ENABLE_ESPF
1376 cpp_unique_options add %(fortify_default)
1377 cc1_options add %(pie_incompatible)
1378 EXTRA_SPECS add ESPF_EXTRA_SPECS
1379 * libgcc/Makefile.in add crtbeginTs.o
1380 gcc/Makefile.in add ESPF_NOPIE_CFLAGS and ESPF_NOSSP_CFLAGS
1381 LIBGCC2_CFLAGS add ESPF_NOSSP_CFLAGS
1382 CRTSTUFF_CFLAGS add ESPF_NOPIE_CFLAGS and ESPF_NOSSP_CFLAGS
1383 crtbegin* add crtbeginTS
1384 $(out_object_file): ix86_split_to_parts() stack smashing attack b.g.o #149292
1385 * libgcc/configure add enable_espf
1386 * gcc/config/linux.h add %(crtfile_gen) %(crtbegin_t_gen) %(crtend_gen)
1387 * gcc/config/i386/linux.h add %(crtend_gen)
1388 * gcc/config/i386/linux64.h add %(crtend_gen)
1389 * gcc/config.gcc extra_parts add crtbeginTS.o
1390 * libgcc/config.host extra_parts add crtbeginTS.o
1391 * gcc/configure check -z relro
1392 check -z now
1393 check FORTIFY_SOURCES level 2
1394 check Scrt1.o
1395 check --enable-espf
1396 check crtbeginTS.o
1397 * gcc/espf.h new file
1398 * gcc/varasm.c (decl_tls_model): Check flag_pic instead of flag_shlib
1399 * gcc/config.in add ENABLE_LIBSSP
1400 add ENABLE_ESPF
1401 add TARGET_LIBC_PROVIDES_FORTIFY2
1402 add TARGET_LIBC_PROVIDES_PIE
1403 * configure define ENABLE_LIBSSP
1404
1405 gcc-4.3.3-piepatches-v10.2.1
1406
1407
1408
1409 1.1 src/patchsets/gcc/4.5.3/pie/README.Gentoo.patches
1410
1411 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README.Gentoo.patches?rev=1.1&view=markup
1412 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README.Gentoo.patches?rev=1.1&content-type=text/plain
1413
1414 Index: README.Gentoo.patches
1415 ===================================================================
1416 ================
1417 === W[hat]TF ===
1418 ================
1419
1420 Gentoo patchsets that have grown too large to keep on the rsync mirrors have
1421 been moved to our git tree. From there, we bundle up all the whee little
1422 patches into a tarball and distribute it via our public mirroring system.
1423
1424 If you want specific info about a patch (like wtf it does or whose great idea
1425 it was to change the code), read the patch ! We try to fill out the top of
1426 them with useful info such as what it does, why it's needed, bug reports,
1427 original creators, etc... For simple patches, we reserve the right to assume
1428 your IQ is greater than absolute 0 and figure out what it does w/out an
1429 explanation. If, by some miracle of science, it falls below the absolute 0
1430 mark, you should help mankind by finding some scientists and letting them
1431 probe you with their ... erm ... probes.
1432
1433 =================
1434 === W[here]TF ===
1435 =================
1436
1437 For those with git access
1438 git://git.overlays.gentoo.org/proj/hardened-gccpatchset.git
1439
1440 For those w/out git access, this URL should help you:
1441 http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-gccpatchset.git;a=summary
1442
1443 It should be pretty easy to find your way around, you're a big boy after all.
1444
1445
1446
1447 1.1 src/patchsets/gcc/4.5.3/pie/README.history
1448
1449 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README.history?rev=1.1&view=markup
1450 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.3/pie/README.history?rev=1.1&content-type=text/plain
1451
1452 Index: README.history
1453 ===================================================================
1454 0.4.5 18-06-2010
1455 U 35_all_gcc44_config_crtbegints.patch
1456 0.4.4 26-05-2010
1457 U 30_all_gcc44_esp.h.patch
1458 0.4.3 26-05-2010
1459 U 20_all_gcc44_gcc.c.patch
1460 U 30_all_gcc44_esp.h.patch
1461 0.4.2 24-05-2010
1462 U 10_all_gcc44_configure.patch
1463 U 12_all_gcc44_Makefile.in.patch
1464 U 11_all_gcc44_config.in.patch
1465 U 30_all_gcc44_esp.h.patch
1466 0.4.1 29-04-2010
1467 U 10_all_gcc45_configure.patch
1468 U 12_all_gcc45_Makefile.in.patch
1469 U 11_all_gcc44_config.in.patch
1470 U 30_all_gcc44_esp.h.patch
1471
1472 0.4.0 19-04-2010
1473 U 10_all_gcc45_configure.patch
1474 U 12_all_gcc45_Makefile.in.patch
1475 U 11_all_gcc44_config.in.patch
1476 U 20_all_gcc45_gcc.c.patch
1477 - 30_all_gcc44_espf.h.patch
1478 + 30_all_gcc44_esp.h.patch
1479
1480 0.3.9 14-04-2010
1481 U 10_all_gcc45_configure.patch
1482 - 50_all_gcc44_no_ssp_tls_uclibc.patch
1483 U 33_all_gcc45_config_rs6000_linux64.h.patch
1484
1485 0.3.8 10-04-2010
1486 10_all_gcc44_configure.patch
1487 11_all_gcc44_config.in.patch
1488 20_all_gcc44_gcc.c.patch
1489 30_all_gcc44_espf.h.patch
1490
1491 0.3.7 10-02-2010
1492 20_all_gcc44_gcc.c.patch
1493 30_all_gcc44_espf.h.patch
1494 10_all_gcc44_configure.patch
1495
1496 0.3.6 23-12-2009
1497 - 10_all_gcc44_configure.patch
1498 + 10_all_gcc44_configure.patch
1499 - 30_all_gcc44_espf.h.patch
1500 + 30_all_gcc44_espf.h.patch
1501 - README.Changelog
1502 + README.Changelog
1503 - README.history
1504 + README.history
1505 - README
1506 + README
1507
1508 0.3.5 24-09-2009
1509 - 30_all_gcc44_espf.h.patch
1510 + 30_all_gcc44_espf.h.patch
1511 - 35_all_gcc44_config_crtbegints.patch
1512 + 35_all_gcc44_config_crtbegints.patch
1513 + 33_all_gcc44_config_rs6000_linux64.h.patch
1514 - README.Changelog
1515 + README.Changelog
1516 - README.history
1517 + README.history
1518 + README.Gentoo.patches
1519
1520 0.3.4 11-09-2009
1521 - 10_all_gcc44_configure.patch
1522 + 10_all_gcc44_configure.patch
1523 - 11_all_gcc44_config.in.patch
1524 + 11_all_gcc44_config.in.patch
1525 - 12_all_gcc44_Makefile.in.patch
1526 + 12_all_gcc44_Makefile.in.patch
1527 - 20_all_gcc44_gcc.c.patch
1528 + 20_all_gcc44_gcc.c.patch
1529 - 23_all_gcc44_opts.c.patch
1530 - 30_all_gcc44_espf.h.patch
1531 + 30_all_gcc44_espf.h.patch
1532 + 35_all_gcc44_config_crtbegints.patch
1533 + 60_all_gcc44_invoke.texi.patch
1534 - README.Changelog
1535 + README.Changelog
1536 - README.history
1537 + README.history
1538 - README
1539 + README
1540
1541 0.3.3 14-08-2009
1542 - 23_all_gcc44_opts.c.patch
1543 + 23_all_gcc44_opts.c.patch
1544
1545 0.3.2 09-08-2009
1546 + 50_all_gcc44_no_ssp_tls_uclibc.patch
1547 + README.Changelog
1548 + README.history
1549 - 23_all_gcc44_opts.c.patch
1550 + 23_all_gcc44_opts.c.patch
1551 - 30_all_gcc44-espf.h.patch
1552 + 30_all_gcc44-espf.h.patch
1553
1554 0.3.1 23-07-2009
1555 - 10_all_gcc44_configure.patch
1556 + 10_all_gcc44_configure.patch
1557
1558 0.3.0 23-07-2009
1559 - 10_all_gcc44_configure.patch
1560 + 10_all_gcc44_configure.patch
1561 - 11_all_gcc44_config.in.patch
1562 + 11_all_gcc44_config.in.patch
1563 - 12_all_gcc44_Makefile.in.patch
1564 + 12_all_gcc44_Makefile.in.patch
1565 - 20_all_gcc44_gcc.c.patch
1566 + 20_all_gcc44_gcc.c.patch
1567 + 40_all_gcc44_obj_lang-specs.h.patch
1568 + 40_all_gcc44_objp_lang-specs.h.patch
1569 + 40_all_gcc44_cp_lang-specs.h.patch
1570 - 50_all_gcc44_gentoo_v20090614.1.patch
1571 - 30_all_gcc44-espf.h.patch
1572 + 30_all_gcc44-espf.h.patch
1573
1574 0.2.9 14-06-2009
1575 - 12_all_gcc44_Makefile.in.patch
1576 + 12_all_gcc44_Makefile.in.patch
1577 - 30_all_gcc44-espf.h.patch
1578 + 30_all_gcc44-espf.h.patch
1579 - 50_all_gcc44_gentoo_v20090612.2.patch
1580 + 50_all_gcc44_gentoo_v20090614.1.patch
1581
1582 0.2.8 12-06-2009
1583 - 10_all_gcc44_configure.patch
1584 + 10_all_gcc44_configure.patch
1585 - 11_all_gcc44_config.in.patch
1586 + 11_all_gcc44_config.in.patch
1587 - 12_all_gcc44_Makefile.in.patch
1588 + 12_all_gcc44_Makefile.in.patch
1589 - 22_all_gcc44-toplev.c.patch
1590 - 25_all_gcc44-espf.h.patch
1591 + 30_all_gcc44-espf.h.patch
1592 + 50_all_gcc44_gentoo_v20090612.2.patch
1593
1594 0.2.7 29-05-2009
1595 - 11_all_gcc44_config.in.patch
1596 + 11_all_gcc44_config.in.patch
1597 - 12_all_gcc44_Makefile.in.patch
1598 + 12_all_gcc44_Makefile.in.patch
1599 - 20_all_gcc44_gcc.c.patch
1600 + 20_all_gcc44_gcc.c.patch
1601 + 23_all_gcc44_opts.c.patch
1602 - 25_all_gcc44-espf.h.patch
1603 + 25_all_gcc44-espf.h.patch
1604 - 30_all_gcc44-config-defaul-linux.patch
1605
1606 0.2.6 28-05-2009
1607 + 22_all_gcc44-toplev.c.patch
1608 - 25_all_gcc44-espf.h.patch
1609 + 25_all_gcc44-espf.h.patch
1610 - 30_all_gcc44-config-defaul-linux.patch
1611 + 30_all_gcc44-config-defaul-linux.patch
1612
1613 0.2.5 27-05-2009
1614 - 10_all_gcc44_configure.patch
1615 + 10_all_gcc44_configure.patch
1616 - 12_all_gcc44_Makefile.in.patch
1617 + 12_all_gcc44_Makefile.in.patch
1618 - 20_all_gcc44_gcc.c.patch
1619 + 20_all_gcc44_gcc.c.patch
1620 - 25_all_gcc44-espf.h.patch
1621 + 25_all_gcc44-espf.h.patch
1622 - 30_all_gcc44-config-defaul-linux.patch
1623 + 30_all_gcc44-config-defaul-linux.patch
1624 - 40_all_gcc44-gentoo.patch
1625
1626 0.2.4 08-05-2009
1627 - 12_all_gcc44_Makefile.in.patch
1628 + 12_all_gcc44_Makefile.in.patch
1629
1630 0.2.3 08-05-2009
1631 - 20_all_gcc44_gcc.c.patch
1632 + 20_all_gcc44_gcc.c.patch
1633 - 40_all_gcc44-gentoo.patch
1634 + 40_all_gcc44-gentoo.patch
1635
1636 0.2.2 04-05-2009
1637 + 10_all_gcc44_configure.patch
1638 + 11_all_gcc44_config.in.patch
1639 + 12_all_gcc44_Makefile.in.patch
1640 + 20_all_gcc44_gcc.c.patch
1641 + 21_all_gcc44_decl-tls-model.patch
1642 + 25_all_gcc44-espf.h.patch
1643 + 30_all_gcc44-config-defaul-linux.patch
1644 + 40_all_gcc44-gentoo.patch
1645 - 01_all_gcc44-configure.patch
1646 - 10_all_gcc44-gcc_configure.patch
1647 - 11_all_gcc44-gcc_config.in.patch
1648 - 12_all_gcc44-gcc_config.gcc.patch
1649 - 13_all_gcc44-gcc_Makefile.in.patch
1650 - 15_all_gcc44-libgcc_config.host.patch
1651 - 16_all_gcc44-libgcc_configure.patch
1652 - 17_all_gcc44-libgcc_Makefile.in.patch
1653 - 21_all_gcc44-gcc_espf.h.patch
1654 - 22_all_gcc44-gcc_gcc.c.patch
1655 - 23_all_gcc44-gcc_varasm.c.patch
1656 - 30_all_gcc44-add-crt-start-endfiles-linux.patch
1657
1658 0.2.1 28-04-2009
1659 + 01_all_gcc44-configure.patch
1660 + 10_all_gcc44-gcc_configure.patch
1661 + 11_all_gcc44-gcc_config.in.patch
1662 + 12_all_gcc44-gcc_config.gcc.patch
1663 + 13_all_gcc44-gcc_Makefile.in.patch
1664 + 15_all_gcc44-libgcc_config.host.patch
1665 + 16_all_gcc44-libgcc_configure.patch
1666 + 17_all_gcc44-libgcc_Makefile.in.patch
1667 + 21_all_gcc44-gcc_espf.h.patch
1668 + 22_all_gcc44-gcc_gcc.c.patch
1669 + 23_all_gcc44-gcc_varasm.c.patch
1670 + 30_all_gcc44-add-crt-start-endfiles-linux.patch
1671 - 00_all_gcc4.4-cvs-incompat.patch
1672 - 05_all_gcc4.4-compile-no-ssp.patch
1673 - 10_all_gcc4.4-hardened-minispecs-support.patch
1674 - 11_all_gcc4.4-decl-tls-model.patch
1675 - 12_all_gcc4.4-fortify-minispecs-support.patch
1676 - 20-all_gcc4.4-default-crt-start-endfile.patch
1677 - 30-all_gcc4.4-crtbeginTS-fno-PIE.patch
1678
1679 0.1.0 16.04.2009
1680 + 00_all_gcc4.4-cvs-incompat.patch
1681 + 05_all_gcc4.4-compile-no-ssp.patch
1682 + 10_all_gcc4.4-hardened-minispecs-support.patch
1683 + 11_all_gcc4.4-decl-tls-model.patch
1684 + 12_all_gcc4.4-fortify-minispecs-support.patch
1685 + 20-all_gcc4.4-default-crt-start-endfile.patch
1686 + 30-all_gcc4.4-crtbeginTS-fno-PIE.patch