Gentoo Archives: gentoo-commits

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