1 |
slyfox 18/01/25 21:18:53 |
2 |
|
3 |
Added: 10_all_default-fortify-source.patch |
4 |
11_all_default-warn-format-security.patch |
5 |
12_all_default-warn-trampolines.patch |
6 |
13_all_default-ssp-fix.patch |
7 |
25_all_alpha-mieee-default.patch |
8 |
34_all_ia64_note.GNU-stack.patch |
9 |
50_all_libiberty-asprintf.patch |
10 |
51_all_libiberty-pic.patch |
11 |
54_all_nopie-all-flags.patch |
12 |
55_all_extra-options.patch |
13 |
90_all_pr55930-dependency-tracking.patch |
14 |
README.history |
15 |
Log: |
16 |
gcc/7.3.0: initial patchset |
17 |
|
18 |
Revision Changes Path |
19 |
1.1 src/patchsets/gcc/7.3.0/10_all_default-fortify-source.patch |
20 |
|
21 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/10_all_default-fortify-source.patch?rev=1.1&view=markup |
22 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/10_all_default-fortify-source.patch?rev=1.1&content-type=text/plain |
23 |
|
24 |
Index: 10_all_default-fortify-source.patch |
25 |
=================================================================== |
26 |
Enable -D_FORTIFY_SOURCE=2 by default. |
27 |
|
28 |
|
29 |
--- a/gcc/c-family/c-cppbuiltin.c |
30 |
+++ b/gcc/c-family/c-cppbuiltin.c |
31 |
@@ -951,6 +951,9 @@ c_cpp_builtins (cpp_reader *pfile) |
32 |
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); |
33 |
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0); |
34 |
|
35 |
+ /* Fortify Source enabled by default w/optimization. */ |
36 |
+ cpp_define (pfile, "_FORTIFY_SOURCE=((defined __OPTIMIZE__ && __OPTIMIZE__ > 0) ? 2 : 0)"); |
37 |
+ |
38 |
/* Misc. */ |
39 |
if (flag_gnu89_inline) |
40 |
cpp_define (pfile, "__GNUC_GNU_INLINE__"); |
41 |
|
42 |
|
43 |
|
44 |
1.1 src/patchsets/gcc/7.3.0/11_all_default-warn-format-security.patch |
45 |
|
46 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/11_all_default-warn-format-security.patch?rev=1.1&view=markup |
47 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/11_all_default-warn-format-security.patch?rev=1.1&content-type=text/plain |
48 |
|
49 |
Index: 11_all_default-warn-format-security.patch |
50 |
=================================================================== |
51 |
Enable -Wformat and -Wformat-security by default. |
52 |
|
53 |
--- a/gcc/c-family/c.opt 2016-03-23 18:51:56.000000000 +0100 |
54 |
+++ b/gcc/c-family/c.opt 2016-04-28 23:45:54.063351272 +0200 |
55 |
@@ -459,7 +459,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonlit |
56 |
Warn about format strings that are not literals. |
57 |
|
58 |
Wformat-security |
59 |
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) |
60 |
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) |
61 |
Warn about possible security problems with format functions. |
62 |
|
63 |
Wformat-signedness |
64 |
@@ -475,7 +475,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_l |
65 |
Warn about zero-length formats. |
66 |
|
67 |
Wformat= |
68 |
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) |
69 |
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) |
70 |
Warn about printf/scanf/strftime/strfmon format string anomalies. |
71 |
|
72 |
Wignored-qualifiers |
73 |
|
74 |
|
75 |
|
76 |
1.1 src/patchsets/gcc/7.3.0/12_all_default-warn-trampolines.patch |
77 |
|
78 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/12_all_default-warn-trampolines.patch?rev=1.1&view=markup |
79 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/12_all_default-warn-trampolines.patch?rev=1.1&content-type=text/plain |
80 |
|
81 |
Index: 12_all_default-warn-trampolines.patch |
82 |
=================================================================== |
83 |
Enable -Wtrampolines by default. |
84 |
|
85 |
--- a/gcc/common.opt |
86 |
+++ b/gcc/common.opt |
87 |
@@ -712,7 +712,7 @@ Common Var(warn_system_headers) Warning |
88 |
Do not suppress warnings from system headers. |
89 |
|
90 |
Wtrampolines |
91 |
-Common Var(warn_trampolines) Warning |
92 |
+Common Var(warn_trampolines) Init(1) Warning |
93 |
Warn whenever a trampoline is generated. |
94 |
|
95 |
Wtype-limits |
96 |
|
97 |
|
98 |
|
99 |
1.1 src/patchsets/gcc/7.3.0/13_all_default-ssp-fix.patch |
100 |
|
101 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/13_all_default-ssp-fix.patch?rev=1.1&view=markup |
102 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/13_all_default-ssp-fix.patch?rev=1.1&content-type=text/plain |
103 |
|
104 |
Index: 13_all_default-ssp-fix.patch |
105 |
=================================================================== |
106 |
We disable ssp on -nostdlib and -ffreestanding as we did on older gcc |
107 |
and change the buffer size. |
108 |
|
109 |
--- a/gcc/c-family/c-opts.c |
110 |
+++ b/gcc/c-family/c-opts.c |
111 |
@@ -450,7 +450,14 @@ |
112 |
|
113 |
case OPT_ffreestanding: |
114 |
value = !value; |
115 |
+ if (global_options.x_flag_stack_protect == -1) |
116 |
+ global_options.x_flag_stack_protect = 0; |
117 |
/* Fall through. */ |
118 |
+ |
119 |
+ case OPT_nostdlib: |
120 |
+ if (global_options.x_flag_stack_protect == -1) |
121 |
+ global_options.x_flag_stack_protect = 0; |
122 |
+ |
123 |
case OPT_fhosted: |
124 |
flag_hosted = value; |
125 |
flag_no_builtin = !value; |
126 |
--- a/gcc/c-family/c.opt |
127 |
+++ b/gcc/c-family/c.opt |
128 |
@@ -1647,6 +1647,10 @@ nostdinc++ |
129 |
C++ ObjC++ |
130 |
Do not search standard system include directories for C++. |
131 |
|
132 |
+nostdlib |
133 |
+C ObjC C++ ObjC++ |
134 |
+; Documented in common.opt |
135 |
+ |
136 |
o |
137 |
C ObjC C++ ObjC++ Joined Separate |
138 |
; Documented in common.opt |
139 |
--- a/gcc/gcc.c |
140 |
+++ b/gcc/gcc.c |
141 |
@@ -1145,6 +1145,7 @@ |
142 |
%{-help=*:--help=%*}\ |
143 |
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\ |
144 |
%{fsyntax-only:-o %j} %{-param*}\ |
145 |
+ %{nostdlib:-nostdlib}\ |
146 |
%{coverage:-fprofile-arcs -ftest-coverage}\ |
147 |
%{fprofile-arcs|fprofile-generate*|coverage:\ |
148 |
%{!fprofile-update=single:\ |
149 |
--- a/gcc/params.def |
150 |
+++ b/gcc/params.def |
151 |
@@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT, |
152 |
DEFPARAM (PARAM_SSP_BUFFER_SIZE, |
153 |
"ssp-buffer-size", |
154 |
"The lower bound for a buffer to be considered for stack smashing protection.", |
155 |
- 8, 1, 0) |
156 |
+ 4, 1, 0) |
157 |
|
158 |
DEFPARAM (PARAM_MIN_SIZE_FOR_STACK_SHARING, |
159 |
"min-size-for-stack-sharing", |
160 |
|
161 |
|
162 |
|
163 |
1.1 src/patchsets/gcc/7.3.0/25_all_alpha-mieee-default.patch |
164 |
|
165 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/25_all_alpha-mieee-default.patch?rev=1.1&view=markup |
166 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/25_all_alpha-mieee-default.patch?rev=1.1&content-type=text/plain |
167 |
|
168 |
Index: 25_all_alpha-mieee-default.patch |
169 |
=================================================================== |
170 |
Set the default behavior on alpha to use -mieee since the large majority of |
171 |
time we want this (bad/weird things can happen with packages built without |
172 |
it). |
173 |
|
174 |
To satisfy those people who may not want -mieee forced on them all the time, |
175 |
we also provide -mno-ieee. |
176 |
|
177 |
Patch by Mike Frysinger <vapier@g.o> |
178 |
|
179 |
Note: upstream doesn't want to take this due to long standing behavior, and |
180 |
because it'd make behavior across OS's inconsistent: |
181 |
https://gcc.gnu.org/ml/gcc-patches/2003-07/msg02144.html |
182 |
|
183 |
This makes sense for upstream, but Gentoo is more concerned about packages |
184 |
behaving the same across arches under Linux. |
185 |
|
186 |
--- a/gcc/config/alpha/alpha.h |
187 |
+++ b/gcc/config/alpha/alpha.h |
188 |
@@ -96,6 +96,8 @@ along with GCC; see the file COPYING3. If not see |
189 |
while (0) |
190 |
#endif |
191 |
|
192 |
+#define CPP_SPEC "%{!no-ieee:-mieee}" |
193 |
+ |
194 |
/* Run-time compilation parameters selecting different hardware subsets. */ |
195 |
|
196 |
/* Which processor to schedule for. The cpu attribute defines a list that |
197 |
--- a/gcc/config/alpha/alpha.opt |
198 |
+++ b/gcc/config/alpha/alpha.opt |
199 |
@@ -35,7 +35,7 @@ |
200 |
Request IEEE-conformant math library routines (OSF/1). |
201 |
|
202 |
mieee |
203 |
-Target Report RejectNegative Mask(IEEE) |
204 |
+Target Report Mask(IEEE) |
205 |
Emit IEEE-conformant code, without inexact exceptions. |
206 |
|
207 |
mieee-with-inexact |
208 |
|
209 |
|
210 |
|
211 |
|
212 |
1.1 src/patchsets/gcc/7.3.0/34_all_ia64_note.GNU-stack.patch |
213 |
|
214 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/34_all_ia64_note.GNU-stack.patch?rev=1.1&view=markup |
215 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/34_all_ia64_note.GNU-stack.patch?rev=1.1&content-type=text/plain |
216 |
|
217 |
Index: 34_all_ia64_note.GNU-stack.patch |
218 |
=================================================================== |
219 |
http://gcc.gnu.org/PR21098 |
220 |
|
221 |
|
222 |
2004-09-20 Jakub Jelinek <jakub@××××××.com> |
223 |
|
224 |
* config/rs6000/ppc-asm.h: Add .note.GNU-stack section also |
225 |
on ppc64-linux. |
226 |
|
227 |
* config/ia64/lib1funcs.asm: Add .note.GNU-stack section on |
228 |
ia64-linux. |
229 |
* config/ia64/crtbegin.asm: Likewise. |
230 |
* config/ia64/crtend.asm: Likewise. |
231 |
* config/ia64/crti.asm: Likewise. |
232 |
* config/ia64/crtn.asm: Likewise. |
233 |
|
234 |
2004-05-14 Jakub Jelinek <jakub@××××××.com> |
235 |
|
236 |
* config/ia64/linux.h (TARGET_ASM_FILE_END): Define. |
237 |
|
238 |
|
239 |
--- a/gcc/config/ia64/linux.h |
240 |
+++ b/gcc/config/ia64/linux.h |
241 |
@@ -24,6 +24,8 @@ a copy of the GCC Runtime Library Exception along with this program; |
242 |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
243 |
<http://www.gnu.org/licenses/>. */ |
244 |
|
245 |
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack |
246 |
+ |
247 |
/* This is for -profile to use -lc_p instead of -lc. */ |
248 |
#undef CC1_SPEC |
249 |
#define CC1_SPEC "%{profile:-p} %{G*}" |
250 |
--- a/gcc/config/rs6000/ppc-asm.h |
251 |
+++ b/gcc/config/rs6000/ppc-asm.h |
252 |
@@ -352,7 +352,7 @@ GLUE(.L,name): \ |
253 |
#endif |
254 |
#endif |
255 |
|
256 |
-#if defined __linux__ && !defined __powerpc64__ |
257 |
+#if defined __linux__ |
258 |
.section .note.GNU-stack |
259 |
.previous |
260 |
#endif |
261 |
--- a/libgcc/config/ia64/crtbegin.S |
262 |
+++ b/libgcc/config/ia64/crtbegin.S |
263 |
@@ -252,3 +252,7 @@ __do_jv_register_classes: |
264 |
.weak __cxa_finalize |
265 |
#endif |
266 |
.weak _Jv_RegisterClasses |
267 |
+ |
268 |
+#ifdef __linux__ |
269 |
+.section .note.GNU-stack; .previous |
270 |
+#endif |
271 |
--- a/libgcc/config/ia64/crtend.S |
272 |
+++ b/libgcc/config/ia64/crtend.S |
273 |
@@ -119,3 +119,6 @@ __do_global_ctors_aux: |
274 |
|
275 |
br.ret.sptk.many rp |
276 |
.endp __do_global_ctors_aux |
277 |
+#ifdef __linux__ |
278 |
+.section .note.GNU-stack; .previous |
279 |
+#endif |
280 |
--- a/libgcc/config/ia64/crti.S |
281 |
+++ b/libgcc/config/ia64/crti.S |
282 |
@@ -49,5 +49,8 @@ _fini: |
283 |
.save rp, r33 |
284 |
mov r33 = b0 |
285 |
.body |
286 |
+#ifdef __linux__ |
287 |
+.section .note.GNU-stack; .previous |
288 |
+#endif |
289 |
|
290 |
# end of crti.S |
291 |
--- a/libgcc/config/ia64/crtn.S |
292 |
+++ b/libgcc/config/ia64/crtn.S |
293 |
@@ -39,5 +39,8 @@ |
294 |
.restore sp |
295 |
mov r12 = r35 |
296 |
br.ret.sptk.many b0 |
297 |
+#ifdef __linux__ |
298 |
+.section .note.GNU-stack; .previous |
299 |
+#endif |
300 |
|
301 |
# end of crtn.S |
302 |
--- a/libgcc/config/ia64/lib1funcs.S |
303 |
+++ b/libgcc/config/ia64/lib1funcs.S |
304 |
@@ -793,3 +793,6 @@ __floattitf: |
305 |
.endp __floattitf |
306 |
#endif |
307 |
#endif |
308 |
+#ifdef __linux__ |
309 |
+.section .note.GNU-stack; .previous |
310 |
+#endif |
311 |
|
312 |
|
313 |
|
314 |
1.1 src/patchsets/gcc/7.3.0/50_all_libiberty-asprintf.patch |
315 |
|
316 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/50_all_libiberty-asprintf.patch?rev=1.1&view=markup |
317 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/50_all_libiberty-asprintf.patch?rev=1.1&content-type=text/plain |
318 |
|
319 |
Index: 50_all_libiberty-asprintf.patch |
320 |
=================================================================== |
321 |
2008-07-25 Magnus Granberg <zorry@×××.nu> |
322 |
|
323 |
* include/libiberty.h (asprintf): Don't declare if defined as a macro |
324 |
|
325 |
--- a/include/libiberty.h |
326 |
+++ b/include/libiberty.h |
327 |
@@ -609,8 +609,11 @@ extern int pwait (int, int *, int); |
328 |
/* Like sprintf but provides a pointer to malloc'd storage, which must |
329 |
be freed by the caller. */ |
330 |
|
331 |
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */ |
332 |
+#ifndef asprintf |
333 |
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; |
334 |
#endif |
335 |
+#endif |
336 |
|
337 |
#if !HAVE_DECL_VASPRINTF |
338 |
/* Like vsprintf but provides a pointer to malloc'd storage, which |
339 |
|
340 |
|
341 |
|
342 |
1.1 src/patchsets/gcc/7.3.0/51_all_libiberty-pic.patch |
343 |
|
344 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/51_all_libiberty-pic.patch?rev=1.1&view=markup |
345 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/51_all_libiberty-pic.patch?rev=1.1&content-type=text/plain |
346 |
|
347 |
Index: 51_all_libiberty-pic.patch |
348 |
=================================================================== |
349 |
--- a/libiberty/Makefile.in |
350 |
+++ b/libiberty/Makefile.in |
351 |
@@ -246,6 +246,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) |
352 |
$(AR) $(AR_FLAGS) $(TARGETLIB) \ |
353 |
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ |
354 |
$(RANLIB) $(TARGETLIB); \ |
355 |
+ cp $(TARGETLIB) ../ ; \ |
356 |
cd ..; \ |
357 |
else true; fi |
358 |
|
359 |
|
360 |
|
361 |
|
362 |
1.1 src/patchsets/gcc/7.3.0/54_all_nopie-all-flags.patch |
363 |
|
364 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/54_all_nopie-all-flags.patch?rev=1.1&view=markup |
365 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/54_all_nopie-all-flags.patch?rev=1.1&content-type=text/plain |
366 |
|
367 |
Index: 54_all_nopie-all-flags.patch |
368 |
=================================================================== |
369 |
We need to pass NO_PIE_CFLAGS to ALL_* so gcc don't fail when |
370 |
we compile it with older gcc and pie. |
371 |
|
372 |
--- a/gcc/Makefile.in 2015-06-25 19:18:12.000000000 +0200 |
373 |
+++ b/gcc/Makefile.in 2016-04-22 00:12:54.029178860 +0200 |
374 |
@@ -991,10 +991,10 @@ ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) |
375 |
ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS) |
376 |
|
377 |
# This is the variable to use when using $(COMPILER). |
378 |
-ALL_COMPILERFLAGS = $(ALL_CXXFLAGS) |
379 |
+ALL_COMPILERFLAGS = $(NO_PIE_CFLAGS) $(ALL_CXXFLAGS) |
380 |
|
381 |
# This is the variable to use when using $(LINKER). |
382 |
-ALL_LINKERFLAGS = $(ALL_CXXFLAGS) |
383 |
+ALL_LINKERFLAGS = $(NO_PIE_CFLAGS) $(ALL_CXXFLAGS) |
384 |
|
385 |
# Build and host support libraries. |
386 |
|
387 |
|
388 |
|
389 |
|
390 |
1.1 src/patchsets/gcc/7.3.0/55_all_extra-options.patch |
391 |
|
392 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/55_all_extra-options.patch?rev=1.1&view=markup |
393 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/55_all_extra-options.patch?rev=1.1&content-type=text/plain |
394 |
|
395 |
Index: 55_all_extra-options.patch |
396 |
=================================================================== |
397 |
On Hardened we add or remove some options like -fstack-check, |
398 |
-fstack-protector-all, -fstrict_overflow and -z now |
399 |
|
400 |
--- a/libgcc/Makefile.in 2011-11-22 04:01:02.000000000 +0100 |
401 |
+++ b/libgcc/Makefile.in 2011-12-25 15:18:22.449610631 +0100 |
402 |
@@ -225,7 +225,7 @@ endif |
403 |
LIBGCC2_DEBUG_CFLAGS = -g |
404 |
LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ |
405 |
$(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \ |
406 |
- -fbuilding-libgcc -fno-stack-protector \ |
407 |
+ -fbuilding-libgcc -fno-stack-protector -fstack-check=no \ |
408 |
$(INHIBIT_LIBC_CFLAGS) |
409 |
|
410 |
# Additional options to use when compiling libgcc2.a. |
411 |
@@ -279,7 +290,7 @@ INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CF |
412 |
-finhibit-size-directive -fno-inline -fno-exceptions \ |
413 |
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \ |
414 |
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \ |
415 |
- $(INHIBIT_LIBC_CFLAGS) |
416 |
+ -fstack-check=no $(INHIBIT_LIBC_CFLAGS) |
417 |
|
418 |
# Extra flags to use when compiling crt{begin,end}.o. |
419 |
CRTSTUFF_T_CFLAGS = |
420 |
--- a/gcc/defaults.h 2016-01-04 15:30:50.000000000 +0100 |
421 |
+++ b/gcc/defaults.h 2016-05-02 22:23:43.815707806 +0200 |
422 |
@@ -1398,8 +1398,12 @@ see the files COPYING3 and COPYING.RUNTI |
423 |
/* Default value for flag_stack_protect when flag_stack_protect is initialized to -1: |
424 |
--enable-default-ssp: Default flag_stack_protect to -fstack-protector-strong. |
425 |
--disable-default-ssp: Default flag_stack_protect to 0. |
426 |
+ Hardened: Default flag_stack_protect to -fstack-protector-all. |
427 |
*/ |
428 |
#ifdef ENABLE_DEFAULT_SSP |
429 |
+# ifdef EXTRA_OPTIONS |
430 |
+# define DEFAULT_FLAG_SSP 2 |
431 |
+# endif |
432 |
# ifndef DEFAULT_FLAG_SSP |
433 |
# define DEFAULT_FLAG_SSP 3 |
434 |
# endif |
435 |
--- a/gcc/gcc.c 2016-02-19 23:18:38.000000000 +0100 |
436 |
+++ b/gcc/gcc.c 2016-05-02 22:56:10.185721270 +0200 |
437 |
@@ -868,6 +868,13 @@ proper position among the other output f |
438 |
#endif |
439 |
#endif |
440 |
|
441 |
+#define STACK_CHECK_SPEC "%{fstack-check|fstack-check=*:;: -fstack-check} " |
442 |
+#ifdef EXTRA_OPTIONS |
443 |
+#define LINK_NOW_SPEC "%{!nonow:-z now} " |
444 |
+#else |
445 |
+#define LINK_NOW_SPEC "" |
446 |
+#endif |
447 |
+ |
448 |
#ifdef ENABLE_DEFAULT_PIE |
449 |
#define NO_PIE_SPEC "no-pie|static" |
450 |
#define PIE_SPEC NO_PIE_SPEC "|r|shared:;" |
451 |
@@ -1013,7 +1020,7 @@ proper position among the other output f |
452 |
%(linker) " \ |
453 |
LINK_PLUGIN_SPEC \ |
454 |
"%{flto|flto=*:%<fcompare-debug*} \ |
455 |
- %{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \ |
456 |
+ %{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC LINK_NOW_SPEC \ |
457 |
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ |
458 |
"%X %{o*} %{e*} %{N} %{n} %{r}\ |
459 |
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \ |
460 |
@@ -1052,7 +1059,11 @@ proper position among the other output f |
461 |
|
462 |
static const char *asm_debug = ASM_DEBUG_SPEC; |
463 |
static const char *cpp_spec = CPP_SPEC; |
464 |
+#ifdef EXTRA_OPTIONS |
465 |
+static const char *cc1_spec = CC1_SPEC STACK_CHECK_SPEC; |
466 |
+#else |
467 |
static const char *cc1_spec = CC1_SPEC; |
468 |
+#endif |
469 |
static const char *cc1plus_spec = CC1PLUS_SPEC; |
470 |
static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC; |
471 |
static const char *link_ssp_spec = LINK_SSP_SPEC; |
472 |
--- a/gcc/opts.c 2016-03-17 16:11:35.000000000 +0100 |
473 |
+++ b/gcc/opts.c 2016-04-27 16:48:59.952580580 +0200 |
474 |
@@ -495,7 +495,9 @@ static const struct default_options defa |
475 |
{ OPT_LEVELS_2_PLUS, OPT_fschedule_insns2, NULL, 1 }, |
476 |
#endif |
477 |
{ OPT_LEVELS_2_PLUS, OPT_fstrict_aliasing, NULL, 1 }, |
478 |
+#ifndef EXTRA_OPTIONS |
479 |
{ OPT_LEVELS_2_PLUS, OPT_fstrict_overflow, NULL, 1 }, |
480 |
+#endif |
481 |
{ OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_freorder_blocks_algorithm_, NULL, |
482 |
REORDER_BLOCKS_ALGORITHM_STC }, |
483 |
{ OPT_LEVELS_2_PLUS, OPT_freorder_functions, NULL, 1 }, |
484 |
|
485 |
|
486 |
|
487 |
1.1 src/patchsets/gcc/7.3.0/90_all_pr55930-dependency-tracking.patch |
488 |
|
489 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/90_all_pr55930-dependency-tracking.patch?rev=1.1&view=markup |
490 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/90_all_pr55930-dependency-tracking.patch?rev=1.1&content-type=text/plain |
491 |
|
492 |
Index: 90_all_pr55930-dependency-tracking.patch |
493 |
=================================================================== |
494 |
libatomic build failure if configured with --disable-dependency-tracking |
495 |
load_n.c:115:1: fatal error: opening dependency file .deps/load_1_.lo.Ppo: No such file or directory |
496 |
|
497 |
https://bugs.gentoo.org/463463 |
498 |
http://gcc.gnu.org/PR55930 |
499 |
|
500 |
--- a/libatomic/Makefile.in |
501 |
+++ b/libatomic/Makefile.in |
502 |
@@ -298,7 +298,8 @@ PAT_N = $(word 2,$(PAT_SPLIT)) |
503 |
PAT_S = $(word 3,$(PAT_SPLIT)) |
504 |
IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) |
505 |
IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) |
506 |
-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo |
507 |
+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo |
508 |
+@AMDEP_FALSE@M_DEPS = |
509 |
M_SIZE = -DN=$(PAT_N) |
510 |
M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) |
511 |
M_FILE = $(PAT_BASE)_n.c |
512 |
|
513 |
|
514 |
|
515 |
1.1 src/patchsets/gcc/7.3.0/README.history |
516 |
|
517 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/README.history?rev=1.1&view=markup |
518 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/7.3.0/README.history?rev=1.1&content-type=text/plain |
519 |
|
520 |
Index: README.history |
521 |
=================================================================== |
522 |
1.0 25 Jan 2018 |
523 |
+ 10_all_default-fortify-source.patch |
524 |
+ 11_all_default-warn-format-security.patch |
525 |
+ 12_all_default-warn-trampolines.patch |
526 |
+ 13_all_default-ssp-fix.patch |
527 |
+ 25_all_alpha-mieee-default.patch |
528 |
+ 34_all_ia64_note.GNU-stack.patch |
529 |
+ 50_all_libiberty-asprintf.patch |
530 |
+ 51_all_libiberty-pic.patch |
531 |
+ 54_all_nopie-all-flags.patch |
532 |
+ 55_all_extra-options.patch |
533 |
+ 90_all_pr55930-dependency-tracking.patch |