1 |
commit: e5d148194b4ab01270251f6730c5ac078aed8146 |
2 |
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Nov 14 22:58:33 2019 +0000 |
4 |
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Nov 14 22:58:33 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=e5d14819 |
7 |
|
8 |
7.5.0: patchset 1 based on 7.4.0 patchset |
9 |
|
10 |
The difference from 7.4.0 is a single dropped patch: |
11 |
- 21_all_kr-decl-PR88214.patch: backported upstream |
12 |
|
13 |
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org> |
14 |
|
15 |
7.5.0/gentoo/01_all_default-fortify-source.patch | 22 ++++++ |
16 |
.../02_all_default-warn-format-security.patch | 22 ++++++ |
17 |
7.5.0/gentoo/03_all_default-warn-trampolines.patch | 13 +++ |
18 |
7.5.0/gentoo/04_all_default-ssp-fix.patch | 32 ++++++++ |
19 |
7.5.0/gentoo/05_all_alpha-mieee-default.patch | 39 +++++++++ |
20 |
7.5.0/gentoo/06_all_ia64_note.GNU-stack.patch | 92 ++++++++++++++++++++++ |
21 |
7.5.0/gentoo/07_all_libiberty-asprintf.patch | 18 +++++ |
22 |
7.5.0/gentoo/08_all_libiberty-pic.patch | 10 +++ |
23 |
7.5.0/gentoo/09_all_nopie-all-flags.patch | 18 +++++ |
24 |
7.5.0/gentoo/10_all_extra-options.patch | 87 ++++++++++++++++++++ |
25 |
.../11_all_pr55930-dependency-tracking.patch | 18 +++++ |
26 |
7.5.0/gentoo/12_all_sh-drop-sysroot-suffix.patch | 32 ++++++++ |
27 |
7.5.0/gentoo/13_all_respect-build-cxxflags.patch | 39 +++++++++ |
28 |
7.5.0/gentoo/14_all_libgfortran-Werror.patch | 20 +++++ |
29 |
7.5.0/gentoo/15_all_libgomp-Werror.patch | 20 +++++ |
30 |
7.5.0/gentoo/16_all_libitm-Werror.patch | 19 +++++ |
31 |
7.5.0/gentoo/17_all_libatomic-Werror.patch | 19 +++++ |
32 |
7.5.0/gentoo/18_all_libbacktrace-Werror.patch | 17 ++++ |
33 |
.../19_all_libsanitizer-libbacktrace-Werror.patch | 17 ++++ |
34 |
7.5.0/gentoo/20_all_libstdcxx-no-vtv.patch | 61 ++++++++++++++ |
35 |
7.5.0/gentoo/21_all_lto-ctor-dtor-target.patch | 64 +++++++++++++++ |
36 |
7.5.0/gentoo/README.history | 22 ++++++ |
37 |
22 files changed, 701 insertions(+) |
38 |
|
39 |
diff --git a/7.5.0/gentoo/01_all_default-fortify-source.patch b/7.5.0/gentoo/01_all_default-fortify-source.patch |
40 |
new file mode 100644 |
41 |
index 0000000..d307474 |
42 |
--- /dev/null |
43 |
+++ b/7.5.0/gentoo/01_all_default-fortify-source.patch |
44 |
@@ -0,0 +1,22 @@ |
45 |
+Taken Debian's patch and removed docs matches: |
46 |
+ https://salsa.debian.org/toolchain-team/gcc.git |
47 |
+Also see https://bugs.gentoo.org/621036 where |
48 |
+initially Gentoo used too complicated macro. |
49 |
+ |
50 |
+# DP: Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC, ObjC++, |
51 |
+# DP: if the optimization level is > 0 |
52 |
+--- a/gcc/c-family/c-cppbuiltin.c |
53 |
++++ b/gcc/c-family/c-cppbuiltin.c |
54 |
+@@ -951,6 +951,12 @@ c_cpp_builtins (cpp_reader *pfile) |
55 |
+ builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); |
56 |
+ builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0); |
57 |
+ |
58 |
++#if !defined(ACCEL_COMPILER) |
59 |
++ /* Fortify Source enabled by default for optimization levels > 0 */ |
60 |
++ if (optimize) |
61 |
++ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2); |
62 |
++#endif |
63 |
++ |
64 |
+ /* Misc. */ |
65 |
+ if (flag_gnu89_inline) |
66 |
+ cpp_define (pfile, "__GNUC_GNU_INLINE__"); |
67 |
|
68 |
diff --git a/7.5.0/gentoo/02_all_default-warn-format-security.patch b/7.5.0/gentoo/02_all_default-warn-format-security.patch |
69 |
new file mode 100644 |
70 |
index 0000000..8994654 |
71 |
--- /dev/null |
72 |
+++ b/7.5.0/gentoo/02_all_default-warn-format-security.patch |
73 |
@@ -0,0 +1,22 @@ |
74 |
+Enable -Wformat and -Wformat-security by default. |
75 |
+ |
76 |
+--- a/gcc/c-family/c.opt 2016-03-23 18:51:56.000000000 +0100 |
77 |
++++ b/gcc/c-family/c.opt 2016-04-28 23:45:54.063351272 +0200 |
78 |
+@@ -459,7 +459,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonlit |
79 |
+ Warn about format strings that are not literals. |
80 |
+ |
81 |
+ Wformat-security |
82 |
+-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) |
83 |
++C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) |
84 |
+ Warn about possible security problems with format functions. |
85 |
+ |
86 |
+ Wformat-signedness |
87 |
+@@ -475,7 +475,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_l |
88 |
+ Warn about zero-length formats. |
89 |
+ |
90 |
+ Wformat= |
91 |
+-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) |
92 |
++C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) |
93 |
+ Warn about printf/scanf/strftime/strfmon format string anomalies. |
94 |
+ |
95 |
+ Wignored-qualifiers |
96 |
|
97 |
diff --git a/7.5.0/gentoo/03_all_default-warn-trampolines.patch b/7.5.0/gentoo/03_all_default-warn-trampolines.patch |
98 |
new file mode 100644 |
99 |
index 0000000..7a644cb |
100 |
--- /dev/null |
101 |
+++ b/7.5.0/gentoo/03_all_default-warn-trampolines.patch |
102 |
@@ -0,0 +1,13 @@ |
103 |
+Enable -Wtrampolines by default. |
104 |
+ |
105 |
+--- a/gcc/common.opt |
106 |
++++ b/gcc/common.opt |
107 |
+@@ -712,7 +712,7 @@ Common Var(warn_system_headers) Warning |
108 |
+ Do not suppress warnings from system headers. |
109 |
+ |
110 |
+ Wtrampolines |
111 |
+-Common Var(warn_trampolines) Warning |
112 |
++Common Var(warn_trampolines) Init(1) Warning |
113 |
+ Warn whenever a trampoline is generated. |
114 |
+ |
115 |
+ Wtype-limits |
116 |
|
117 |
diff --git a/7.5.0/gentoo/04_all_default-ssp-fix.patch b/7.5.0/gentoo/04_all_default-ssp-fix.patch |
118 |
new file mode 100644 |
119 |
index 0000000..2cd1b8d |
120 |
--- /dev/null |
121 |
+++ b/7.5.0/gentoo/04_all_default-ssp-fix.patch |
122 |
@@ -0,0 +1,32 @@ |
123 |
+Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding |
124 |
+Change the buffer size. |
125 |
+ |
126 |
+--- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200 |
127 |
++++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100 |
128 |
+@@ -857,6 +857,12 @@ proper position among the other output f |
129 |
+ #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" |
130 |
+ #endif |
131 |
+ |
132 |
++#ifdef ENABLE_DEFAULT_SSP |
133 |
++#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} " |
134 |
++#else |
135 |
++#define NO_SSP_SPEC "" |
136 |
++#endif |
137 |
++ |
138 |
+ #ifndef LINK_SSP_SPEC |
139 |
+ #ifdef TARGET_LIBC_PROVIDES_SSP |
140 |
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ |
141 |
+@@ -1150,1 +1150,1 @@ static const char *cc1_options = |
142 |
+- %{fsyntax-only:-o %j} %{-param*}\ |
143 |
++ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\ |
144 |
+--- a/gcc/params.def 2016-03-30 09:47:40.000000000 +0200 |
145 |
++++ b/gcc/params.def 2016-09-19 12:56:58.443179039 +0200 |
146 |
+@@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT, |
147 |
+ DEFPARAM (PARAM_SSP_BUFFER_SIZE, |
148 |
+ "ssp-buffer-size", |
149 |
+ "The lower bound for a buffer to be considered for stack smashing protection.", |
150 |
+- 8, 1, 0) |
151 |
++ 4, 1, 0) |
152 |
+ |
153 |
+ DEFPARAM (PARAM_MIN_SIZE_FOR_STACK_SHARING, |
154 |
+ "min-size-for-stack-sharing", |
155 |
|
156 |
diff --git a/7.5.0/gentoo/05_all_alpha-mieee-default.patch b/7.5.0/gentoo/05_all_alpha-mieee-default.patch |
157 |
new file mode 100644 |
158 |
index 0000000..b266d77 |
159 |
--- /dev/null |
160 |
+++ b/7.5.0/gentoo/05_all_alpha-mieee-default.patch |
161 |
@@ -0,0 +1,39 @@ |
162 |
+Set the default behavior on alpha to use -mieee since the large majority of |
163 |
+time we want this (bad/weird things can happen with packages built without |
164 |
+it). |
165 |
+ |
166 |
+To satisfy those people who may not want -mieee forced on them all the time, |
167 |
+we also provide -mno-ieee. |
168 |
+ |
169 |
+Patch by Mike Frysinger <vapier@g.o> |
170 |
+ |
171 |
+Note: upstream doesn't want to take this due to long standing behavior, and |
172 |
+because it'd make behavior across OS's inconsistent: |
173 |
+ https://gcc.gnu.org/ml/gcc-patches/2003-07/msg02144.html |
174 |
+ |
175 |
+This makes sense for upstream, but Gentoo is more concerned about packages |
176 |
+behaving the same across arches under Linux. |
177 |
+ |
178 |
+--- a/gcc/config/alpha/alpha.h |
179 |
++++ b/gcc/config/alpha/alpha.h |
180 |
+@@ -96,6 +96,8 @@ along with GCC; see the file COPYING3. If not see |
181 |
+ while (0) |
182 |
+ #endif |
183 |
+ |
184 |
++#define CPP_SPEC "%{!no-ieee:-mieee}" |
185 |
++ |
186 |
+ /* Run-time compilation parameters selecting different hardware subsets. */ |
187 |
+ |
188 |
+ /* Which processor to schedule for. The cpu attribute defines a list that |
189 |
+--- a/gcc/config/alpha/alpha.opt |
190 |
++++ b/gcc/config/alpha/alpha.opt |
191 |
+@@ -35,7 +35,7 @@ |
192 |
+ Request IEEE-conformant math library routines (OSF/1). |
193 |
+ |
194 |
+ mieee |
195 |
+-Target Report RejectNegative Mask(IEEE) |
196 |
++Target Report Mask(IEEE) |
197 |
+ Emit IEEE-conformant code, without inexact exceptions. |
198 |
+ |
199 |
+ mieee-with-inexact |
200 |
+ |
201 |
|
202 |
diff --git a/7.5.0/gentoo/06_all_ia64_note.GNU-stack.patch b/7.5.0/gentoo/06_all_ia64_note.GNU-stack.patch |
203 |
new file mode 100644 |
204 |
index 0000000..66a787e |
205 |
--- /dev/null |
206 |
+++ b/7.5.0/gentoo/06_all_ia64_note.GNU-stack.patch |
207 |
@@ -0,0 +1,92 @@ |
208 |
+http://gcc.gnu.org/PR21098 |
209 |
+ |
210 |
+ |
211 |
+2004-09-20 Jakub Jelinek <jakub@××××××.com> |
212 |
+ |
213 |
+ * config/rs6000/ppc-asm.h: Add .note.GNU-stack section also |
214 |
+ on ppc64-linux. |
215 |
+ |
216 |
+ * config/ia64/lib1funcs.asm: Add .note.GNU-stack section on |
217 |
+ ia64-linux. |
218 |
+ * config/ia64/crtbegin.asm: Likewise. |
219 |
+ * config/ia64/crtend.asm: Likewise. |
220 |
+ * config/ia64/crti.asm: Likewise. |
221 |
+ * config/ia64/crtn.asm: Likewise. |
222 |
+ |
223 |
+2004-05-14 Jakub Jelinek <jakub@××××××.com> |
224 |
+ |
225 |
+ * config/ia64/linux.h (TARGET_ASM_FILE_END): Define. |
226 |
+ |
227 |
+ |
228 |
+--- a/gcc/config/ia64/linux.h |
229 |
++++ b/gcc/config/ia64/linux.h |
230 |
+@@ -24,6 +24,8 @@ a copy of the GCC Runtime Library Exception along with this program; |
231 |
+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
232 |
+ <http://www.gnu.org/licenses/>. */ |
233 |
+ |
234 |
++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack |
235 |
++ |
236 |
+ /* This is for -profile to use -lc_p instead of -lc. */ |
237 |
+ #undef CC1_SPEC |
238 |
+ #define CC1_SPEC "%{profile:-p} %{G*}" |
239 |
+--- a/gcc/config/rs6000/ppc-asm.h |
240 |
++++ b/gcc/config/rs6000/ppc-asm.h |
241 |
+@@ -352,7 +352,7 @@ GLUE(.L,name): \ |
242 |
+ #endif |
243 |
+ #endif |
244 |
+ |
245 |
+-#if defined __linux__ && !defined __powerpc64__ |
246 |
++#if defined __linux__ |
247 |
+ .section .note.GNU-stack |
248 |
+ .previous |
249 |
+ #endif |
250 |
+--- a/libgcc/config/ia64/crtbegin.S |
251 |
++++ b/libgcc/config/ia64/crtbegin.S |
252 |
+@@ -252,3 +252,7 @@ __do_jv_register_classes: |
253 |
+ .weak __cxa_finalize |
254 |
+ #endif |
255 |
+ .weak _Jv_RegisterClasses |
256 |
++ |
257 |
++#ifdef __linux__ |
258 |
++.section .note.GNU-stack; .previous |
259 |
++#endif |
260 |
+--- a/libgcc/config/ia64/crtend.S |
261 |
++++ b/libgcc/config/ia64/crtend.S |
262 |
+@@ -119,3 +119,6 @@ __do_global_ctors_aux: |
263 |
+ |
264 |
+ br.ret.sptk.many rp |
265 |
+ .endp __do_global_ctors_aux |
266 |
++#ifdef __linux__ |
267 |
++.section .note.GNU-stack; .previous |
268 |
++#endif |
269 |
+--- a/libgcc/config/ia64/crti.S |
270 |
++++ b/libgcc/config/ia64/crti.S |
271 |
+@@ -49,5 +49,8 @@ _fini: |
272 |
+ .save rp, r33 |
273 |
+ mov r33 = b0 |
274 |
+ .body |
275 |
++#ifdef __linux__ |
276 |
++.section .note.GNU-stack; .previous |
277 |
++#endif |
278 |
+ |
279 |
+ # end of crti.S |
280 |
+--- a/libgcc/config/ia64/crtn.S |
281 |
++++ b/libgcc/config/ia64/crtn.S |
282 |
+@@ -39,5 +39,8 @@ |
283 |
+ .restore sp |
284 |
+ mov r12 = r35 |
285 |
+ br.ret.sptk.many b0 |
286 |
++#ifdef __linux__ |
287 |
++.section .note.GNU-stack; .previous |
288 |
++#endif |
289 |
+ |
290 |
+ # end of crtn.S |
291 |
+--- a/libgcc/config/ia64/lib1funcs.S |
292 |
++++ b/libgcc/config/ia64/lib1funcs.S |
293 |
+@@ -793,3 +793,6 @@ __floattitf: |
294 |
+ .endp __floattitf |
295 |
+ #endif |
296 |
+ #endif |
297 |
++#ifdef __linux__ |
298 |
++.section .note.GNU-stack; .previous |
299 |
++#endif |
300 |
|
301 |
diff --git a/7.5.0/gentoo/07_all_libiberty-asprintf.patch b/7.5.0/gentoo/07_all_libiberty-asprintf.patch |
302 |
new file mode 100644 |
303 |
index 0000000..bee0c4c |
304 |
--- /dev/null |
305 |
+++ b/7.5.0/gentoo/07_all_libiberty-asprintf.patch |
306 |
@@ -0,0 +1,18 @@ |
307 |
+2008-07-25 Magnus Granberg <zorry@×××.nu> |
308 |
+ |
309 |
+ * include/libiberty.h (asprintf): Don't declare if defined as a macro |
310 |
+ |
311 |
+--- a/include/libiberty.h |
312 |
++++ b/include/libiberty.h |
313 |
+@@ -609,8 +609,11 @@ extern int pwait (int, int *, int); |
314 |
+ /* Like sprintf but provides a pointer to malloc'd storage, which must |
315 |
+ be freed by the caller. */ |
316 |
+ |
317 |
++/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */ |
318 |
++#ifndef asprintf |
319 |
+ extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; |
320 |
+ #endif |
321 |
++#endif |
322 |
+ |
323 |
+ #if !HAVE_DECL_VASPRINTF |
324 |
+ /* Like vsprintf but provides a pointer to malloc'd storage, which |
325 |
|
326 |
diff --git a/7.5.0/gentoo/08_all_libiberty-pic.patch b/7.5.0/gentoo/08_all_libiberty-pic.patch |
327 |
new file mode 100644 |
328 |
index 0000000..b6160a7 |
329 |
--- /dev/null |
330 |
+++ b/7.5.0/gentoo/08_all_libiberty-pic.patch |
331 |
@@ -0,0 +1,10 @@ |
332 |
+--- a/libiberty/Makefile.in |
333 |
++++ b/libiberty/Makefile.in |
334 |
+@@ -246,6 +246,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) |
335 |
+ $(AR) $(AR_FLAGS) $(TARGETLIB) \ |
336 |
+ $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ |
337 |
+ $(RANLIB) $(TARGETLIB); \ |
338 |
++ cp $(TARGETLIB) ../ ; \ |
339 |
+ cd ..; \ |
340 |
+ else true; fi |
341 |
+ |
342 |
|
343 |
diff --git a/7.5.0/gentoo/09_all_nopie-all-flags.patch b/7.5.0/gentoo/09_all_nopie-all-flags.patch |
344 |
new file mode 100644 |
345 |
index 0000000..48536e6 |
346 |
--- /dev/null |
347 |
+++ b/7.5.0/gentoo/09_all_nopie-all-flags.patch |
348 |
@@ -0,0 +1,18 @@ |
349 |
+We need to pass NO_PIE_CFLAGS to ALL_* so gcc don't fail when |
350 |
+we compile it with older gcc and pie. |
351 |
+ |
352 |
+--- a/gcc/Makefile.in 2015-06-25 19:18:12.000000000 +0200 |
353 |
++++ b/gcc/Makefile.in 2016-04-22 00:12:54.029178860 +0200 |
354 |
+@@ -991,10 +991,10 @@ ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) |
355 |
+ ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS) |
356 |
+ |
357 |
+ # This is the variable to use when using $(COMPILER). |
358 |
+-ALL_COMPILERFLAGS = $(ALL_CXXFLAGS) |
359 |
++ALL_COMPILERFLAGS = $(NO_PIE_CFLAGS) $(ALL_CXXFLAGS) |
360 |
+ |
361 |
+ # This is the variable to use when using $(LINKER). |
362 |
+-ALL_LINKERFLAGS = $(ALL_CXXFLAGS) |
363 |
++ALL_LINKERFLAGS = $(NO_PIE_CFLAGS) $(ALL_CXXFLAGS) |
364 |
+ |
365 |
+ # Build and host support libraries. |
366 |
+ |
367 |
|
368 |
diff --git a/7.5.0/gentoo/10_all_extra-options.patch b/7.5.0/gentoo/10_all_extra-options.patch |
369 |
new file mode 100644 |
370 |
index 0000000..912fd02 |
371 |
--- /dev/null |
372 |
+++ b/7.5.0/gentoo/10_all_extra-options.patch |
373 |
@@ -0,0 +1,87 @@ |
374 |
+On Hardened we add or remove some options like -fstack-check, |
375 |
+-fstack-protector-all, -fstrict_overflow and -z now |
376 |
+ |
377 |
+--- a/libgcc/Makefile.in 2011-11-22 04:01:02.000000000 +0100 |
378 |
++++ b/libgcc/Makefile.in 2011-12-25 15:18:22.449610631 +0100 |
379 |
+@@ -225,7 +225,7 @@ endif |
380 |
+ LIBGCC2_DEBUG_CFLAGS = -g |
381 |
+ LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ |
382 |
+ $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \ |
383 |
+- -fbuilding-libgcc -fno-stack-protector \ |
384 |
++ -fbuilding-libgcc -fno-stack-protector -fstack-check=no \ |
385 |
+ $(INHIBIT_LIBC_CFLAGS) |
386 |
+ |
387 |
+ # Additional options to use when compiling libgcc2.a. |
388 |
+@@ -279,7 +290,7 @@ INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CF |
389 |
+ -finhibit-size-directive -fno-inline -fno-exceptions \ |
390 |
+ -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \ |
391 |
+ -fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \ |
392 |
+- $(INHIBIT_LIBC_CFLAGS) |
393 |
++ -fstack-check=no $(INHIBIT_LIBC_CFLAGS) |
394 |
+ |
395 |
+ # Extra flags to use when compiling crt{begin,end}.o. |
396 |
+ CRTSTUFF_T_CFLAGS = |
397 |
+--- a/gcc/defaults.h 2016-01-04 15:30:50.000000000 +0100 |
398 |
++++ b/gcc/defaults.h 2016-05-02 22:23:43.815707806 +0200 |
399 |
+@@ -1398,8 +1398,12 @@ see the files COPYING3 and COPYING.RUNTI |
400 |
+ /* Default value for flag_stack_protect when flag_stack_protect is initialized to -1: |
401 |
+ --enable-default-ssp: Default flag_stack_protect to -fstack-protector-strong. |
402 |
+ --disable-default-ssp: Default flag_stack_protect to 0. |
403 |
++ Hardened: Default flag_stack_protect to -fstack-protector-all. |
404 |
+ */ |
405 |
+ #ifdef ENABLE_DEFAULT_SSP |
406 |
++# ifdef EXTRA_OPTIONS |
407 |
++# define DEFAULT_FLAG_SSP 2 |
408 |
++# endif |
409 |
+ # ifndef DEFAULT_FLAG_SSP |
410 |
+ # define DEFAULT_FLAG_SSP 3 |
411 |
+ # endif |
412 |
+--- a/gcc/gcc.c 2016-02-19 23:18:38.000000000 +0100 |
413 |
++++ b/gcc/gcc.c 2016-05-02 22:56:10.185721270 +0200 |
414 |
+@@ -868,6 +868,13 @@ proper position among the other output f |
415 |
+ #endif |
416 |
+ #endif |
417 |
+ |
418 |
++#define STACK_CHECK_SPEC "" |
419 |
++#ifdef EXTRA_OPTIONS |
420 |
++#define LINK_NOW_SPEC "%{!nonow:-z now} " |
421 |
++#else |
422 |
++#define LINK_NOW_SPEC "" |
423 |
++#endif |
424 |
++ |
425 |
+ #ifdef ENABLE_DEFAULT_PIE |
426 |
+ #define NO_PIE_SPEC "no-pie|static" |
427 |
+ #define PIE_SPEC NO_PIE_SPEC "|r|shared:;" |
428 |
+@@ -1013,7 +1020,7 @@ proper position among the other output f |
429 |
+ %(linker) " \ |
430 |
+ LINK_PLUGIN_SPEC \ |
431 |
+ "%{flto|flto=*:%<fcompare-debug*} \ |
432 |
+- %{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \ |
433 |
++ %{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC LINK_NOW_SPEC \ |
434 |
+ "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ |
435 |
+ "%X %{o*} %{e*} %{N} %{n} %{r}\ |
436 |
+ %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \ |
437 |
+@@ -1052,7 +1059,11 @@ proper position among the other output f |
438 |
+ |
439 |
+ static const char *asm_debug = ASM_DEBUG_SPEC; |
440 |
+ static const char *cpp_spec = CPP_SPEC; |
441 |
++#ifdef EXTRA_OPTIONS |
442 |
++static const char *cc1_spec = CC1_SPEC STACK_CHECK_SPEC; |
443 |
++#else |
444 |
+ static const char *cc1_spec = CC1_SPEC; |
445 |
++#endif |
446 |
+ static const char *cc1plus_spec = CC1PLUS_SPEC; |
447 |
+ static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC; |
448 |
+ static const char *link_ssp_spec = LINK_SSP_SPEC; |
449 |
+--- a/gcc/opts.c 2016-03-17 16:11:35.000000000 +0100 |
450 |
++++ b/gcc/opts.c 2016-04-27 16:48:59.952580580 +0200 |
451 |
+@@ -495,7 +495,9 @@ static const struct default_options defa |
452 |
+ { OPT_LEVELS_2_PLUS, OPT_fschedule_insns2, NULL, 1 }, |
453 |
+ #endif |
454 |
+ { OPT_LEVELS_2_PLUS, OPT_fstrict_aliasing, NULL, 1 }, |
455 |
++#ifndef EXTRA_OPTIONS |
456 |
+ { OPT_LEVELS_2_PLUS, OPT_fstrict_overflow, NULL, 1 }, |
457 |
++#endif |
458 |
+ { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_freorder_blocks_algorithm_, NULL, |
459 |
+ REORDER_BLOCKS_ALGORITHM_STC }, |
460 |
+ { OPT_LEVELS_2_PLUS, OPT_freorder_functions, NULL, 1 }, |
461 |
|
462 |
diff --git a/7.5.0/gentoo/11_all_pr55930-dependency-tracking.patch b/7.5.0/gentoo/11_all_pr55930-dependency-tracking.patch |
463 |
new file mode 100644 |
464 |
index 0000000..a8743e0 |
465 |
--- /dev/null |
466 |
+++ b/7.5.0/gentoo/11_all_pr55930-dependency-tracking.patch |
467 |
@@ -0,0 +1,18 @@ |
468 |
+libatomic build failure if configured with --disable-dependency-tracking |
469 |
+load_n.c:115:1: fatal error: opening dependency file .deps/load_1_.lo.Ppo: No such file or directory |
470 |
+ |
471 |
+https://bugs.gentoo.org/463463 |
472 |
+http://gcc.gnu.org/PR55930 |
473 |
+ |
474 |
+--- a/libatomic/Makefile.in |
475 |
++++ b/libatomic/Makefile.in |
476 |
+@@ -298,7 +298,8 @@ PAT_N = $(word 2,$(PAT_SPLIT)) |
477 |
+ PAT_S = $(word 3,$(PAT_SPLIT)) |
478 |
+ IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) |
479 |
+ IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) |
480 |
+-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo |
481 |
++@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo |
482 |
++@AMDEP_FALSE@M_DEPS = |
483 |
+ M_SIZE = -DN=$(PAT_N) |
484 |
+ M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) |
485 |
+ M_FILE = $(PAT_BASE)_n.c |
486 |
|
487 |
diff --git a/7.5.0/gentoo/12_all_sh-drop-sysroot-suffix.patch b/7.5.0/gentoo/12_all_sh-drop-sysroot-suffix.patch |
488 |
new file mode 100644 |
489 |
index 0000000..3dadd4c |
490 |
--- /dev/null |
491 |
+++ b/7.5.0/gentoo/12_all_sh-drop-sysroot-suffix.patch |
492 |
@@ -0,0 +1,32 @@ |
493 |
+From 5eeeff19bb4978a8d3c0d53bc81744bc25d82993 Mon Sep 17 00:00:00 2001 |
494 |
+From: Sergei Trofimovich <slyfox@g.o> |
495 |
+Date: Sat, 14 Apr 2018 13:07:39 +0100 |
496 |
+Subject: [PATCH] gcc/config.gcc: sh-*: Disable sysroot-suffix (PR42947) |
497 |
+ |
498 |
+sh-* is a multilib target. It is also one of 2 sysroot-prefix targets. |
499 |
+Unfortunately two options do not mix well. Attempt to use default |
500 |
+multilib flavour always prepends sysroot-prefix. |
501 |
+ |
502 |
+Bug: https://bugs.gentoo.org/511548 |
503 |
+Bug: https://gcc.gnu.org/PR42947 |
504 |
+Signed-off-by: Sergei Trofimovich <slyfox@g.o> |
505 |
+--- |
506 |
+ gcc/config.gcc | 2 -- |
507 |
+ 1 file changed, 2 deletions(-) |
508 |
+ |
509 |
+diff --git a/gcc/config.gcc b/gcc/config.gcc |
510 |
+index 55c314afdbd..c320f24f123 100644 |
511 |
+--- a/gcc/config.gcc |
512 |
++++ b/gcc/config.gcc |
513 |
+@@ -2866,8 +2866,6 @@ sh-*-elf* | sh[12346l]*-*-elf* | \ |
514 |
+ if test x${enable_incomplete_targets} = xyes ; then |
515 |
+ tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1" |
516 |
+ fi |
517 |
+- tm_file="$tm_file ./sysroot-suffix.h" |
518 |
+- tmake_file="$tmake_file t-sysroot-suffix" |
519 |
+ ;; |
520 |
+ sh-*-rtems*) |
521 |
+ tmake_file="${tmake_file} sh/t-sh sh/t-rtems" |
522 |
+-- |
523 |
+2.17.0 |
524 |
+ |
525 |
|
526 |
diff --git a/7.5.0/gentoo/13_all_respect-build-cxxflags.patch b/7.5.0/gentoo/13_all_respect-build-cxxflags.patch |
527 |
new file mode 100644 |
528 |
index 0000000..14139ea |
529 |
--- /dev/null |
530 |
+++ b/7.5.0/gentoo/13_all_respect-build-cxxflags.patch |
531 |
@@ -0,0 +1,39 @@ |
532 |
+Pass CXXFLAGS as CXXFLAGS_FOR_BUILD to stage1. |
533 |
+ |
534 |
+Fixes build failure when CXXFLAGS contains |
535 |
+TARGET-specific flags. |
536 |
+ |
537 |
+Tested on x86_64-pc-linux-gnu host as: |
538 |
+ # CFLAGS='-O2 -mfpu=neon-vfpv4' CXXFLAGS='-O2 -mfpu=neon-vfpv4' \ |
539 |
+ armv7a-unknown-linux-gnueabihf-emerge -v1 sys-devel/gcc --quiet-build=n |
540 |
+ |
541 |
+Fix by Peter Levine. |
542 |
+https://bugs.gentoo.org/581406 |
543 |
+--- a/Makefile.in |
544 |
++++ b/Makefile.in |
545 |
+@@ -170,6 +170,7 @@ |
546 |
+ # built for the build system to override those in BASE_FLAGS_TO_PASS. |
547 |
+ EXTRA_BUILD_FLAGS = \ |
548 |
+ CFLAGS="$(CFLAGS_FOR_BUILD)" \ |
549 |
++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ |
550 |
+ LDFLAGS="$(LDFLAGS_FOR_BUILD)" |
551 |
+ |
552 |
+ # This is the list of directories to built for the host system. |
553 |
+@@ -710,6 +711,7 @@ |
554 |
+ "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ |
555 |
+ "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ |
556 |
+ "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ |
557 |
++ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \ |
558 |
+ "EXPECT=$(EXPECT)" \ |
559 |
+ "FLEX=$(FLEX)" \ |
560 |
+ "INSTALL=$(INSTALL)" \ |
561 |
+--- a/Makefile.tpl |
562 |
++++ b/Makefile.tpl |
563 |
+@@ -172,6 +172,7 @@ |
564 |
+ # built for the build system to override those in BASE_FLAGS_TO_PASS. |
565 |
+ EXTRA_BUILD_FLAGS = \ |
566 |
+ CFLAGS="$(CFLAGS_FOR_BUILD)" \ |
567 |
++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ |
568 |
+ LDFLAGS="$(LDFLAGS_FOR_BUILD)" |
569 |
+ |
570 |
+ # This is the list of directories to built for the host system. |
571 |
|
572 |
diff --git a/7.5.0/gentoo/14_all_libgfortran-Werror.patch b/7.5.0/gentoo/14_all_libgfortran-Werror.patch |
573 |
new file mode 100644 |
574 |
index 0000000..f6c26bf |
575 |
--- /dev/null |
576 |
+++ b/7.5.0/gentoo/14_all_libgfortran-Werror.patch |
577 |
@@ -0,0 +1,20 @@ |
578 |
+libgfortran does not respect --disable-werror |
579 |
+ |
580 |
+https://bugs.gentoo.org/433435 |
581 |
+http://gcc.gnu.org/PR54724 |
582 |
+ |
583 |
+ |
584 |
+--- a/libgfortran/configure.ac |
585 |
++++ b/libgfortran/configure.ac |
586 |
+@@ -140,3 +140,3 @@ AM_PROG_CC_C_O |
587 |
+ if test "x$GCC" = "xyes"; then |
588 |
+- AM_FCFLAGS="-I . -Wall -Werror -fimplicit-none -fno-repack-arrays -fno-underscoring" |
589 |
++ AM_FCFLAGS="-I . -Wall -fimplicit-none -fno-repack-arrays -fno-underscoring" |
590 |
+ ## We like to use C11 and C99 routines when available. This makes |
591 |
+--- a/libgfortran/configure |
592 |
++++ b/libgfortran/configure |
593 |
+@@ -5764,3 +5764,3 @@ fi |
594 |
+ # Add -Wall -fno-repack-arrays -fno-underscoring if we are using GCC. |
595 |
+ if test "x$GCC" = "xyes"; then |
596 |
+- AM_FCFLAGS="-I . -Wall -Werror -fimplicit-none -fno-repack-arrays -fno-underscoring" |
597 |
++ AM_FCFLAGS="-I . -Wall -fimplicit-none -fno-repack-arrays -fno-underscoring" |
598 |
|
599 |
diff --git a/7.5.0/gentoo/15_all_libgomp-Werror.patch b/7.5.0/gentoo/15_all_libgomp-Werror.patch |
600 |
new file mode 100644 |
601 |
index 0000000..416808a |
602 |
--- /dev/null |
603 |
+++ b/7.5.0/gentoo/15_all_libgomp-Werror.patch |
604 |
@@ -0,0 +1,20 @@ |
605 |
+libgomp does not respect --disable-werror |
606 |
+ |
607 |
+https://bugs.gentoo.org/229059 |
608 |
+http://gcc.gnu.org/PR38436 |
609 |
+--- a/libgomp/configure.ac |
610 |
++++ b/libgomp/configure.ac |
611 |
+@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS" |
612 |
+ # Add -Wall -Werror if we are using GCC. |
613 |
+ if test "x$GCC" = "xyes"; then |
614 |
+- XCFLAGS="$XCFLAGS -Wall -Werror" |
615 |
++ XCFLAGS="$XCFLAGS -Wall" |
616 |
+ fi |
617 |
+--- a/libgomp/configure |
618 |
++++ b/libgomp/configure |
619 |
+@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS" |
620 |
+ # Add -Wall -Werror if we are using GCC. |
621 |
+ if test "x$GCC" = "xyes"; then |
622 |
+- XCFLAGS="$XCFLAGS -Wall -Werror" |
623 |
++ XCFLAGS="$XCFLAGS -Wall" |
624 |
+ fi |
625 |
|
626 |
diff --git a/7.5.0/gentoo/16_all_libitm-Werror.patch b/7.5.0/gentoo/16_all_libitm-Werror.patch |
627 |
new file mode 100644 |
628 |
index 0000000..27181e0 |
629 |
--- /dev/null |
630 |
+++ b/7.5.0/gentoo/16_all_libitm-Werror.patch |
631 |
@@ -0,0 +1,19 @@ |
632 |
+libitm does not respect --disable-werror |
633 |
+ |
634 |
+https://bugs.gentoo.org/475350 |
635 |
+--- a/libitm/configure.ac |
636 |
++++ b/libitm/configure.ac |
637 |
+@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS" |
638 |
+ # Add -Wall -Werror if we are using GCC. |
639 |
+ if test "x$GCC" = "xyes"; then |
640 |
+- XCFLAGS="$XCFLAGS -Wall -Werror" |
641 |
++ XCFLAGS="$XCFLAGS -Wall" |
642 |
+ fi |
643 |
+--- a/libitm/configure |
644 |
++++ b/libitm/configure |
645 |
+@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS" |
646 |
+ # Add -Wall -Werror if we are using GCC. |
647 |
+ if test "x$GCC" = "xyes"; then |
648 |
+- XCFLAGS="$XCFLAGS -Wall -Werror" |
649 |
++ XCFLAGS="$XCFLAGS -Wall" |
650 |
+ fi |
651 |
|
652 |
diff --git a/7.5.0/gentoo/17_all_libatomic-Werror.patch b/7.5.0/gentoo/17_all_libatomic-Werror.patch |
653 |
new file mode 100644 |
654 |
index 0000000..0550722 |
655 |
--- /dev/null |
656 |
+++ b/7.5.0/gentoo/17_all_libatomic-Werror.patch |
657 |
@@ -0,0 +1,19 @@ |
658 |
+libatomic does not respect --disable-werror |
659 |
+ |
660 |
+https://bugs.gentoo.org/475350 |
661 |
+--- a/libatomic/configure.ac |
662 |
++++ b/libatomic/configure.ac |
663 |
+@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS" |
664 |
+ # Add -Wall -Werror if we are using GCC. |
665 |
+ if test "x$GCC" = "xyes"; then |
666 |
+- XCFLAGS="$XCFLAGS -Wall -Werror" |
667 |
++ XCFLAGS="$XCFLAGS -Wall" |
668 |
+ fi |
669 |
+--- a/libatomic/configure |
670 |
++++ b/libatomic/configure |
671 |
+@@ -4282,4 +4282,4 @@ save_CFLAGS="$CFLAGS" |
672 |
+ # Add -Wall -Werror if we are using GCC. |
673 |
+ if test "x$GCC" = "xyes"; then |
674 |
+- XCFLAGS="$XCFLAGS -Wall -Werror" |
675 |
++ XCFLAGS="$XCFLAGS -Wall" |
676 |
+ fi |
677 |
|
678 |
diff --git a/7.5.0/gentoo/18_all_libbacktrace-Werror.patch b/7.5.0/gentoo/18_all_libbacktrace-Werror.patch |
679 |
new file mode 100644 |
680 |
index 0000000..57dd284 |
681 |
--- /dev/null |
682 |
+++ b/7.5.0/gentoo/18_all_libbacktrace-Werror.patch |
683 |
@@ -0,0 +1,17 @@ |
684 |
+libbacktrace does not respect --disable-werror |
685 |
+ |
686 |
+https://bugs.gentoo.org/667104 |
687 |
+--- a/libbacktrace/configure |
688 |
++++ b/libbacktrace/configure |
689 |
+@@ -11634,3 +11634,3 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu |
690 |
+ if test -n "${with_target_subdir}"; then |
691 |
+- WARN_FLAGS="$WARN_FLAGS -Werror" |
692 |
++ WARN_FLAGS="$WARN_FLAGS" |
693 |
+ fi |
694 |
+--- a/libbacktrace/configure.ac |
695 |
++++ b/libbacktrace/configure.ac |
696 |
+@@ -138,3 +138,3 @@ ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \ |
697 |
+ if test -n "${with_target_subdir}"; then |
698 |
+- WARN_FLAGS="$WARN_FLAGS -Werror" |
699 |
++ WARN_FLAGS="$WARN_FLAGS" |
700 |
+ fi |
701 |
|
702 |
diff --git a/7.5.0/gentoo/19_all_libsanitizer-libbacktrace-Werror.patch b/7.5.0/gentoo/19_all_libsanitizer-libbacktrace-Werror.patch |
703 |
new file mode 100644 |
704 |
index 0000000..46a219a |
705 |
--- /dev/null |
706 |
+++ b/7.5.0/gentoo/19_all_libsanitizer-libbacktrace-Werror.patch |
707 |
@@ -0,0 +1,17 @@ |
708 |
+libsanitizer/libbacktrace does not respect --disable-werror |
709 |
+ |
710 |
+https://bugs.gentoo.org/667104 |
711 |
+--- a/libsanitizer/libbacktrace/Makefile.am |
712 |
++++ b/libsanitizer/libbacktrace/Makefile.am |
713 |
+@@ -37,3 +37,3 @@ AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \ |
714 |
+ WARN_FLAGS = -W -Wall -Wwrite-strings -Wmissing-format-attribute \ |
715 |
+- -Wcast-qual -Werror |
716 |
++ -Wcast-qual |
717 |
+ C_WARN_FLAGS = $(WARN_FLAGS) -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition |
718 |
+--- a/libsanitizer/libbacktrace/Makefile.in |
719 |
++++ b/libsanitizer/libbacktrace/Makefile.in |
720 |
+@@ -293,3 +293,3 @@ AM_CPPFLAGS = -I $(top_srcdir)/../include -I $(top_srcdir)/../libgcc \ |
721 |
+ WARN_FLAGS = -W -Wall -Wwrite-strings -Wmissing-format-attribute \ |
722 |
+- -Wcast-qual -Werror |
723 |
++ -Wcast-qual |
724 |
+ |
725 |
|
726 |
diff --git a/7.5.0/gentoo/20_all_libstdcxx-no-vtv.patch b/7.5.0/gentoo/20_all_libstdcxx-no-vtv.patch |
727 |
new file mode 100644 |
728 |
index 0000000..68508bd |
729 |
--- /dev/null |
730 |
+++ b/7.5.0/gentoo/20_all_libstdcxx-no-vtv.patch |
731 |
@@ -0,0 +1,61 @@ |
732 |
+Final libstdc++.so should not contain rpath to make libvtv usable. |
733 |
+It's up to final binaries to link against proper libvtv. |
734 |
+ |
735 |
+Bug: https://bugs.gentoo.org/582524 |
736 |
+Bug: https://gcc.gnu.org/PR85884 |
737 |
+--- a/libstdc++-v3/src/Makefile.am |
738 |
++++ b/libstdc++-v3/src/Makefile.am |
739 |
+@@ -217,7 +217,6 @@ CXXLINK = \ |
740 |
+ $(LIBTOOL) --tag CXX \ |
741 |
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
742 |
+ --mode=link $(CXX) \ |
743 |
+- $(VTV_CXXLINKFLAGS) \ |
744 |
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ |
745 |
+ |
746 |
+ # Symbol versioning for shared libraries. |
747 |
+--- a/libstdc++-v3/src/Makefile.in |
748 |
++++ b/libstdc++-v3/src/Makefile.in |
749 |
+@@ -511,7 +511,6 @@ CXXLINK = \ |
750 |
+ $(LIBTOOL) --tag CXX \ |
751 |
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
752 |
+ --mode=link $(CXX) \ |
753 |
+- $(VTV_CXXLINKFLAGS) \ |
754 |
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ |
755 |
+ |
756 |
+ @ENABLE_SYMVERS_TRUE@CLEANFILES = libstdc++-symbols.ver $(version_dep) |
757 |
+--- a/libstdc++-v3/src/c++11/Makefile.am |
758 |
++++ b/libstdc++-v3/src/c++11/Makefile.am |
759 |
+@@ -204,5 +204,4 @@ CXXLINK = \ |
760 |
+ $(LIBTOOL) --tag CXX --tag disable-shared \ |
761 |
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
762 |
+ --mode=link $(CXX) \ |
763 |
+- $(VTV_CXXLINKFLAGS) \ |
764 |
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ |
765 |
+--- a/libstdc++-v3/src/c++11/Makefile.in |
766 |
++++ b/libstdc++-v3/src/c++11/Makefile.in |
767 |
+@@ -496,7 +496,6 @@ CXXLINK = \ |
768 |
+ $(LIBTOOL) --tag CXX --tag disable-shared \ |
769 |
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
770 |
+ --mode=link $(CXX) \ |
771 |
+- $(VTV_CXXLINKFLAGS) \ |
772 |
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ |
773 |
+ |
774 |
+ all: all-am |
775 |
+--- a/libstdc++-v3/src/c++98/Makefile.am |
776 |
++++ b/libstdc++-v3/src/c++98/Makefile.am |
777 |
+@@ -273,5 +273,4 @@ CXXLINK = \ |
778 |
+ $(LIBTOOL) --tag CXX --tag disable-shared \ |
779 |
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
780 |
+ --mode=link $(CXX) \ |
781 |
+- $(VTV_CXXLINKFLAGS) \ |
782 |
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ |
783 |
+--- a/libstdc++-v3/src/c++98/Makefile.in |
784 |
++++ b/libstdc++-v3/src/c++98/Makefile.in |
785 |
+@@ -500,7 +500,6 @@ CXXLINK = \ |
786 |
+ $(LIBTOOL) --tag CXX --tag disable-shared \ |
787 |
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
788 |
+ --mode=link $(CXX) \ |
789 |
+- $(VTV_CXXLINKFLAGS) \ |
790 |
+ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ |
791 |
+ |
792 |
+ all: all-am |
793 |
|
794 |
diff --git a/7.5.0/gentoo/21_all_lto-ctor-dtor-target.patch b/7.5.0/gentoo/21_all_lto-ctor-dtor-target.patch |
795 |
new file mode 100644 |
796 |
index 0000000..206daae |
797 |
--- /dev/null |
798 |
+++ b/7.5.0/gentoo/21_all_lto-ctor-dtor-target.patch |
799 |
@@ -0,0 +1,64 @@ |
800 |
+https://bugs.gentoo.org/677724 |
801 |
+ |
802 |
+Apply file-specific target-specific optimisation to constructors and |
803 |
+destructors. Fixes leaking of target-specific options from one unit |
804 |
+to another. On firefox this change fixes -mavx2 leak from files guarded |
805 |
+by CPU flag detection into other files. |
806 |
+ |
807 |
+From 332446ac24e5b37f441f7c9cb0b97fc36f9f0aa3 Mon Sep 17 00:00:00 2001 |
808 |
+From: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> |
809 |
+Date: Sat, 15 Dec 2018 10:31:37 +0000 |
810 |
+Subject: [PATCH] * ipa.c (cgraph_build_static_cdtor_1): Add |
811 |
+ OPTIMIZATION and TARGET parameters. (cgraph_build_static_cdtor): |
812 |
+ Update. (build_cdtor): Use OPTIMIZATION and TARGET of the first real |
813 |
+ cdtor callsed. |
814 |
+ |
815 |
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@267168 138bc75d-0d04-0410-961f-82ee72b054a4 |
816 |
+--- |
817 |
+ gcc/ipa.c | 12 +++++++++--- |
818 |
+ |
819 |
+--- a/gcc/ipa.c |
820 |
++++ b/gcc/ipa.c |
821 |
+@@ -831,7 +831,9 @@ ipa_discover_variable_flags (void) |
822 |
+ be produced. */ |
823 |
+ |
824 |
+ static void |
825 |
+-cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final) |
826 |
++cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final, |
827 |
++ tree optimization, |
828 |
++ tree target) |
829 |
+ { |
830 |
+ static int counter = 0; |
831 |
+ char which_buf[16]; |
832 |
+@@ -862,6 +864,8 @@ cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final) |
833 |
+ |
834 |
+ TREE_STATIC (decl) = 1; |
835 |
+ TREE_USED (decl) = 1; |
836 |
++ DECL_FUNCTION_SPECIFIC_OPTIMIZATION (decl) = optimization; |
837 |
++ DECL_FUNCTION_SPECIFIC_TARGET (decl) = target; |
838 |
+ DECL_ARTIFICIAL (decl) = 1; |
839 |
+ DECL_IGNORED_P (decl) = 1; |
840 |
+ DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (decl) = 1; |
841 |
+@@ -911,7 +915,7 @@ cgraph_build_static_cdtor_1 (char which, tree body, int priority, bool final) |
842 |
+ void |
843 |
+ cgraph_build_static_cdtor (char which, tree body, int priority) |
844 |
+ { |
845 |
+- cgraph_build_static_cdtor_1 (which, body, priority, false); |
846 |
++ cgraph_build_static_cdtor_1 (which, body, priority, false, NULL, NULL); |
847 |
+ } |
848 |
+ |
849 |
+ /* When target does not have ctors and dtors, we call all constructor |
850 |
+@@ -993,7 +997,9 @@ build_cdtor (bool ctor_p, const vec<tree> &cdtors) |
851 |
+ gcc_assert (body != NULL_TREE); |
852 |
+ /* Generate a function to call all the function of like |
853 |
+ priority. */ |
854 |
+- cgraph_build_static_cdtor_1 (ctor_p ? 'I' : 'D', body, priority, true); |
855 |
++ cgraph_build_static_cdtor_1 (ctor_p ? 'I' : 'D', body, priority, true, |
856 |
++ DECL_FUNCTION_SPECIFIC_OPTIMIZATION (cdtors[0]), |
857 |
++ DECL_FUNCTION_SPECIFIC_TARGET (cdtors[0])); |
858 |
+ } |
859 |
+ } |
860 |
+ |
861 |
+-- |
862 |
+2.20.1 |
863 |
+ |
864 |
|
865 |
diff --git a/7.5.0/gentoo/README.history b/7.5.0/gentoo/README.history |
866 |
new file mode 100644 |
867 |
index 0000000..3958c90 |
868 |
--- /dev/null |
869 |
+++ b/7.5.0/gentoo/README.history |
870 |
@@ -0,0 +1,22 @@ |
871 |
+1 14 Nov 2019 |
872 |
+ + 01_all_default-fortify-source.patch |
873 |
+ + 02_all_default-warn-format-security.patch |
874 |
+ + 03_all_default-warn-trampolines.patch |
875 |
+ + 04_all_default-ssp-fix.patch |
876 |
+ + 05_all_alpha-mieee-default.patch |
877 |
+ + 06_all_ia64_note.GNU-stack.patch |
878 |
+ + 07_all_libiberty-asprintf.patch |
879 |
+ + 08_all_libiberty-pic.patch |
880 |
+ + 09_all_nopie-all-flags.patch |
881 |
+ + 10_all_extra-options.patch |
882 |
+ + 11_all_pr55930-dependency-tracking.patch |
883 |
+ + 12_all_sh-drop-sysroot-suffix.patch |
884 |
+ + 13_all_respect-build-cxxflags.patch |
885 |
+ + 14_all_libgfortran-Werror.patch |
886 |
+ + 15_all_libgomp-Werror.patch |
887 |
+ + 16_all_libitm-Werror.patch |
888 |
+ + 17_all_libatomic-Werror.patch |
889 |
+ + 18_all_libbacktrace-Werror.patch |
890 |
+ + 19_all_libsanitizer-libbacktrace-Werror.patch |
891 |
+ + 20_all_libstdcxx-no-vtv.patch |
892 |
+ + 21_all_lto-ctor-dtor-target.patch |