Gentoo Archives: gentoo-commits

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