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