Gentoo Archives: gentoo-commits

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