1 |
blueness 15/06/24 13:38:51 |
2 |
|
3 |
Added: 09_all_default-ssp.patch |
4 |
10_all_default-fortify-source.patch |
5 |
11_all_default-warn-format-security.patch |
6 |
12_all_default-warn-trampolines.patch |
7 |
15_all_libgfortran-Werror.patch |
8 |
16_all_libgomp-Werror.patch |
9 |
17_all_libitm-Werror.patch |
10 |
18_all_libatomic-Werror.patch |
11 |
19_all_libbacktrace-Werror.patch |
12 |
20_all_msgfmt-libstdc++-link.patch |
13 |
25_all_alpha-mieee-default.patch |
14 |
26_all_alpha-asm-mcpu.patch |
15 |
29_all_arm_armv4t-default.patch |
16 |
30_all_arm_armv4-no-thumb-fix-link.patch |
17 |
34_all_ia64_note.GNU-stack.patch |
18 |
38_all_sh_pr24836_all-archs.patch |
19 |
42_all_superh_default-multilib.patch |
20 |
48_all_x86_pr53113_libitm-avx.patch |
21 |
50_all_libiberty-asprintf.patch |
22 |
51_all_libiberty-pic.patch |
23 |
52_all_netbsd-Bsymbolic.patch |
24 |
67_all_gcc-poison-system-directories.patch |
25 |
74_all_gcc48_cloog-dl.patch |
26 |
90_all_pr55930-dependency-tracking.patch |
27 |
91_all_pr61538-atomic-compare-exchange.patch |
28 |
92_all_freebsd-pie.patch 93_all_4.9.0_pr60155.patch |
29 |
93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch |
30 |
README.history |
31 |
Log: |
32 |
intial 4.8.5 patchset based on 4.8.4. bug #553144. |
33 |
|
34 |
Revision Changes Path |
35 |
1.1 src/patchsets/gcc/4.8.5/gentoo/09_all_default-ssp.patch |
36 |
|
37 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/09_all_default-ssp.patch?rev=1.1&view=markup |
38 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/09_all_default-ssp.patch?rev=1.1&content-type=text/plain |
39 |
|
40 |
Index: 09_all_default-ssp.patch |
41 |
=================================================================== |
42 |
2013-12-31 Magnus Granberg <zorry@g.o> |
43 |
|
44 |
Patch orig: Debian/Ubuntu |
45 |
# 484714 |
46 |
We Add -fstack-protector as default |
47 |
|
48 |
--- a/configure.ac |
49 |
+++ b/configure.ac |
50 |
@@ -3238,6 +3238,9 @@ case $build in |
51 |
esac ;; |
52 |
esac |
53 |
|
54 |
+# Needed when we build with -fstack-protector as default. |
55 |
+stage1_cflags="$stage1_cflags -fno-stack-protector" |
56 |
+ |
57 |
AC_SUBST(stage1_cflags) |
58 |
|
59 |
# Enable --enable-checking in stage1 of the compiler. |
60 |
--- a/configure |
61 |
+++ b/configure |
62 |
@@ -14453,7 +14453,8 @@ case $build in |
63 |
esac ;; |
64 |
esac |
65 |
|
66 |
- |
67 |
+# Needed when we build with -fstack-protector as default. |
68 |
+stage1_cflags="$stage1_cflags -fno-stack-protector" |
69 |
|
70 |
# Enable --enable-checking in stage1 of the compiler. |
71 |
# Check whether --enable-stage1-checking was given. |
72 |
--- a/Makefile.in |
73 |
+++ b/Makefile.in |
74 |
@@ -362,7 +362,7 @@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@ |
75 |
|
76 |
# Flags to pass to stage2 and later makes. They are defined |
77 |
# here so that they can be overridden by Makefile fragments. |
78 |
-BOOT_CFLAGS= -g -O2 |
79 |
+BOOT_CFLAGS= -g -O2 -fno-stack-protector |
80 |
BOOT_LDFLAGS= |
81 |
BOOT_ADAFLAGS= -gnatpg |
82 |
|
83 |
@@ -408,9 +408,9 @@ GNATMAKE = @GNATMAKE@ |
84 |
|
85 |
CFLAGS = @CFLAGS@ |
86 |
LDFLAGS = @LDFLAGS@ |
87 |
-LIBCFLAGS = $(CFLAGS) |
88 |
+LIBCFLAGS = $(CFLAGS) -fno-stack-protector |
89 |
CXXFLAGS = @CXXFLAGS@ |
90 |
-LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates |
91 |
+LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates -fno-stack-protector |
92 |
GOCFLAGS = $(CFLAGS) |
93 |
|
94 |
TFLAGS = |
95 |
--- a/gcc/doc/invoke.texi 2009-12-21 |
96 |
+++ b/gcc/doc/invoke.texi |
97 |
@@ -8111,6 +8111,10 @@ |
98 |
when a function is entered and then checked when the function exits. |
99 |
If a guard check fails, an error message is printed and the program exits. |
100 |
|
101 |
+NOTE: In Gentoo Gcc 4.8.2 and later versions this option is enabled by default |
102 |
+for C, C++, ObjC, ObjC++, if none of @option{-fno-stack-protector}, |
103 |
+@option{-nostdlib}, nor @option{-ffreestanding} are found. |
104 |
+ |
105 |
@item -fstack-protector-all |
106 |
@opindex fstack-protector-all |
107 |
Like @option{-fstack-protector} except that all functions are protected. |
108 |
--- a/gcc/cp/lang-specs.h |
109 |
+++ b/gcc/cp/lang-specs.h |
110 |
@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3. If not see |
111 |
%(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\ |
112 |
cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\ |
113 |
%{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ |
114 |
- %(cc1_options) %2\ |
115 |
+ %(cc1_options) %(ssp_default) %2\ |
116 |
%{!fsyntax-only:%{!fdump-ada-spec*:-o %g.s %{!o*:--output-pch=%i.gch}\ |
117 |
%W{o*:--output-pch=%*}}%V}}}}", |
118 |
CPLUSPLUS_CPP_SPEC, 0, 0}, |
119 |
@@ -57,11 +57,11 @@ along with GCC; see the file COPYING3. If not see |
120 |
%(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\ |
121 |
cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\ |
122 |
%{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ |
123 |
- %(cc1_options) %2\ |
124 |
+ %(cc1_options) %(ssp_default) %2\ |
125 |
%{!fsyntax-only:%(invoke_as)}}}}", |
126 |
CPLUSPLUS_CPP_SPEC, 0, 0}, |
127 |
{".ii", "@c++-cpp-output", 0, 0, 0}, |
128 |
{"@c++-cpp-output", |
129 |
"%{!M:%{!MM:%{!E:\ |
130 |
- cc1plus -fpreprocessed %i %(cc1_options) %2\ |
131 |
+ cc1plus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\ |
132 |
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
133 |
--- a/gcc/gcc.c |
134 |
+++ b/gcc/gcc.c |
135 |
@@ -651,6 +651,17 @@ proper position among the other output files. */ |
136 |
#define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" |
137 |
#endif |
138 |
|
139 |
+#ifndef SSP_DEFAULT_SPEC |
140 |
+#if defined ( TARGET_LIBC_PROVIDES_SSP ) && defined ( EFAULT_SSP ) |
141 |
+#define SSP_DEFAULT_SPEC "%{fno-stack-protector|fstack-protector-all|ffreestanding|nostdlib:;:-fstack-protector}" |
142 |
+/* Add -fno-stack-protector for the use of gcc-specs-ssp. */ |
143 |
+#define CC1_SSP_DEFAULT_SPEC "%{!fno-stack-protector:}" |
144 |
+#else |
145 |
+#define SSP_DEFAULT_SPEC "" |
146 |
+#define CC1_SSP_DEFAULT_SPEC "" |
147 |
+#endif |
148 |
+#endif |
149 |
+ |
150 |
#ifndef LINK_SSP_SPEC |
151 |
#ifdef TARGET_LIBC_PROVIDES_SSP |
152 |
#define LINK_SSP_SPEC "%{fstack-protector:}" |
153 |
@@ -771,7 +781,7 @@ proper position among the other output f |
154 |
|
155 |
static const char *asm_debug = ASM_DEBUG_SPEC; |
156 |
static const char *cpp_spec = CPP_SPEC; |
157 |
-static const char *cc1_spec = CC1_SPEC; |
158 |
+static const char *cc1_spec = CC1_SPEC CC1_SSP_DEFAULT_SPEC; |
159 |
static const char *cc1plus_spec = CC1PLUS_SPEC; |
160 |
static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC; |
161 |
static const char *link_ssp_spec = LINK_SSP_SPEC; |
162 |
@@ -777,6 +785,8 @@ static const char *cc1_spec = CC1_SPEC; |
163 |
static const char *cc1plus_spec = CC1PLUS_SPEC; |
164 |
static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC; |
165 |
static const char *link_ssp_spec = LINK_SSP_SPEC; |
166 |
+static const char *ssp_default_spec = SSP_DEFAULT_SPEC; |
167 |
+static const char *cc1_ssp_default_spec = CC1_SSP_DEFAULT_SPEC; |
168 |
static const char *asm_spec = ASM_SPEC; |
169 |
static const char *asm_final_spec = ASM_FINAL_SPEC; |
170 |
static const char *link_spec = LINK_SPEC; |
171 |
@@ -835,7 +844,7 @@ static const char *cpp_unique_options = |
172 |
static const char *cpp_options = |
173 |
"%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\ |
174 |
%{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*}\ |
175 |
- %{undef} %{save-temps*:-fpch-preprocess}"; |
176 |
+ %{undef} %{save-temps*:-fpch-preprocess} %(ssp_default)"; |
177 |
|
178 |
/* This contains cpp options which are not passed when the preprocessor |
179 |
output will be used by another program. */ |
180 |
@@ -1015,9 +1024,9 @@ static const struct compiler default_compilers[] = |
181 |
%{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \ |
182 |
%(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\ |
183 |
cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \ |
184 |
- %(cc1_options)}\ |
185 |
+ %(cc1_options) %(ssp_default)}\ |
186 |
%{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\ |
187 |
- cc1 %(cpp_unique_options) %(cc1_options)}}}\ |
188 |
+ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}\ |
189 |
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1}, |
190 |
{"-", |
191 |
"%{!E:%e-E or -x required when input is from standard input}\ |
192 |
@@ -1040,7 +1049,7 @@ static const struct compiler default_compilers[] = |
193 |
%W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0}, |
194 |
{".i", "@cpp-output", 0, 0, 0}, |
195 |
{"@cpp-output", |
196 |
- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
197 |
+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %(ssp_default) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
198 |
{".s", "@assembler", 0, 0, 0}, |
199 |
{"@assembler", |
200 |
"%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, |
201 |
@@ -1267,6 +1276,8 @@ static struct spec_list static_specs[] = |
202 |
INIT_STATIC_SPEC ("cc1plus", &cc1plus_spec), |
203 |
INIT_STATIC_SPEC ("link_gcc_c_sequence", &link_gcc_c_sequence_spec), |
204 |
INIT_STATIC_SPEC ("link_ssp", &link_ssp_spec), |
205 |
+ INIT_STATIC_SPEC ("ssp_default", &ssp_default_spec), |
206 |
+ INIT_STATIC_SPEC ("cc1_ssp_default", &cc1_ssp_default_spec), |
207 |
INIT_STATIC_SPEC ("endfile", &endfile_spec), |
208 |
INIT_STATIC_SPEC ("link", &link_spec), |
209 |
INIT_STATIC_SPEC ("lib", &lib_spec), |
210 |
--- a/gcc/objc/lang-specs.h |
211 |
+++ b/gcc/objc/lang-specs.h |
212 |
@@ -29,9 +29,9 @@ along with GCC; see the file COPYING3. If not see |
213 |
%{traditional|traditional-cpp:\ |
214 |
%eGNU Objective C no longer supports traditional compilation}\ |
215 |
%{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\ |
216 |
- cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\ |
217 |
+ cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}}\ |
218 |
%{!save-temps*:%{!no-integrated-cpp:\ |
219 |
- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}}\ |
220 |
+ cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}}}\ |
221 |
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
222 |
{"@objective-c-header", |
223 |
"%{E|M|MM:cc1obj -E %{traditional|traditional-cpp:-traditional-cpp}\ |
224 |
@@ -40,18 +40,18 @@ along with GCC; see the file COPYING3. If not see |
225 |
%{traditional|traditional-cpp:\ |
226 |
%eGNU Objective C no longer supports traditional compilation}\ |
227 |
%{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\ |
228 |
- cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
229 |
+ cc1obj -fpreprocessed %b.mi %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ |
230 |
-o %g.s %{!o*:--output-pch=%i.gch}\ |
231 |
%W{o*:--output-pch=%*}%V}\ |
232 |
%{!save-temps*:%{!no-integrated-cpp:\ |
233 |
- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
234 |
+ cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ |
235 |
-o %g.s %{!o*:--output-pch=%i.gch}\ |
236 |
%W{o*:--output-pch=%*}%V}}}}}", 0, 0, 0}, |
237 |
{".mi", "@objective-c-cpp-output", 0, 0, 0}, |
238 |
{"@objective-c-cpp-output", |
239 |
- "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
240 |
+ "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ |
241 |
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
242 |
{"@objc-cpp-output", |
243 |
"%nobjc-cpp-output is deprecated; please use objective-c-cpp-output instead\n\ |
244 |
- %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ |
245 |
+ %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ |
246 |
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
247 |
--- a/gcc/objcp/lang-specs.h |
248 |
+++ b/gcc/objcp/lang-specs.h |
249 |
@@ -36,7 +36,7 @@ along with GCC; see the file COPYING3. If not see |
250 |
%(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\ |
251 |
cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\ |
252 |
%{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ |
253 |
- %(cc1_options) %2\ |
254 |
+ %(cc1_options) %(ssp_default) %2\ |
255 |
-o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}", |
256 |
CPLUSPLUS_CPP_SPEC, 0, 0}, |
257 |
{"@objective-c++", |
258 |
@@ -46,16 +46,16 @@ along with GCC; see the file COPYING3. If not see |
259 |
%(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\ |
260 |
cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\ |
261 |
%{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ |
262 |
- %(cc1_options) %2\ |
263 |
+ %(cc1_options) %(ssp_default) %2\ |
264 |
%{!fsyntax-only:%(invoke_as)}}}}", |
265 |
CPLUSPLUS_CPP_SPEC, 0, 0}, |
266 |
{".mii", "@objective-c++-cpp-output", 0, 0, 0}, |
267 |
{"@objective-c++-cpp-output", |
268 |
"%{!M:%{!MM:%{!E:\ |
269 |
- cc1objplus -fpreprocessed %i %(cc1_options) %2\ |
270 |
+ cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\ |
271 |
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
272 |
{"@objc++-cpp-output", |
273 |
"%nobjc++-cpp-output is deprecated; please use objective-c++-cpp-output instead\n\ |
274 |
%{!M:%{!MM:%{!E:\ |
275 |
- cc1objplus -fpreprocessed %i %(cc1_options) %2\ |
276 |
+ cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\ |
277 |
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, |
278 |
--- a/gcc/params.def |
279 |
+++ b/gcc/params.def |
280 |
@@ -662,7 +662,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT, |
281 |
DEFPARAM (PARAM_SSP_BUFFER_SIZE, |
282 |
"ssp-buffer-size", |
283 |
"The lower bound for a buffer to be considered for stack smashing protection", |
284 |
- 8, 1, 0) |
285 |
+ 4, 1, 0) |
286 |
|
287 |
/* When we thread through a block we have to make copies of the |
288 |
statements within the block. Clearly for large blocks the code |
289 |
|
290 |
|
291 |
|
292 |
1.1 src/patchsets/gcc/4.8.5/gentoo/10_all_default-fortify-source.patch |
293 |
|
294 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/10_all_default-fortify-source.patch?rev=1.1&view=markup |
295 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/10_all_default-fortify-source.patch?rev=1.1&content-type=text/plain |
296 |
|
297 |
Index: 10_all_default-fortify-source.patch |
298 |
=================================================================== |
299 |
Enable -D_FORTIFY_SOURCE=2 by default. |
300 |
|
301 |
--- a/gcc/c-family/c-cppbuiltin.c |
302 |
+++ b/gcc/c-family/c-cppbuiltin.c |
303 |
@@ -853,6 +853,9 @@ c_cpp_builtins (cpp_reader *pfile) |
304 |
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); |
305 |
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0); |
306 |
|
307 |
+ /* Fortify Source enabled by default w/optimization. */ |
308 |
+ cpp_define (pfile, "_FORTIFY_SOURCE=((defined __OPTIMIZE__ && __OPTIMIZE__ > 0) ? 2 : 0)"); |
309 |
+ |
310 |
/* Misc. */ |
311 |
if (flag_gnu89_inline) |
312 |
cpp_define (pfile, "__GNUC_GNU_INLINE__"); |
313 |
--- a/gcc/doc/invoke.texi |
314 |
+++ b/gcc/doc/invoke.texi |
315 |
@@ -6568,6 +6568,11 @@ also turns on the following optimization flags: |
316 |
Please note the warning under @option{-fgcse} about |
317 |
invoking @option{-O2} on programs that use computed gotos. |
318 |
|
319 |
+NOTE: In Gentoo, @option{-D_FORTIFY_SOURCE=2} is set by default, and is |
320 |
+activated when @option{-O} is set to 2 or higher. This enables additional |
321 |
+compile-time and run-time checks for several libc functions. To disable, |
322 |
+specify either @option{-U_FORTIFY_SOURCE} or @option{-D_FORTIFY_SOURCE=0}. |
323 |
+ |
324 |
@item -O3 |
325 |
@opindex O3 |
326 |
Optimize yet more. @option{-O3} turns on all optimizations specified |
327 |
|
328 |
|
329 |
|
330 |
1.1 src/patchsets/gcc/4.8.5/gentoo/11_all_default-warn-format-security.patch |
331 |
|
332 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/11_all_default-warn-format-security.patch?rev=1.1&view=markup |
333 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/11_all_default-warn-format-security.patch?rev=1.1&content-type=text/plain |
334 |
|
335 |
Index: 11_all_default-warn-format-security.patch |
336 |
=================================================================== |
337 |
Enable -Wformat and -Wformat-security by default. |
338 |
|
339 |
--- a/gcc/c-family/c.opt |
340 |
+++ b/gcc/c-family/c.opt |
341 |
@@ -400,7 +400,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ O |
342 |
Warn about format strings that are not literals |
343 |
|
344 |
Wformat-security |
345 |
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) |
346 |
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) |
347 |
Warn about possible security problems with format functions |
348 |
|
349 |
Wformat-y2k |
350 |
@@ -412,7 +412,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ |
351 |
Warn about zero-length formats |
352 |
|
353 |
Wformat= |
354 |
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) |
355 |
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) |
356 |
Warn about printf/scanf/strftime/strfmon format string anomalies |
357 |
|
358 |
Wignored-qualifiers |
359 |
--- a/gcc/doc/invoke.texi |
360 |
+++ b/gcc/doc/invoke.texi |
361 |
@@ -3362,6 +3362,11 @@ currently a subset of what @option{-Wformat-nonliteral} warns about, but |
362 |
in future warnings may be added to @option{-Wformat-security} that are not |
363 |
included in @option{-Wformat-nonliteral}.) |
364 |
|
365 |
+In Gentoo this option is enabled by default for C, C++, ObjC, ObjC++. |
366 |
+To disable, use @option{-Wno-format-security}, or disable all format |
367 |
+warnings with @option{-Wformat=0}. To make format security warnings |
368 |
+fatal, specify @option{-Werror=format-security}. |
369 |
+ |
370 |
@item -Wformat-y2k |
371 |
@opindex Wformat-y2k |
372 |
@opindex Wno-format-y2k |
373 |
|
374 |
|
375 |
|
376 |
1.1 src/patchsets/gcc/4.8.5/gentoo/12_all_default-warn-trampolines.patch |
377 |
|
378 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/12_all_default-warn-trampolines.patch?rev=1.1&view=markup |
379 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/12_all_default-warn-trampolines.patch?rev=1.1&content-type=text/plain |
380 |
|
381 |
Index: 12_all_default-warn-trampolines.patch |
382 |
=================================================================== |
383 |
Enable -Wtrampolines by default. |
384 |
|
385 |
--- a/gcc/common.opt |
386 |
+++ b/gcc/common.opt |
387 |
@@ -640,7 +640,7 @@ Common Var(warn_system_headers) Warning |
388 |
Do not suppress warnings from system headers |
389 |
|
390 |
Wtrampolines |
391 |
-Common Var(warn_trampolines) Warning |
392 |
+Common Var(warn_trampolines) Init(1) Warning |
393 |
Warn whenever a trampoline is generated |
394 |
|
395 |
Wtype-limits |
396 |
--- a/gcc/doc/invoke.texi |
397 |
+++ b/gcc/doc/invoke.texi |
398 |
@@ -4007,6 +4007,8 @@ headers---for that, @option{-Wunknown-pragmas} must also be used. |
399 |
for most targets, it is made up of code and thus requires the stack |
400 |
to be made executable in order for the program to work properly. |
401 |
|
402 |
+ This warning is enabled by default in Gentoo. |
403 |
+ |
404 |
@item -Wfloat-equal |
405 |
@opindex Wfloat-equal |
406 |
@opindex Wno-float-equal |
407 |
|
408 |
|
409 |
|
410 |
1.1 src/patchsets/gcc/4.8.5/gentoo/15_all_libgfortran-Werror.patch |
411 |
|
412 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/15_all_libgfortran-Werror.patch?rev=1.1&view=markup |
413 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/15_all_libgfortran-Werror.patch?rev=1.1&content-type=text/plain |
414 |
|
415 |
Index: 15_all_libgfortran-Werror.patch |
416 |
=================================================================== |
417 |
libgfortran does not respect --disable-werror |
418 |
|
419 |
https://bugs.gentoo.org/433435 |
420 |
http://gcc.gnu.org/PR54724 |
421 |
|
422 |
|
423 |
--- a/libgfortran/configure |
424 |
+++ b/libgfortran/configure |
425 |
@@ -5764,7 +5764,7 @@ fi |
426 |
|
427 |
# Add -Wall -fno-repack-arrays -fno-underscoring if we are using GCC. |
428 |
if test "x$GCC" = "xyes"; then |
429 |
- AM_FCFLAGS="-I . -Wall -Werror -fimplicit-none -fno-repack-arrays -fno-underscoring" |
430 |
+ AM_FCFLAGS="-I . -Wall -fimplicit-none -fno-repack-arrays -fno-underscoring" |
431 |
## We like to use C99 routines when available. This makes sure that |
432 |
## __STDC_VERSION__ is set such that libc includes make them available. |
433 |
AM_CFLAGS="-std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wextra -Wwrite-strings" |
434 |
|
435 |
|
436 |
|
437 |
1.1 src/patchsets/gcc/4.8.5/gentoo/16_all_libgomp-Werror.patch |
438 |
|
439 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/16_all_libgomp-Werror.patch?rev=1.1&view=markup |
440 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/16_all_libgomp-Werror.patch?rev=1.1&content-type=text/plain |
441 |
|
442 |
Index: 16_all_libgomp-Werror.patch |
443 |
=================================================================== |
444 |
libgomp does not respect --disable-werror |
445 |
|
446 |
https://bugs.gentoo.org/229059 |
447 |
http://gcc.gnu.org/PR38436 |
448 |
|
449 |
|
450 |
--- a/libgomp/configure |
451 |
+++ b/libgomp/configure |
452 |
@@ -4282,7 +4282,7 @@ save_CFLAGS="$CFLAGS" |
453 |
|
454 |
# Add -Wall -Werror if we are using GCC. |
455 |
if test "x$GCC" = "xyes"; then |
456 |
- XCFLAGS="$XCFLAGS -Wall -Werror" |
457 |
+ XCFLAGS="$XCFLAGS -Wall" |
458 |
fi |
459 |
|
460 |
# Find other programs we need. |
461 |
|
462 |
|
463 |
|
464 |
1.1 src/patchsets/gcc/4.8.5/gentoo/17_all_libitm-Werror.patch |
465 |
|
466 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/17_all_libitm-Werror.patch?rev=1.1&view=markup |
467 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/17_all_libitm-Werror.patch?rev=1.1&content-type=text/plain |
468 |
|
469 |
Index: 17_all_libitm-Werror.patch |
470 |
=================================================================== |
471 |
Add --enable-werror. |
472 |
|
473 |
https://bugs.gentoo.org/475350 |
474 |
|
475 |
|
476 |
2013-06-30 Ryan Hill <dirtyepic@g.o> |
477 |
|
478 |
* configure.ac: Add --enable-werror. |
479 |
(XCFLAGS): Use it. |
480 |
* configure: Regenerate. |
481 |
|
482 |
--- a/libitm/configure.ac |
483 |
+++ b/libitm/configure.ac |
484 |
@@ -252,9 +252,15 @@ GCC_CHECK_ELF_STYLE_WEAKREF |
485 |
CFLAGS="$save_CFLAGS" |
486 |
AC_CACHE_SAVE |
487 |
|
488 |
-# Add -Wall -Werror if we are using GCC. |
489 |
+AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror], |
490 |
+ [turns on -Werror @<:@default=yes@:>@])]) |
491 |
+# Add -Wall if we are using GCC. |
492 |
if test "x$GCC" = "xyes"; then |
493 |
- XCFLAGS="$XCFLAGS -Wall -Werror" |
494 |
+ XCFLAGS="$XCFLAGS -Wall" |
495 |
+ # Add -Werror if requested. |
496 |
+ if test "x$enable_werror" != "xno"; then |
497 |
+ XCFLAGS="$XCFLAGS -Werror" |
498 |
+ fi |
499 |
fi |
500 |
|
501 |
XCFLAGS="$XCFLAGS $XPCFLAGS" |
502 |
--- a/libitm/configure |
503 |
+++ b/libitm/configure |
504 |
@@ -775,6 +775,7 @@ enable_maintainer_mode |
505 |
enable_linux_futex |
506 |
enable_tls |
507 |
enable_symvers |
508 |
+enable_werror |
509 |
' |
510 |
ac_precious_vars='build_alias |
511 |
host_alias |
512 |
@@ -1423,6 +1424,7 @@ Optional Features: |
513 |
--enable-tls Use thread-local storage [default=yes] |
514 |
--enable-symvers=STYLE enables symbol versioning of the shared library |
515 |
[default=yes] |
516 |
+ --enable-werror turns on -Werror [default=yes] |
517 |
|
518 |
Optional Packages: |
519 |
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] |
520 |
@@ -17491,9 +17493,18 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} |
521 |
fi |
522 |
rm -f confcache |
523 |
|
524 |
-# Add -Wall -Werror if we are using GCC. |
525 |
+# Check whether --enable-werror was given. |
526 |
+if test "${enable_werror+set}" = set; then : |
527 |
+ enableval=$enable_werror; |
528 |
+fi |
529 |
+ |
530 |
+# Add -Wall if we are using GCC. |
531 |
if test "x$GCC" = "xyes"; then |
532 |
- XCFLAGS="$XCFLAGS -Wall -Werror" |
533 |
+ XCFLAGS="$XCFLAGS -Wall" |
534 |
+ # Add -Werror if requested. |
535 |
+ if test "x$enable_werror" != "xno"; then |
536 |
+ XCFLAGS="$XCFLAGS -Werror" |
537 |
+ fi |
538 |
fi |
539 |
|
540 |
XCFLAGS="$XCFLAGS $XPCFLAGS" |
541 |
|
542 |
|
543 |
|
544 |
1.1 src/patchsets/gcc/4.8.5/gentoo/18_all_libatomic-Werror.patch |
545 |
|
546 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/18_all_libatomic-Werror.patch?rev=1.1&view=markup |
547 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/18_all_libatomic-Werror.patch?rev=1.1&content-type=text/plain |
548 |
|
549 |
Index: 18_all_libatomic-Werror.patch |
550 |
=================================================================== |
551 |
Add --enable-werror. |
552 |
|
553 |
https://bugs.gentoo.org/475350 |
554 |
|
555 |
|
556 |
2013-06-30 Ryan Hill <dirtyepic@g.o> |
557 |
|
558 |
* configure.ac: Add --enable-werror. |
559 |
(XCFLAGS): Use it. |
560 |
* configure: Regenerate. |
561 |
|
562 |
--- a/libatomic/configure.ac |
563 |
+++ b/libatomic/configure.ac |
564 |
@@ -226,9 +226,15 @@ LIBAT_ENABLE_SYMVERS |
565 |
CFLAGS="$save_CFLAGS" |
566 |
AC_CACHE_SAVE |
567 |
|
568 |
-# Add -Wall -Werror if we are using GCC. |
569 |
+AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror], |
570 |
+ [turns on -Werror @<:@default=yes@:>@])]) |
571 |
+# Add -Wall if we are using GCC. |
572 |
if test "x$GCC" = "xyes"; then |
573 |
- XCFLAGS="$XCFLAGS -Wall -Werror" |
574 |
+ XCFLAGS="$XCFLAGS -Wall" |
575 |
+ # Add -Werror if requested. |
576 |
+ if test "x$enable_werror" != "xno"; then |
577 |
+ XCFLAGS="$XCFLAGS -Werror" |
578 |
+ fi |
579 |
fi |
580 |
|
581 |
XCFLAGS="$XCFLAGS $XPCFLAGS" |
582 |
--- a/libatomic/configure |
583 |
+++ b/libatomic/configure |
584 |
@@ -761,6 +761,7 @@ with_gnu_ld |
585 |
enable_libtool_lock |
586 |
enable_maintainer_mode |
587 |
enable_symvers |
588 |
+enable_werror |
589 |
' |
590 |
ac_precious_vars='build_alias |
591 |
host_alias |
592 |
@@ -1406,6 +1407,7 @@ Optional Features: |
593 |
(and sometimes confusing) to the casual installer |
594 |
--enable-symvers=STYLE enables symbol versioning of the shared library |
595 |
[default=yes] |
596 |
+ --enable-werror turns on -Werror [default=yes] |
597 |
|
598 |
Optional Packages: |
599 |
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] |
600 |
@@ -15071,9 +15073,18 @@ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} |
601 |
fi |
602 |
rm -f confcache |
603 |
|
604 |
-# Add -Wall -Werror if we are using GCC. |
605 |
+# Check whether --enable-werror was given. |
606 |
+if test "${enable_werror+set}" = set; then : |
607 |
+ enableval=$enable_werror; |
608 |
+fi |
609 |
+ |
610 |
+# Add -Wall if we are using GCC. |
611 |
if test "x$GCC" = "xyes"; then |
612 |
- XCFLAGS="$XCFLAGS -Wall -Werror" |
613 |
+ XCFLAGS="$XCFLAGS -Wall" |
614 |
+ # Add -Werror if requested. |
615 |
+ if test "x$enable_werror" != "xno"; then |
616 |
+ XCFLAGS="$XCFLAGS -Werror" |
617 |
+ fi |
618 |
fi |
619 |
|
620 |
XCFLAGS="$XCFLAGS $XPCFLAGS" |
621 |
|
622 |
|
623 |
|
624 |
1.1 src/patchsets/gcc/4.8.5/gentoo/19_all_libbacktrace-Werror.patch |
625 |
|
626 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/19_all_libbacktrace-Werror.patch?rev=1.1&view=markup |
627 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/19_all_libbacktrace-Werror.patch?rev=1.1&content-type=text/plain |
628 |
|
629 |
Index: 19_all_libbacktrace-Werror.patch |
630 |
=================================================================== |
631 |
add a --enable-werror flag |
632 |
|
633 |
2015-06-24 Anthony G. Basile < blueness@g.o> |
634 |
|
635 |
* configure: Regenerate. |
636 |
|
637 |
2014-01-03 Mike Frysinger <dirtyepic@g.o> |
638 |
|
639 |
* configure.ac: Add --enable-werror. |
640 |
(WARN_FLAGS): Use it. |
641 |
* configure: Regenerate. |
642 |
--- |
643 |
libbacktrace/configure | 16 +++++++++++++--- |
644 |
libbacktrace/configure.ac | 7 ++++++- |
645 |
2 files changed, 19 insertions(+), 4 deletions(-) |
646 |
|
647 |
diff --git a/libbacktrace/configure b/libbacktrace/configure |
648 |
index 55ae75f..2b95676 100755 |
649 |
--- a/libbacktrace/configure |
650 |
+++ b/libbacktrace/configure |
651 |
@@ -730,6 +730,7 @@ with_pic |
652 |
enable_fast_install |
653 |
with_gnu_ld |
654 |
enable_libtool_lock |
655 |
+enable_werror |
656 |
with_system_libunwind |
657 |
' |
658 |
ac_precious_vars='build_alias |
659 |
@@ -1369,6 +1370,7 @@ Optional Features: |
660 |
--enable-fast-install[=PKGS] |
661 |
optimize for fast installation [default=yes] |
662 |
--disable-libtool-lock avoid locking (might break parallel builds) |
663 |
+ --enable-werror turns on -Werror [default=yes] |
664 |
|
665 |
Optional Packages: |
666 |
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] |
667 |
@@ -11127,7 +11129,7 @@ else |
668 |
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
669 |
lt_status=$lt_dlunknown |
670 |
cat > conftest.$ac_ext <<_LT_EOF |
671 |
-#line 11130 "configure" |
672 |
+#line 11132 "configure" |
673 |
#include "confdefs.h" |
674 |
|
675 |
#if HAVE_DLFCN_H |
676 |
@@ -11233,7 +11235,7 @@ else |
677 |
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
678 |
lt_status=$lt_dlunknown |
679 |
cat > conftest.$ac_ext <<_LT_EOF |
680 |
-#line 11236 "configure" |
681 |
+#line 11238 "configure" |
682 |
#include "confdefs.h" |
683 |
|
684 |
#if HAVE_DLFCN_H |
685 |
@@ -11615,8 +11617,16 @@ fi |
686 |
CFLAGS="$save_CFLAGS" |
687 |
|
688 |
|
689 |
+# Check whether --enable-werror was given. |
690 |
+if test "${enable_werror+set}" = set; then : |
691 |
+ enableval=$enable_werror; |
692 |
+fi |
693 |
+ |
694 |
+ |
695 |
if test -n "${with_target_subdir}"; then |
696 |
- WARN_FLAGS="$WARN_FLAGS -Werror" |
697 |
+ if test "x$enable_werror" != "xno"; then |
698 |
+ WARN_FLAGS="$WARN_FLAGS -Werror" |
699 |
+ fi |
700 |
fi |
701 |
|
702 |
|
703 |
diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac |
704 |
index ecfaa8e..f056fe5 100644 |
705 |
--- a/libbacktrace/configure.ac |
706 |
+++ b/libbacktrace/configure.ac |
707 |
@@ -135,8 +135,13 @@ ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \ |
708 |
-Wmissing-format-attribute -Wcast-qual], |
709 |
[WARN_FLAGS]) |
710 |
|
711 |
+AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror], |
712 |
+ [turns on -Werror @<:@default=yes@:>@])]) |
713 |
+ |
714 |
if test -n "${with_target_subdir}"; then |
715 |
- WARN_FLAGS="$WARN_FLAGS -Werror" |
716 |
+ if test "x$enable_werror" != "xno"; then |
717 |
+ WARN_FLAGS="$WARN_FLAGS -Werror" |
718 |
+ fi |
719 |
fi |
720 |
|
721 |
AC_SUBST(WARN_FLAGS) |
722 |
-- |
723 |
2.3.6 |
724 |
|
725 |
|
726 |
|
727 |
|
728 |
1.1 src/patchsets/gcc/4.8.5/gentoo/20_all_msgfmt-libstdc++-link.patch |
729 |
|
730 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/20_all_msgfmt-libstdc++-link.patch?rev=1.1&view=markup |
731 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/20_all_msgfmt-libstdc++-link.patch?rev=1.1&content-type=text/plain |
732 |
|
733 |
Index: 20_all_msgfmt-libstdc++-link.patch |
734 |
=================================================================== |
735 |
Ensure that msgfmt doesn't encounter problems during gcc bootstrapping. |
736 |
|
737 |
Solves error messages like the following: |
738 |
|
739 |
msgfmt: /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6) |
740 |
|
741 |
The libgcc_s.so used during build doesn't satisfy the needs of the |
742 |
libstdc++.so that msgfmt is linked against. On the other hand, msgfmt |
743 |
is used as a stand-alone application here, and what library it uses |
744 |
behind the scenes is of no concern to the gcc build process. |
745 |
Therefore, simply invoking it "as usual", i.e. without any special |
746 |
library path, will make it work as expected here. |
747 |
|
748 |
2011-09-19 Martin von Gagern |
749 |
|
750 |
References: |
751 |
https://bugs.gentoo.org/372377 |
752 |
https://bugs.gentoo.org/295480 |
753 |
|
754 |
--- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.am |
755 |
+++ gcc-4.1.2/libstdc++-v3/po/Makefile.am |
756 |
@@ -39,6 +39,7 @@ MSGFMT = msgfmt |
757 |
EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN) |
758 |
|
759 |
.po.mo: |
760 |
+ env --unset=LD_LIBRARY_PATH \ |
761 |
$(MSGFMT) -o $@ $< |
762 |
|
763 |
all-local: all-local-$(USE_NLS) |
764 |
--- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.in |
765 |
+++ gcc-4.1.2/libstdc++-v3/po/Makefile.in |
766 |
@@ -419,6 +419,7 @@ uninstall-am: uninstall-info-am |
767 |
|
768 |
|
769 |
.po.mo: |
770 |
+ env --unset=LD_LIBRARY_PATH \ |
771 |
$(MSGFMT) -o $@ $< |
772 |
|
773 |
all-local: all-local-$(USE_NLS) |
774 |
|
775 |
|
776 |
|
777 |
1.1 src/patchsets/gcc/4.8.5/gentoo/25_all_alpha-mieee-default.patch |
778 |
|
779 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/25_all_alpha-mieee-default.patch?rev=1.1&view=markup |
780 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/25_all_alpha-mieee-default.patch?rev=1.1&content-type=text/plain |
781 |
|
782 |
Index: 25_all_alpha-mieee-default.patch |
783 |
=================================================================== |
784 |
Set the default behavior on alpha to use -mieee since the large majority of |
785 |
time we want this (bad/weird things can happen with packages built without |
786 |
it). |
787 |
|
788 |
To satisfy those people who may not want -mieee forced on them all the time, |
789 |
we also provide -mno-ieee. |
790 |
|
791 |
Patch by Mike Frysinger <vapier@g.o> |
792 |
|
793 |
Note: upstream doesn't want to take this due to long standing behavior, and |
794 |
because it'd make behavior across OS's inconsistent: |
795 |
https://gcc.gnu.org/ml/gcc-patches/2003-07/msg02144.html |
796 |
|
797 |
This makes sense for upstream, but Gentoo is more concerned about packages |
798 |
behaving the same across arches under Linux. |
799 |
|
800 |
--- a/gcc/config/alpha/alpha.h |
801 |
+++ b/gcc/config/alpha/alpha.h |
802 |
@@ -96,6 +96,8 @@ along with GCC; see the file COPYING3. If not see |
803 |
while (0) |
804 |
#endif |
805 |
|
806 |
+#define CPP_SPEC "%{!no-ieee:-mieee}" |
807 |
+ |
808 |
/* Run-time compilation parameters selecting different hardware subsets. */ |
809 |
|
810 |
/* Which processor to schedule for. The cpu attribute defines a list that |
811 |
--- a/gcc/config/alpha/alpha.opt |
812 |
+++ b/gcc/config/alpha/alpha.opt |
813 |
@@ -39,7 +39,7 @@ Target RejectNegative Mask(IEEE_CONFORMANT) |
814 |
Request IEEE-conformant math library routines (OSF/1) |
815 |
|
816 |
mieee |
817 |
-Target Report RejectNegative Mask(IEEE) |
818 |
+Target Report Mask(IEEE) |
819 |
Emit IEEE-conformant code, without inexact exceptions |
820 |
|
821 |
mieee-with-inexact |
822 |
|
823 |
|
824 |
|
825 |
1.1 src/patchsets/gcc/4.8.5/gentoo/26_all_alpha-asm-mcpu.patch |
826 |
|
827 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/26_all_alpha-asm-mcpu.patch?rev=1.1&view=markup |
828 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/26_all_alpha-asm-mcpu.patch?rev=1.1&content-type=text/plain |
829 |
|
830 |
Index: 26_all_alpha-asm-mcpu.patch |
831 |
=================================================================== |
832 |
https://bugs.gentoo.org/170146 |
833 |
http://gcc.gnu.org/ml/gcc-patches/2009-11/msg00403.html |
834 |
|
835 |
alpha: turn -mcpu=<cpu> into -m<cpu> for assembler all the time |
836 |
|
837 |
--- a/gcc/config/alpha/elf.h |
838 |
+++ b/gcc/config/alpha/elf.h |
839 |
@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3. If not see |
840 |
#define CC1_SPEC "%{G*}" |
841 |
|
842 |
#undef ASM_SPEC |
843 |
-#define ASM_SPEC "%{G*} %{relax:-relax} %{!gstabs*:-no-mdebug}%{gstabs*:-mdebug}" |
844 |
+#define ASM_SPEC "%{G*} %{relax:-relax} %{!gstabs*:-no-mdebug}%{gstabs*:-mdebug} %{mcpu=*:-m%*}" |
845 |
|
846 |
#undef IDENT_ASM_OP |
847 |
#define IDENT_ASM_OP "\t.ident\t" |
848 |
|
849 |
|
850 |
|
851 |
1.1 src/patchsets/gcc/4.8.5/gentoo/29_all_arm_armv4t-default.patch |
852 |
|
853 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/29_all_arm_armv4t-default.patch?rev=1.1&view=markup |
854 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/29_all_arm_armv4t-default.patch?rev=1.1&content-type=text/plain |
855 |
|
856 |
Index: 29_all_arm_armv4t-default.patch |
857 |
=================================================================== |
858 |
gcc defaults to armv5t for all targets even armv4t |
859 |
|
860 |
http://sourceware.org/ml/crossgcc/2008-05/msg00009.html |
861 |
|
862 |
|
863 |
--- a/gcc/config/arm/linux-eabi.h |
864 |
+++ b/gcc/config/arm/linux-eabi.h |
865 |
@@ -45,7 +45,7 @@ |
866 |
The ARM10TDMI core is the default for armv5t, so set |
867 |
SUBTARGET_CPU_DEFAULT to achieve this. */ |
868 |
#undef SUBTARGET_CPU_DEFAULT |
869 |
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi |
870 |
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi |
871 |
|
872 |
/* TARGET_BIG_ENDIAN_DEFAULT is set in |
873 |
config.gcc for big endian configurations. */ |
874 |
|
875 |
|
876 |
|
877 |
1.1 src/patchsets/gcc/4.8.5/gentoo/30_all_arm_armv4-no-thumb-fix-link.patch |
878 |
|
879 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/30_all_arm_armv4-no-thumb-fix-link.patch?rev=1.1&view=markup |
880 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/30_all_arm_armv4-no-thumb-fix-link.patch?rev=1.1&content-type=text/plain |
881 |
|
882 |
Index: 30_all_arm_armv4-no-thumb-fix-link.patch |
883 |
=================================================================== |
884 |
From 73aa8c34427a4282930ca8667165d844ee698859 Mon Sep 17 00:00:00 2001 |
885 |
From: Mike Frysinger <vapier@g.o> |
886 |
Date: Fri, 19 Apr 2013 16:32:28 -0400 |
887 |
Subject: [PATCH] gcc: arm: linux-eabi: fix handling of armv4 bx fixups when |
888 |
linking |
889 |
|
890 |
The bpabi.h header already sets up defines to automatically use the |
891 |
--fix-v4bx flag with the assembler & linker as needed, and creates a |
892 |
default assembly & linker spec which uses those. Unfortunately, the |
893 |
linux-eabi.h header clobbers the LINK_SPEC define and doesn't include |
894 |
the v4bx define when setting up its own. So while the assembler spec |
895 |
is retained and works fine to generate the right relocs, building for |
896 |
armv4 targets doesn't invoke the linker correctly so all the relocs |
897 |
get processed as if we had an armv4t target. |
898 |
|
899 |
You can see this with -dumpspecs when configuring gcc for an armv4 |
900 |
target and using --with-arch=armv4: |
901 |
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx |
902 |
*subtarget_extra_asm_spec: |
903 |
.... %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx} ... |
904 |
|
905 |
With this fix in place, we also get the link spec: |
906 |
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx |
907 |
*link: |
908 |
... %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx} ... |
909 |
|
910 |
And all my hello world tests / glibc builds automatically turn the |
911 |
bx insn into the 'mov pc, lr' insn and all is right in the world. |
912 |
|
913 |
Signed-off-by: Mike Frysinger <vapier@g.o> |
914 |
|
915 |
2013-04-19 Mike Frysinger <vapier@g.o> |
916 |
|
917 |
* config/arm/linux-eabi.h (LINK_SPEC): Add TARGET_FIX_V4BX_SPEC. |
918 |
--- |
919 |
gcc/config/arm/linux-eabi.h | 2 +- |
920 |
1 file changed, 1 insertion(+), 1 deletion(-) |
921 |
|
922 |
--- a/gcc/config/arm/linux-eabi.h |
923 |
+++ b/gcc/config/arm/linux-eabi.h |
924 |
@@ -80,7 +80,7 @@ |
925 |
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to |
926 |
use the GNU/Linux version, not the generic BPABI version. */ |
927 |
#undef LINK_SPEC |
928 |
-#define LINK_SPEC BE8_LINK_SPEC \ |
929 |
+#define LINK_SPEC TARGET_FIX_V4BX_SPEC BE8_LINK_SPEC \ |
930 |
LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ |
931 |
LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) |
932 |
|
933 |
-- |
934 |
1.8.2.1 |
935 |
|
936 |
|
937 |
|
938 |
|
939 |
1.1 src/patchsets/gcc/4.8.5/gentoo/34_all_ia64_note.GNU-stack.patch |
940 |
|
941 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/34_all_ia64_note.GNU-stack.patch?rev=1.1&view=markup |
942 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/34_all_ia64_note.GNU-stack.patch?rev=1.1&content-type=text/plain |
943 |
|
944 |
Index: 34_all_ia64_note.GNU-stack.patch |
945 |
=================================================================== |
946 |
http://gcc.gnu.org/PR21098 |
947 |
|
948 |
|
949 |
2004-09-20 Jakub Jelinek <jakub@××××××.com> |
950 |
|
951 |
* config/rs6000/ppc-asm.h: Add .note.GNU-stack section also |
952 |
on ppc64-linux. |
953 |
|
954 |
* config/ia64/lib1funcs.asm: Add .note.GNU-stack section on |
955 |
ia64-linux. |
956 |
* config/ia64/crtbegin.asm: Likewise. |
957 |
* config/ia64/crtend.asm: Likewise. |
958 |
* config/ia64/crti.asm: Likewise. |
959 |
* config/ia64/crtn.asm: Likewise. |
960 |
|
961 |
2004-05-14 Jakub Jelinek <jakub@××××××.com> |
962 |
|
963 |
* config/ia64/linux.h (TARGET_ASM_FILE_END): Define. |
964 |
|
965 |
|
966 |
--- a/gcc/config/ia64/linux.h |
967 |
+++ b/gcc/config/ia64/linux.h |
968 |
@@ -24,6 +24,8 @@ a copy of the GCC Runtime Library Exception along with this program; |
969 |
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
970 |
<http://www.gnu.org/licenses/>. */ |
971 |
|
972 |
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack |
973 |
+ |
974 |
/* This is for -profile to use -lc_p instead of -lc. */ |
975 |
#undef CC1_SPEC |
976 |
#define CC1_SPEC "%{profile:-p} %{G*}" |
977 |
--- a/gcc/config/rs6000/ppc-asm.h |
978 |
+++ b/gcc/config/rs6000/ppc-asm.h |
979 |
@@ -352,7 +352,7 @@ GLUE(.L,name): \ |
980 |
#endif |
981 |
#endif |
982 |
|
983 |
-#if defined __linux__ && !defined __powerpc64__ |
984 |
+#if defined __linux__ |
985 |
.section .note.GNU-stack |
986 |
.previous |
987 |
#endif |
988 |
--- a/libgcc/config/ia64/crtbegin.S |
989 |
+++ b/libgcc/config/ia64/crtbegin.S |
990 |
@@ -252,3 +252,7 @@ __do_jv_register_classes: |
991 |
.weak __cxa_finalize |
992 |
#endif |
993 |
.weak _Jv_RegisterClasses |
994 |
+ |
995 |
+#ifdef __linux__ |
996 |
+.section .note.GNU-stack; .previous |
997 |
+#endif |
998 |
--- a/libgcc/config/ia64/crtend.S |
999 |
+++ b/libgcc/config/ia64/crtend.S |
1000 |
@@ -119,3 +119,6 @@ __do_global_ctors_aux: |
1001 |
|
1002 |
br.ret.sptk.many rp |
1003 |
.endp __do_global_ctors_aux |
1004 |
+#ifdef __linux__ |
1005 |
+.section .note.GNU-stack; .previous |
1006 |
+#endif |
1007 |
--- a/libgcc/config/ia64/crti.S |
1008 |
+++ b/libgcc/config/ia64/crti.S |
1009 |
@@ -49,5 +49,8 @@ _fini: |
1010 |
.save rp, r33 |
1011 |
mov r33 = b0 |
1012 |
.body |
1013 |
+#ifdef __linux__ |
1014 |
+.section .note.GNU-stack; .previous |
1015 |
+#endif |
1016 |
|
1017 |
# end of crti.S |
1018 |
--- a/libgcc/config/ia64/crtn.S |
1019 |
+++ b/libgcc/config/ia64/crtn.S |
1020 |
@@ -39,5 +39,8 @@ |
1021 |
.restore sp |
1022 |
mov r12 = r35 |
1023 |
br.ret.sptk.many b0 |
1024 |
+#ifdef __linux__ |
1025 |
+.section .note.GNU-stack; .previous |
1026 |
+#endif |
1027 |
|
1028 |
# end of crtn.S |
1029 |
--- a/libgcc/config/ia64/lib1funcs.S |
1030 |
+++ b/libgcc/config/ia64/lib1funcs.S |
1031 |
@@ -793,3 +793,6 @@ __floattitf: |
1032 |
.endp __floattitf |
1033 |
#endif |
1034 |
#endif |
1035 |
+#ifdef __linux__ |
1036 |
+.section .note.GNU-stack; .previous |
1037 |
+#endif |
1038 |
|
1039 |
|
1040 |
|
1041 |
1.1 src/patchsets/gcc/4.8.5/gentoo/38_all_sh_pr24836_all-archs.patch |
1042 |
|
1043 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/38_all_sh_pr24836_all-archs.patch?rev=1.1&view=markup |
1044 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/38_all_sh_pr24836_all-archs.patch?rev=1.1&content-type=text/plain |
1045 |
|
1046 |
Index: 38_all_sh_pr24836_all-archs.patch |
1047 |
=================================================================== |
1048 |
gcc/configure doesn't handle all possible SH architectures |
1049 |
|
1050 |
http://gcc.gnu.org/PR24836 |
1051 |
|
1052 |
|
1053 |
--- a/gcc/configure |
1054 |
+++ b/gcc/configure |
1055 |
@@ -22753,7 +22753,7 @@ foo: .long 25 |
1056 |
tls_first_minor=14 |
1057 |
tls_as_opt="-m64 -Aesame --fatal-warnings" |
1058 |
;; |
1059 |
- sh-*-* | sh[34]-*-*) |
1060 |
+ sh-*-* | sh[34]*-*-*) |
1061 |
conftest_s=' |
1062 |
.section ".tdata","awT",@progbits |
1063 |
foo: .long 25 |
1064 |
--- a/gcc/configure.ac |
1065 |
+++ b/gcc/configure.ac |
1066 |
@@ -2924,7 +2924,7 @@ foo: .long 25 |
1067 |
tls_first_minor=14 |
1068 |
tls_as_opt="-m64 -Aesame --fatal-warnings" |
1069 |
;; |
1070 |
- sh-*-* | sh[34]-*-*) |
1071 |
+ sh-*-* | sh[34]*-*-*) |
1072 |
conftest_s=' |
1073 |
.section ".tdata","awT",@progbits |
1074 |
foo: .long 25 |
1075 |
|
1076 |
|
1077 |
|
1078 |
1.1 src/patchsets/gcc/4.8.5/gentoo/42_all_superh_default-multilib.patch |
1079 |
|
1080 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/42_all_superh_default-multilib.patch?rev=1.1&view=markup |
1081 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/42_all_superh_default-multilib.patch?rev=1.1&content-type=text/plain |
1082 |
|
1083 |
Index: 42_all_superh_default-multilib.patch |
1084 |
=================================================================== |
1085 |
The gcc-3.x toolchains would contain all the targets by default. With gcc-4, |
1086 |
you have to actually list out the multilibs you want or you will end up with |
1087 |
just one when using targets like 'sh4-linux-gnu'. |
1088 |
|
1089 |
The resulting toolchain can't even build a kernel as the kernel needs to build |
1090 |
with the nofpu flag to be sure that no fpu ops are generated. |
1091 |
|
1092 |
Here we restore the gcc-3.x behavior; the additional overhead of building all |
1093 |
of these multilibs by default is negligible. |
1094 |
|
1095 |
https://bugs.gentoo.org/140205 |
1096 |
https://bugs.gentoo.org/320251 |
1097 |
|
1098 |
--- a/gcc/config.gcc |
1099 |
+++ b/gcc/config.gcc |
1100 |
@@ -2455,7 +2455,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ |
1101 |
if test "$sh_multilibs" = "default" ; then |
1102 |
case ${target} in |
1103 |
sh64-superh-linux* | \ |
1104 |
- sh[1234]*) sh_multilibs=${sh_cpu_target} ;; |
1105 |
+ sh[1234]*) sh_multilibs=$(echo $(sed -n '/^[[:space:]]*case ${sh_multilib} in/,/)/{s:case ${sh_multilib} in::;s: | *:,:g;s:[\\)]::g;p}' ${srcdir}/config.gcc) | sed 's: ::g') ;; |
1106 |
sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;; |
1107 |
sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;; |
1108 |
sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;; |
1109 |
|
1110 |
|
1111 |
|
1112 |
1.1 src/patchsets/gcc/4.8.5/gentoo/48_all_x86_pr53113_libitm-avx.patch |
1113 |
|
1114 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/48_all_x86_pr53113_libitm-avx.patch?rev=1.1&view=markup |
1115 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/48_all_x86_pr53113_libitm-avx.patch?rev=1.1&content-type=text/plain |
1116 |
|
1117 |
Index: 48_all_x86_pr53113_libitm-avx.patch |
1118 |
=================================================================== |
1119 |
Force -mavx and -msse when needed. |
1120 |
|
1121 |
https://bugs.gentoo.org/417271 |
1122 |
https://gcc.gnu.org/PR53113 |
1123 |
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=206587 |
1124 |
|
1125 |
commit 7986635822d172ab35a858b02fcd822afa41f628 |
1126 |
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> |
1127 |
Date: Mon Jan 13 19:36:17 2014 +0000 |
1128 |
|
1129 |
Make sure that -msse/-mavx are appended at the end |
1130 |
|
1131 |
PR libitm/53113 |
1132 |
* Makefile.am (x86_sse.lo): Append -msse to CXXFLAGS. |
1133 |
(x86_avx.lo): Append -mavx to CXXFLAGS. |
1134 |
* Makefile.in: Regenerate. |
1135 |
|
1136 |
|
1137 |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206587 138bc75d-0d04-0410-961f-82ee72b054a4 |
1138 |
--- |
1139 |
libitm/ChangeLog | 7 +++++++ |
1140 |
libitm/Makefile.am | 6 ++++-- |
1141 |
libitm/Makefile.in | 6 ++++-- |
1142 |
3 files changed, 15 insertions(+), 4 deletions(-) |
1143 |
|
1144 |
|
1145 |
--- a/libitm/Makefile.am |
1146 |
+++ b/libitm/Makefile.am |
1147 |
@@ -67,10 +67,12 @@ libitm_la_SOURCES += hwcap.cc |
1148 |
endif |
1149 |
if ARCH_X86 |
1150 |
libitm_la_SOURCES += x86_sse.cc x86_avx.cc |
1151 |
-x86_sse.lo : XCFLAGS += -msse |
1152 |
+# Make sure -msse is appended at the end. |
1153 |
+x86_sse.lo : override CXXFLAGS += -msse |
1154 |
endif |
1155 |
if ARCH_X86_AVX |
1156 |
-x86_avx.lo : XCFLAGS += -mavx |
1157 |
+# Make sure -mavx is appended at the end. |
1158 |
+x86_avx.lo : override CXXFLAGS += -mavx |
1159 |
endif |
1160 |
|
1161 |
if ARCH_FUTEX |
1162 |
--- a/libitm/Makefile.in |
1163 |
+++ b/libitm/Makefile.in |
1164 |
@@ -1050,8 +1050,10 @@ vpath % $(strip $(search_path)) |
1165 |
@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ `echo $(libitm_la_LIBADD) | \ |
1166 |
@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ |
1167 |
@LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@ > $@ || (rm -f $@ ; exit 1) |
1168 |
-@ARCH_X86_TRUE@x86_sse.lo : XCFLAGS += -msse |
1169 |
-@ARCH_X86_AVX_TRUE@x86_avx.lo : XCFLAGS += -mavx |
1170 |
+# Make sure -msse is appended at the end. |
1171 |
+@ARCH_X86_TRUE@x86_sse.lo : override CXXFLAGS += -msse |
1172 |
+# Make sure -mavx is appended at the end. |
1173 |
+@ARCH_X86_AVX_TRUE@x86_avx.lo : override CXXFLAGS += -mavx |
1174 |
|
1175 |
all-local: $(STAMP_GENINSRC) |
1176 |
|
1177 |
|
1178 |
|
1179 |
|
1180 |
1.1 src/patchsets/gcc/4.8.5/gentoo/50_all_libiberty-asprintf.patch |
1181 |
|
1182 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/50_all_libiberty-asprintf.patch?rev=1.1&view=markup |
1183 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/50_all_libiberty-asprintf.patch?rev=1.1&content-type=text/plain |
1184 |
|
1185 |
Index: 50_all_libiberty-asprintf.patch |
1186 |
=================================================================== |
1187 |
a hacky version of: |
1188 |
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=223589 |
1189 |
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01865.html |
1190 |
|
1191 |
2008-07-25 Magnus Granberg <zorry@×××.nu> |
1192 |
|
1193 |
* include/libiberty.h (asprintf): Don't declare if defined as a macro |
1194 |
|
1195 |
--- a/include/libiberty.h |
1196 |
+++ b/include/libiberty.h |
1197 |
@@ -609,8 +609,11 @@ extern int pwait (int, int *, int); |
1198 |
/* Like sprintf but provides a pointer to malloc'd storage, which must |
1199 |
be freed by the caller. */ |
1200 |
|
1201 |
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */ |
1202 |
+#ifndef asprintf |
1203 |
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; |
1204 |
#endif |
1205 |
+#endif |
1206 |
|
1207 |
#if !HAVE_DECL_VASPRINTF |
1208 |
/* Like vsprintf but provides a pointer to malloc'd storage, which |
1209 |
|
1210 |
|
1211 |
|
1212 |
1.1 src/patchsets/gcc/4.8.5/gentoo/51_all_libiberty-pic.patch |
1213 |
|
1214 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/51_all_libiberty-pic.patch?rev=1.1&view=markup |
1215 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/51_all_libiberty-pic.patch?rev=1.1&content-type=text/plain |
1216 |
|
1217 |
Index: 51_all_libiberty-pic.patch |
1218 |
=================================================================== |
1219 |
--- a/libiberty/Makefile.in |
1220 |
+++ b/libiberty/Makefile.in |
1221 |
@@ -246,6 +246,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) |
1222 |
$(AR) $(AR_FLAGS) $(TARGETLIB) \ |
1223 |
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ |
1224 |
$(RANLIB) $(TARGETLIB); \ |
1225 |
+ cp $(TARGETLIB) ../ ; \ |
1226 |
cd ..; \ |
1227 |
else true; fi |
1228 |
|
1229 |
|
1230 |
|
1231 |
|
1232 |
1.1 src/patchsets/gcc/4.8.5/gentoo/52_all_netbsd-Bsymbolic.patch |
1233 |
|
1234 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/52_all_netbsd-Bsymbolic.patch?rev=1.1&view=markup |
1235 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/52_all_netbsd-Bsymbolic.patch?rev=1.1&content-type=text/plain |
1236 |
|
1237 |
Index: 52_all_netbsd-Bsymbolic.patch |
1238 |
=================================================================== |
1239 |
https://bugs.gentoo.org/122698 |
1240 |
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02854.html |
1241 |
|
1242 |
--- a/gcc/config/netbsd-elf.h |
1243 |
+++ b/gcc/config/netbsd-elf.h |
1244 |
@@ -70,6 +70,7 @@ along with GCC; see the file COPYING3. If not see |
1245 |
#define NETBSD_LINK_SPEC_ELF \ |
1246 |
"%{assert*} %{R*} %{rpath*} \ |
1247 |
%{shared:-shared} \ |
1248 |
+ %{symbolic:-Bsymbolic} \ |
1249 |
%{!shared: \ |
1250 |
-dc -dp \ |
1251 |
%{!nostdlib: \ |
1252 |
|
1253 |
|
1254 |
|
1255 |
1.1 src/patchsets/gcc/4.8.5/gentoo/67_all_gcc-poison-system-directories.patch |
1256 |
|
1257 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/67_all_gcc-poison-system-directories.patch?rev=1.1&view=markup |
1258 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/67_all_gcc-poison-system-directories.patch?rev=1.1&content-type=text/plain |
1259 |
|
1260 |
Index: 67_all_gcc-poison-system-directories.patch |
1261 |
=================================================================== |
1262 |
grabbed from openembedded |
1263 |
|
1264 |
From 160397ef3c3331099af028f1b8d3e085b07d88ad Mon Sep 17 00:00:00 2001 |
1265 |
From: Khem Raj <raj.khem@×××××.com> |
1266 |
Date: Fri, 29 Mar 2013 08:59:00 +0400 |
1267 |
Subject: [PATCH 16/35] gcc: poison-system-directories |
1268 |
|
1269 |
Signed-off-by: Khem Raj <raj.khem@×××××.com> |
1270 |
|
1271 |
Upstream-Status: Inappropriate [distribution: codesourcery] |
1272 |
--- |
1273 |
gcc/Makefile.in | 2 +- |
1274 |
gcc/common.opt | 4 ++++ |
1275 |
gcc/config.in | 6 ++++++ |
1276 |
gcc/configure | 20 ++++++++++++++++++-- |
1277 |
gcc/configure.ac | 10 ++++++++++ |
1278 |
gcc/doc/invoke.texi | 9 +++++++++ |
1279 |
gcc/gcc.c | 2 ++ |
1280 |
gcc/incpath.c | 19 +++++++++++++++++++ |
1281 |
8 files changed, 69 insertions(+), 3 deletions(-) |
1282 |
|
1283 |
--- a/gcc/Makefile.in |
1284 |
+++ b/gcc/Makefile.in |
1285 |
@@ -2018,7 +2018,7 @@ attribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ |
1286 |
|
1287 |
incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \ |
1288 |
intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \ |
1289 |
- $(MACHMODE_H) |
1290 |
+ $(MACHMODE_H) $(FLAGS_H) toplev.h |
1291 |
|
1292 |
CFLAGS-prefix.o += -DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s) |
1293 |
prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h prefix.h \ |
1294 |
--- a/gcc/common.opt |
1295 |
+++ b/gcc/common.opt |
1296 |
@@ -595,6 +595,10 @@ Wpedantic |
1297 |
Common Var(pedantic) Warning |
1298 |
Issue warnings needed for strict compliance to the standard |
1299 |
|
1300 |
+Wpoison-system-directories |
1301 |
+Common Var(flag_poison_system_directories) Init(1) Warning |
1302 |
+Warn for -I and -L options using system directories if cross compiling |
1303 |
+ |
1304 |
Wshadow |
1305 |
Common Var(warn_shadow) Warning |
1306 |
Warn when one local variable shadows another |
1307 |
--- a/gcc/config.in |
1308 |
+++ b/gcc/config.in |
1309 |
@@ -138,6 +138,12 @@ |
1310 |
#endif |
1311 |
|
1312 |
|
1313 |
+/* Define to warn for use of native system header directories */ |
1314 |
+#ifndef USED_FOR_TARGET |
1315 |
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES |
1316 |
+#endif |
1317 |
+ |
1318 |
+ |
1319 |
/* Define if you want all operations on RTL (the basic data structure of the |
1320 |
optimizer and back end) to be checked for dynamic type safety at runtime. |
1321 |
This is quite expensive. */ |
1322 |
--- a/gcc/configure |
1323 |
+++ b/gcc/configure |
1324 |
@@ -917,6 +917,7 @@ with_gc |
1325 |
with_system_zlib |
1326 |
enable_maintainer_mode |
1327 |
enable_version_specific_runtime_libs |
1328 |
+enable_poison_system_directories |
1329 |
enable_plugin |
1330 |
enable_libquadmath_support |
1331 |
with_linker_hash_style |
1332 |
@@ -1630,6 +1631,8 @@ Optional Features: |
1333 |
--enable-version-specific-runtime-libs |
1334 |
specify that runtime libraries should be installed |
1335 |
in a compiler-specific directory |
1336 |
+ --enable-poison-system-directories |
1337 |
+ warn for use of native system header directories |
1338 |
--enable-plugin enable plugin support |
1339 |
--disable-libquadmath-support |
1340 |
disable libquadmath support for Fortran |
1341 |
@@ -27103,6 +27106,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : |
1342 |
fi |
1343 |
|
1344 |
|
1345 |
+# Check whether --enable-poison-system-directories was given. |
1346 |
+if test "${enable_poison_system_directories+set}" = set; then : |
1347 |
+ enableval=$enable_poison_system_directories; |
1348 |
+else |
1349 |
+ enable_poison_system_directories=no |
1350 |
+fi |
1351 |
+ |
1352 |
+if test "x${enable_poison_system_directories}" = "xyes"; then |
1353 |
+ |
1354 |
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h |
1355 |
+ |
1356 |
+fi |
1357 |
+ |
1358 |
# Substitute configuration variables |
1359 |
|
1360 |
|
1361 |
--- a/gcc/configure.ac |
1362 |
+++ b/gcc/configure.ac |
1363 |
@@ -5063,6 +5063,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, |
1364 |
[specify that runtime libraries should be |
1365 |
installed in a compiler-specific directory])]) |
1366 |
|
1367 |
+AC_ARG_ENABLE([poison-system-directories], |
1368 |
+ AS_HELP_STRING([--enable-poison-system-directories], |
1369 |
+ [warn for use of native system header directories]),, |
1370 |
+ [enable_poison_system_directories=no]) |
1371 |
+if test "x${enable_poison_system_directories}" = "xyes"; then |
1372 |
+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], |
1373 |
+ [1], |
1374 |
+ [Define to warn for use of native system header directories]) |
1375 |
+fi |
1376 |
+ |
1377 |
# Substitute configuration variables |
1378 |
AC_SUBST(subdirs) |
1379 |
AC_SUBST(srcdir) |
1380 |
--- a/gcc/doc/invoke.texi |
1381 |
+++ b/gcc/doc/invoke.texi |
1382 |
@@ -258,6 +258,7 @@ Objective-C and Objective-C++ Dialects}. |
1383 |
-Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded @gol |
1384 |
-Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol |
1385 |
-Wpointer-arith -Wno-pointer-to-int-cast @gol |
1386 |
+-Wno-poison-system-directories @gol |
1387 |
-Wredundant-decls -Wno-return-local-addr @gol |
1388 |
-Wreturn-type -Wsequence-point -Wshadow @gol |
1389 |
-Wsign-compare -Wsign-conversion -Wsizeof-pointer-memaccess @gol |
1390 |
@@ -4007,6 +4008,14 @@ headers---for that, @option{-Wunknown-pragmas} must also be used. |
1391 |
for most targets, it is made up of code and thus requires the stack |
1392 |
to be made executable in order for the program to work properly. |
1393 |
|
1394 |
+@item -Wno-poison-system-directories |
1395 |
+@opindex Wno-poison-system-directories |
1396 |
+Do not warn for @option{-I} or @option{-L} options using system |
1397 |
+directories such as @file{/usr/include} when cross compiling. This |
1398 |
+option is intended for use in chroot environments when such |
1399 |
+directories contain the correct headers and libraries for the target |
1400 |
+system rather than the host. |
1401 |
+ |
1402 |
@item -Wfloat-equal |
1403 |
@opindex Wfloat-equal |
1404 |
@opindex Wno-float-equal |
1405 |
--- a/gcc/gcc.c |
1406 |
+++ b/gcc/gcc.c |
1407 |
@@ -740,6 +740,8 @@ proper position among the other output files. */ |
1408 |
"%{fuse-ld=*:-fuse-ld=%*}\ |
1409 |
%X %{o*} %{e*} %{N} %{n} %{r}\ |
1410 |
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\ |
1411 |
+ %{Wno-poison-system-directories:--no-poison-system-directories}\ |
1412 |
+ %{Werror=poison-system-directories:--error-poison-system-directories}\ |
1413 |
%{static:} %{L*} %(mfwrap) %(link_libgcc) " SANITIZER_EARLY_SPEC " %o\ |
1414 |
%{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\ |
1415 |
%{fgnu-tm:%:include(libitm.spec)%(link_itm)}\ |
1416 |
--- a/gcc/incpath.c |
1417 |
+++ b/gcc/incpath.c |
1418 |
@@ -28,6 +28,7 @@ |
1419 |
#include "intl.h" |
1420 |
#include "incpath.h" |
1421 |
#include "cppdefault.h" |
1422 |
+#include "diagnostic-core.h" |
1423 |
|
1424 |
/* Microsoft Windows does not natively support inodes. |
1425 |
VMS has non-numeric inodes. */ |
1426 |
@@ -382,6 +382,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) |
1427 |
} |
1428 |
fprintf (stderr, _("End of search list.\n")); |
1429 |
} |
1430 |
+ |
1431 |
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES |
1432 |
+ if (flag_poison_system_directories) |
1433 |
+ { |
1434 |
+ struct cpp_dir *p; |
1435 |
+ |
1436 |
+ for (p = heads[QUOTE]; p; p = p->next) |
1437 |
+ { |
1438 |
+ if ((!strncmp (p->name, "/usr/include", 12)) |
1439 |
+ || (!strncmp (p->name, "/usr/local/include", 18)) |
1440 |
+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) |
1441 |
+ || (!strncmp (p->name, "/sw/include", 11)) |
1442 |
+ || (!strncmp (p->name, "/opt/include", 12))) |
1443 |
+ warning (OPT_Wpoison_system_directories, |
1444 |
+ "include location \"%s\" is unsafe for " |
1445 |
+ "cross-compilation", |
1446 |
+ p->name); |
1447 |
+ } |
1448 |
+ } |
1449 |
+#endif |
1450 |
} |
1451 |
|
1452 |
/* Use given -I paths for #include "..." but not #include <...>, and |
1453 |
|
1454 |
|
1455 |
|
1456 |
1.1 src/patchsets/gcc/4.8.5/gentoo/74_all_gcc48_cloog-dl.patch |
1457 |
|
1458 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/74_all_gcc48_cloog-dl.patch?rev=1.1&view=markup |
1459 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/74_all_gcc48_cloog-dl.patch?rev=1.1&content-type=text/plain |
1460 |
|
1461 |
Index: 74_all_gcc48_cloog-dl.patch |
1462 |
=================================================================== |
1463 |
dlopen cloog-isl library rather than link to it directly. This prevents |
1464 |
cloog upgrades that change the soname from breaking the compiler. |
1465 |
|
1466 |
http://pkgs.fedoraproject.org/cgit/gcc.git/tree/gcc48-cloog-dl.patch |
1467 |
|
1468 |
|
1469 |
In FreeBSD dlopen is part of libc so we can't just hardcode -ldl. |
1470 |
|
1471 |
2013-03-30 Ryan Hill <dirtyepic@g.o> |
1472 |
|
1473 |
* configure.ac (DL_LIB): Check how to dlopen. |
1474 |
* configure: Regenerate. |
1475 |
* Makefile.in (BACKENDLIBS): Use DL_LIB. |
1476 |
|
1477 |
|
1478 |
--- a/gcc/Makefile.in |
1479 |
+++ b/gcc/Makefile.in |
1480 |
@@ -1020,7 +1020,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) |
1481 |
# and the system's installed libraries. |
1482 |
LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \ |
1483 |
$(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS) |
1484 |
-BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ |
1485 |
+BACKENDLIBS = $(if $(CLOOGLIBS),@DL_LIB@) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ |
1486 |
$(ZLIB) |
1487 |
# Any system libraries needed just for GNAT. |
1488 |
SYSLIBS = @GNAT_LIBEXC@ |
1489 |
@@ -3443,6 +3443,15 @@ $(common_out_object_file): $(common_out_file) $(CONFIG_H) $(SYSTEM_H) \ |
1490 |
$(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(OPTS_H) $(TM_H) $(TM_P_H) $(MACHMODE_H) |
1491 |
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \ |
1492 |
$< $(OUTPUT_OPTION) |
1493 |
+ |
1494 |
+graphite%.o : \ |
1495 |
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) |
1496 |
+graphite.o : \ |
1497 |
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) |
1498 |
+graphite%.o : \ |
1499 |
+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) |
1500 |
+graphite.o : \ |
1501 |
+ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) |
1502 |
# |
1503 |
# Generate header and source files from the machine description, |
1504 |
# and compile them. |
1505 |
--- a/gcc/configure |
1506 |
+++ b/gcc/configure |
1507 |
@@ -602,6 +602,7 @@ ac_subst_vars='LTLIBOBJS |
1508 |
LIBOBJS |
1509 |
enable_plugin |
1510 |
pluginlibs |
1511 |
+DL_LIB |
1512 |
CLOOGINC |
1513 |
CLOOGLIBS |
1514 |
ISLINC |
1515 |
@@ -27263,6 +27264,7 @@ $as_echo "unable to check" >&6; } |
1516 |
fi |
1517 |
|
1518 |
# Check -ldl |
1519 |
+ DL_LIB= |
1520 |
saved_LIBS="$LIBS" |
1521 |
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 |
1522 |
$as_echo_n "checking for library containing dlopen... " >&6; } |
1523 |
@@ -27322,9 +27324,11 @@ fi |
1524 |
|
1525 |
if test x"$ac_cv_search_dlopen" = x"-ldl"; then |
1526 |
pluginlibs="$pluginlibs -ldl" |
1527 |
+ DL_LIB=$ac_cv_search_dlopen |
1528 |
fi |
1529 |
LIBS="$saved_LIBS" |
1530 |
|
1531 |
+ |
1532 |
# Check that we can build shared objects with -fPIC -shared |
1533 |
saved_LDFLAGS="$LDFLAGS" |
1534 |
saved_CFLAGS="$CFLAGS" |
1535 |
--- a/gcc/configure.ac |
1536 |
+++ b/gcc/configure.ac |
1537 |
@@ -5212,12 +5212,15 @@ if test x"$enable_plugin" = x"yes"; then |
1538 |
fi |
1539 |
|
1540 |
# Check -ldl |
1541 |
+ DL_LIB= |
1542 |
saved_LIBS="$LIBS" |
1543 |
AC_SEARCH_LIBS([dlopen], [dl]) |
1544 |
if test x"$ac_cv_search_dlopen" = x"-ldl"; then |
1545 |
pluginlibs="$pluginlibs -ldl" |
1546 |
+ DL_LIB=$ac_cv_search_dlopen |
1547 |
fi |
1548 |
LIBS="$saved_LIBS" |
1549 |
+ AC_SUBST(DL_LIB) |
1550 |
|
1551 |
# Check that we can build shared objects with -fPIC -shared |
1552 |
saved_LDFLAGS="$LDFLAGS" |
1553 |
--- a/gcc/graphite-clast-to-gimple.c |
1554 |
+++ b/gcc/graphite-clast-to-gimple.c |
1555 |
@@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_for *loop, mpz_t low, mpz_t up) |
1556 |
from STMT_FOR. */ |
1557 |
|
1558 |
static tree |
1559 |
-type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip) |
1560 |
+type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip) |
1561 |
{ |
1562 |
mpz_t bound_one, bound_two; |
1563 |
tree lb_type, ub_type; |
1564 |
@@ -918,8 +918,8 @@ type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip) |
1565 |
mpz_init (bound_one); |
1566 |
mpz_init (bound_two); |
1567 |
|
1568 |
- lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two); |
1569 |
- ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two); |
1570 |
+ lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two); |
1571 |
+ ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two); |
1572 |
|
1573 |
mpz_clear (bound_one); |
1574 |
mpz_clear (bound_two); |
1575 |
--- a/gcc/graphite-poly.h |
1576 |
+++ b/gcc/graphite-poly.h |
1577 |
@@ -22,6 +22,396 @@ along with GCC; see the file COPYING3. If not see |
1578 |
#ifndef GCC_GRAPHITE_POLY_H |
1579 |
#define GCC_GRAPHITE_POLY_H |
1580 |
|
1581 |
+#include <isl/aff.h> |
1582 |
+#include <isl/schedule.h> |
1583 |
+#include <isl/ilp.h> |
1584 |
+#include <isl/flow.h> |
1585 |
+#include <isl/options.h> |
1586 |
+#include <cloog/isl/cloog.h> |
1587 |
+#include <dlfcn.h> |
1588 |
+#ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE |
1589 |
+#include <isl/deprecated/aff_int.h> |
1590 |
+#include <isl/deprecated/ilp_int.h> |
1591 |
+#include <isl/deprecated/constraint_int.h> |
1592 |
+#define DYNSYM_ZERO_DISTANCE DYNSYM (isl_band_member_is_coincident) |
1593 |
+#define NEW_DYNSYMS \ |
1594 |
+ DYNSYM (isl_schedule_constraints_compute_schedule); \ |
1595 |
+ DYNSYM (isl_schedule_constraints_on_domain); \ |
1596 |
+ DYNSYM (isl_schedule_constraints_set_coincidence); \ |
1597 |
+ DYNSYM (isl_schedule_constraints_set_proximity); \ |
1598 |
+ DYNSYM (isl_schedule_constraints_set_validity); |
1599 |
+#else |
1600 |
+#define DYNSYM_ZERO_DISTANCE DYNSYM (isl_band_member_is_zero_distance) |
1601 |
+#define NEW_DYNSYMS |
1602 |
+#endif |
1603 |
+#define DYNSYMS \ |
1604 |
+ DYNSYM (clast_pprint); \ |
1605 |
+ DYNSYM (cloog_clast_create_from_input); \ |
1606 |
+ DYNSYM (cloog_clast_free); \ |
1607 |
+ DYNSYM (cloog_domain_from_isl_set); \ |
1608 |
+ DYNSYM (cloog_input_alloc); \ |
1609 |
+ DYNSYM (cloog_isl_state_malloc); \ |
1610 |
+ DYNSYM (cloog_options_free); \ |
1611 |
+ DYNSYM (cloog_options_malloc); \ |
1612 |
+ DYNSYM (cloog_scattering_from_isl_map); \ |
1613 |
+ DYNSYM (cloog_state_free); \ |
1614 |
+ DYNSYM (cloog_union_domain_add_domain); \ |
1615 |
+ DYNSYM (cloog_union_domain_alloc); \ |
1616 |
+ DYNSYM (cloog_union_domain_set_name); \ |
1617 |
+ DYNSYM (isl_aff_add_coefficient_si); \ |
1618 |
+ DYNSYM (isl_aff_add_constant); \ |
1619 |
+ DYNSYM (isl_aff_free); \ |
1620 |
+ DYNSYM (isl_aff_get_coefficient); \ |
1621 |
+ DYNSYM (isl_aff_get_space); \ |
1622 |
+ DYNSYM (isl_aff_mod); \ |
1623 |
+ DYNSYM (isl_aff_set_coefficient_si); \ |
1624 |
+ DYNSYM (isl_aff_set_constant_si); \ |
1625 |
+ DYNSYM (isl_aff_zero_on_domain); \ |
1626 |
+ DYNSYM (isl_band_free); \ |
1627 |
+ DYNSYM (isl_band_get_children); \ |
1628 |
+ DYNSYM (isl_band_get_partial_schedule); \ |
1629 |
+ DYNSYM (isl_band_has_children); \ |
1630 |
+ DYNSYM (isl_band_list_free); \ |
1631 |
+ DYNSYM (isl_band_list_get_band); \ |
1632 |
+ DYNSYM (isl_band_list_get_ctx); \ |
1633 |
+ DYNSYM (isl_band_list_n_band); \ |
1634 |
+ DYNSYM_ZERO_DISTANCE; \ |
1635 |
+ DYNSYM (isl_band_n_member); \ |
1636 |
+ DYNSYM (isl_basic_map_add_constraint); \ |
1637 |
+ DYNSYM (isl_basic_map_project_out); \ |
1638 |
+ DYNSYM (isl_basic_map_universe); \ |
1639 |
+ DYNSYM (isl_constraint_set_coefficient); \ |
1640 |
+ DYNSYM (isl_constraint_set_coefficient_si); \ |
1641 |
+ DYNSYM (isl_constraint_set_constant); \ |
1642 |
+ DYNSYM (isl_constraint_set_constant_si); \ |
1643 |
+ DYNSYM (isl_ctx_alloc); \ |
1644 |
+ DYNSYM (isl_ctx_free); \ |
1645 |
+ DYNSYM (isl_equality_alloc); \ |
1646 |
+ DYNSYM (isl_id_alloc); \ |
1647 |
+ DYNSYM (isl_id_copy); \ |
1648 |
+ DYNSYM (isl_id_free); \ |
1649 |
+ DYNSYM (isl_inequality_alloc); \ |
1650 |
+ DYNSYM (isl_local_space_copy); \ |
1651 |
+ DYNSYM (isl_local_space_free); \ |
1652 |
+ DYNSYM (isl_local_space_from_space); \ |
1653 |
+ DYNSYM (isl_local_space_range); \ |
1654 |
+ DYNSYM (isl_map_add_constraint); \ |
1655 |
+ DYNSYM (isl_map_add_dims); \ |
1656 |
+ DYNSYM (isl_map_align_params); \ |
1657 |
+ DYNSYM (isl_map_apply_range); \ |
1658 |
+ DYNSYM (isl_map_copy); \ |
1659 |
+ DYNSYM (isl_map_dim); \ |
1660 |
+ DYNSYM (isl_map_dump); \ |
1661 |
+ DYNSYM (isl_map_equate); \ |
1662 |
+ DYNSYM (isl_map_fix_si); \ |
1663 |
+ DYNSYM (isl_map_flat_product); \ |
1664 |
+ DYNSYM (isl_map_flat_range_product); \ |
1665 |
+ DYNSYM (isl_map_free); \ |
1666 |
+ DYNSYM (isl_map_from_basic_map); \ |
1667 |
+ DYNSYM (isl_map_from_pw_aff); \ |
1668 |
+ DYNSYM (isl_map_from_union_map); \ |
1669 |
+ DYNSYM (isl_map_get_ctx); \ |
1670 |
+ DYNSYM (isl_map_get_space); \ |
1671 |
+ DYNSYM (isl_map_get_tuple_id); \ |
1672 |
+ DYNSYM (isl_map_insert_dims); \ |
1673 |
+ DYNSYM (isl_map_intersect); \ |
1674 |
+ DYNSYM (isl_map_intersect_domain); \ |
1675 |
+ DYNSYM (isl_map_intersect_range); \ |
1676 |
+ DYNSYM (isl_map_is_empty); \ |
1677 |
+ DYNSYM (isl_map_lex_ge); \ |
1678 |
+ DYNSYM (isl_map_lex_le); \ |
1679 |
+ DYNSYM (isl_map_n_out); \ |
1680 |
+ DYNSYM (isl_map_range); \ |
1681 |
+ DYNSYM (isl_map_set_tuple_id); \ |
1682 |
+ DYNSYM (isl_map_universe); \ |
1683 |
+ DYNSYM (isl_options_set_on_error); \ |
1684 |
+ DYNSYM (isl_options_set_schedule_fuse); \ |
1685 |
+ DYNSYM (isl_options_set_schedule_max_constant_term); \ |
1686 |
+ DYNSYM (isl_options_set_schedule_maximize_band_depth); \ |
1687 |
+ DYNSYM (isl_printer_free); \ |
1688 |
+ DYNSYM (isl_printer_print_aff); \ |
1689 |
+ DYNSYM (isl_printer_print_constraint); \ |
1690 |
+ DYNSYM (isl_printer_print_map); \ |
1691 |
+ DYNSYM (isl_printer_print_set); \ |
1692 |
+ DYNSYM (isl_printer_to_file); \ |
1693 |
+ DYNSYM (isl_pw_aff_add); \ |
1694 |
+ DYNSYM (isl_pw_aff_alloc); \ |
1695 |
+ DYNSYM (isl_pw_aff_copy); \ |
1696 |
+ DYNSYM (isl_pw_aff_eq_set); \ |
1697 |
+ DYNSYM (isl_pw_aff_free); \ |
1698 |
+ DYNSYM (isl_pw_aff_from_aff); \ |
1699 |
+ DYNSYM (isl_pw_aff_ge_set); \ |
1700 |
+ DYNSYM (isl_pw_aff_gt_set); \ |
1701 |
+ DYNSYM (isl_pw_aff_is_cst); \ |
1702 |
+ DYNSYM (isl_pw_aff_le_set); \ |
1703 |
+ DYNSYM (isl_pw_aff_lt_set); \ |
1704 |
+ DYNSYM (isl_pw_aff_mod); \ |
1705 |
+ DYNSYM (isl_pw_aff_mul); \ |
1706 |
+ DYNSYM (isl_pw_aff_ne_set); \ |
1707 |
+ DYNSYM (isl_pw_aff_nonneg_set); \ |
1708 |
+ DYNSYM (isl_pw_aff_set_tuple_id); \ |
1709 |
+ DYNSYM (isl_pw_aff_sub); \ |
1710 |
+ DYNSYM (isl_pw_aff_zero_set); \ |
1711 |
+ DYNSYM (isl_schedule_free); \ |
1712 |
+ DYNSYM (isl_schedule_get_band_forest); \ |
1713 |
+ DYNSYM (isl_set_add_constraint); \ |
1714 |
+ DYNSYM (isl_set_add_dims); \ |
1715 |
+ DYNSYM (isl_set_apply); \ |
1716 |
+ DYNSYM (isl_set_coalesce); \ |
1717 |
+ DYNSYM (isl_set_copy); \ |
1718 |
+ DYNSYM (isl_set_dim); \ |
1719 |
+ DYNSYM (isl_set_fix_si); \ |
1720 |
+ DYNSYM (isl_set_free); \ |
1721 |
+ DYNSYM (isl_set_from_cloog_domain); \ |
1722 |
+ DYNSYM (isl_set_get_space); \ |
1723 |
+ DYNSYM (isl_set_get_tuple_id); \ |
1724 |
+ DYNSYM (isl_set_intersect); \ |
1725 |
+ DYNSYM (isl_set_is_empty); \ |
1726 |
+ DYNSYM (isl_set_max); \ |
1727 |
+ DYNSYM (isl_set_min); \ |
1728 |
+ DYNSYM (isl_set_n_dim); \ |
1729 |
+ DYNSYM (isl_set_nat_universe); \ |
1730 |
+ DYNSYM (isl_set_project_out); \ |
1731 |
+ DYNSYM (isl_set_set_tuple_id); \ |
1732 |
+ DYNSYM (isl_set_universe); \ |
1733 |
+ DYNSYM (isl_space_add_dims); \ |
1734 |
+ DYNSYM (isl_space_alloc); \ |
1735 |
+ DYNSYM (isl_space_copy); \ |
1736 |
+ DYNSYM (isl_space_dim); \ |
1737 |
+ DYNSYM (isl_space_domain); \ |
1738 |
+ DYNSYM (isl_space_find_dim_by_id); \ |
1739 |
+ DYNSYM (isl_space_free); \ |
1740 |
+ DYNSYM (isl_space_from_domain); \ |
1741 |
+ DYNSYM (isl_space_get_tuple_id); \ |
1742 |
+ DYNSYM (isl_space_params_alloc); \ |
1743 |
+ DYNSYM (isl_space_range); \ |
1744 |
+ DYNSYM (isl_space_set_alloc); \ |
1745 |
+ DYNSYM (isl_space_set_dim_id); \ |
1746 |
+ DYNSYM (isl_space_set_tuple_id); \ |
1747 |
+ DYNSYM (isl_union_map_add_map); \ |
1748 |
+ DYNSYM (isl_union_map_align_params); \ |
1749 |
+ DYNSYM (isl_union_map_apply_domain); \ |
1750 |
+ DYNSYM (isl_union_map_apply_range); \ |
1751 |
+ DYNSYM (isl_union_map_compute_flow); \ |
1752 |
+ DYNSYM (isl_union_map_copy); \ |
1753 |
+ DYNSYM (isl_union_map_empty); \ |
1754 |
+ DYNSYM (isl_union_map_flat_range_product); \ |
1755 |
+ DYNSYM (isl_union_map_foreach_map); \ |
1756 |
+ DYNSYM (isl_union_map_free); \ |
1757 |
+ DYNSYM (isl_union_map_from_map); \ |
1758 |
+ DYNSYM (isl_union_map_get_ctx); \ |
1759 |
+ DYNSYM (isl_union_map_get_space); \ |
1760 |
+ DYNSYM (isl_union_map_gist_domain); \ |
1761 |
+ DYNSYM (isl_union_map_gist_range); \ |
1762 |
+ DYNSYM (isl_union_map_intersect_domain); \ |
1763 |
+ DYNSYM (isl_union_map_is_empty); \ |
1764 |
+ DYNSYM (isl_union_map_subtract); \ |
1765 |
+ DYNSYM (isl_union_map_union); \ |
1766 |
+ DYNSYM (isl_union_set_add_set); \ |
1767 |
+ DYNSYM (isl_union_set_compute_schedule); \ |
1768 |
+ DYNSYM (isl_union_set_copy); \ |
1769 |
+ DYNSYM (isl_union_set_empty); \ |
1770 |
+ DYNSYM (isl_union_set_from_set); \ |
1771 |
+ DYNSYM (stmt_ass); \ |
1772 |
+ DYNSYM (stmt_block); \ |
1773 |
+ DYNSYM (stmt_for); \ |
1774 |
+ DYNSYM (stmt_guard); \ |
1775 |
+ DYNSYM (stmt_root); \ |
1776 |
+ DYNSYM (stmt_user); |
1777 |
+extern struct cloog_pointers_s__ |
1778 |
+{ |
1779 |
+ bool inited; |
1780 |
+ void *h; |
1781 |
+#define DYNSYM(x) __typeof (x) *p_##x |
1782 |
+ DYNSYMS |
1783 |
+ NEW_DYNSYMS |
1784 |
+#undef DYNSYM |
1785 |
+} cloog_pointers__; |
1786 |
+ |
1787 |
+#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc) |
1788 |
+#define clast_pprint (*cloog_pointers__.p_clast_pprint) |
1789 |
+#define cloog_clast_create_from_input (*cloog_pointers__.p_cloog_clast_create_from_input) |
1790 |
+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free) |
1791 |
+#define cloog_domain_from_isl_set (*cloog_pointers__.p_cloog_domain_from_isl_set) |
1792 |
+#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc) |
1793 |
+#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc) |
1794 |
+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free) |
1795 |
+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc) |
1796 |
+#define cloog_scattering_from_isl_map (*cloog_pointers__.p_cloog_scattering_from_isl_map) |
1797 |
+#define cloog_state_free (*cloog_pointers__.p_cloog_state_free) |
1798 |
+#define cloog_union_domain_add_domain (*cloog_pointers__.p_cloog_union_domain_add_domain) |
1799 |
+#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc) |
1800 |
+#define cloog_union_domain_set_name (*cloog_pointers__.p_cloog_union_domain_set_name) |
1801 |
+#define isl_aff_add_coefficient_si (*cloog_pointers__.p_isl_aff_add_coefficient_si) |
1802 |
+#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant) |
1803 |
+#define isl_aff_free (*cloog_pointers__.p_isl_aff_free) |
1804 |
+#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient) |
1805 |
+#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space) |
1806 |
+#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod) |
1807 |
+#define isl_aff_set_coefficient_si (*cloog_pointers__.p_isl_aff_set_coefficient_si) |
1808 |
+#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si) |
1809 |
+#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain) |
1810 |
+#define isl_band_free (*cloog_pointers__.p_isl_band_free) |
1811 |
+#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children) |
1812 |
+#define isl_band_get_partial_schedule (*cloog_pointers__.p_isl_band_get_partial_schedule) |
1813 |
+#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children) |
1814 |
+#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free) |
1815 |
+#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band) |
1816 |
+#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx) |
1817 |
+#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band) |
1818 |
+#ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE |
1819 |
+#define isl_band_member_is_coincident (*cloog_pointers__.p_isl_band_member_is_coincident) |
1820 |
+#else |
1821 |
+#define isl_band_member_is_zero_distance (*cloog_pointers__.p_isl_band_member_is_zero_distance) |
1822 |
+#endif |
1823 |
+#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member) |
1824 |
+#define isl_basic_map_add_constraint (*cloog_pointers__.p_isl_basic_map_add_constraint) |
1825 |
+#define isl_basic_map_project_out (*cloog_pointers__.p_isl_basic_map_project_out) |
1826 |
+#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe) |
1827 |
+#define isl_constraint_set_coefficient (*cloog_pointers__.p_isl_constraint_set_coefficient) |
1828 |
+#define isl_constraint_set_coefficient_si (*cloog_pointers__.p_isl_constraint_set_coefficient_si) |
1829 |
+#define isl_constraint_set_constant (*cloog_pointers__.p_isl_constraint_set_constant) |
1830 |
+#define isl_constraint_set_constant_si (*cloog_pointers__.p_isl_constraint_set_constant_si) |
1831 |
+#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc) |
1832 |
+#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free) |
1833 |
+#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc) |
1834 |
+#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc) |
1835 |
+#define isl_id_copy (*cloog_pointers__.p_isl_id_copy) |
1836 |
+#define isl_id_free (*cloog_pointers__.p_isl_id_free) |
1837 |
+#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc) |
1838 |
+#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy) |
1839 |
+#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free) |
1840 |
+#define isl_local_space_from_space (*cloog_pointers__.p_isl_local_space_from_space) |
1841 |
+#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range) |
1842 |
+#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint) |
1843 |
+#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims) |
1844 |
+#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params) |
1845 |
+#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range) |
1846 |
+#define isl_map_copy (*cloog_pointers__.p_isl_map_copy) |
1847 |
+#define isl_map_dim (*cloog_pointers__.p_isl_map_dim) |
1848 |
+#define isl_map_dump (*cloog_pointers__.p_isl_map_dump) |
1849 |
+#define isl_map_equate (*cloog_pointers__.p_isl_map_equate) |
1850 |
+#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si) |
1851 |
+#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product) |
1852 |
+#define isl_map_flat_range_product (*cloog_pointers__.p_isl_map_flat_range_product) |
1853 |
+#define isl_map_free (*cloog_pointers__.p_isl_map_free) |
1854 |
+#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map) |
1855 |
+#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff) |
1856 |
+#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map) |
1857 |
+#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx) |
1858 |
+#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space) |
1859 |
+#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id) |
1860 |
+#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims) |
1861 |
+#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect) |
1862 |
+#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain) |
1863 |
+#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range) |
1864 |
+#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty) |
1865 |
+#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge) |
1866 |
+#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le) |
1867 |
+#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out) |
1868 |
+#define isl_map_range (*cloog_pointers__.p_isl_map_range) |
1869 |
+#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id) |
1870 |
+#define isl_map_universe (*cloog_pointers__.p_isl_map_universe) |
1871 |
+#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error) |
1872 |
+#define isl_options_set_schedule_fuse (*cloog_pointers__.p_isl_options_set_schedule_fuse) |
1873 |
+#define isl_options_set_schedule_max_constant_term (*cloog_pointers__.p_isl_options_set_schedule_max_constant_term) |
1874 |
+#define isl_options_set_schedule_maximize_band_depth (*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth) |
1875 |
+#define isl_printer_free (*cloog_pointers__.p_isl_printer_free) |
1876 |
+#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff) |
1877 |
+#define isl_printer_print_constraint (*cloog_pointers__.p_isl_printer_print_constraint) |
1878 |
+#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map) |
1879 |
+#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set) |
1880 |
+#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file) |
1881 |
+#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add) |
1882 |
+#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc) |
1883 |
+#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy) |
1884 |
+#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set) |
1885 |
+#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free) |
1886 |
+#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff) |
1887 |
+#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set) |
1888 |
+#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set) |
1889 |
+#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst) |
1890 |
+#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set) |
1891 |
+#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set) |
1892 |
+#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod) |
1893 |
+#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul) |
1894 |
+#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set) |
1895 |
+#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set) |
1896 |
+#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id) |
1897 |
+#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub) |
1898 |
+#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set) |
1899 |
+#define isl_schedule_constraints_compute_schedule (*cloog_pointers__.p_isl_schedule_constraints_compute_schedule) |
1900 |
+#define isl_schedule_constraints_on_domain (*cloog_pointers__.p_isl_schedule_constraints_on_domain) |
1901 |
+#define isl_schedule_constraints_set_coincidence (*cloog_pointers__.p_isl_schedule_constraints_set_coincidence) |
1902 |
+#define isl_schedule_constraints_set_proximity (*cloog_pointers__.p_isl_schedule_constraints_set_proximity) |
1903 |
+#define isl_schedule_constraints_set_validity (*cloog_pointers__.p_isl_schedule_constraints_set_validity) |
1904 |
+#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free) |
1905 |
+#define isl_schedule_get_band_forest (*cloog_pointers__.p_isl_schedule_get_band_forest) |
1906 |
+#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint) |
1907 |
+#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims) |
1908 |
+#define isl_set_apply (*cloog_pointers__.p_isl_set_apply) |
1909 |
+#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce) |
1910 |
+#define isl_set_copy (*cloog_pointers__.p_isl_set_copy) |
1911 |
+#define isl_set_dim (*cloog_pointers__.p_isl_set_dim) |
1912 |
+#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si) |
1913 |
+#define isl_set_free (*cloog_pointers__.p_isl_set_free) |
1914 |
+#define isl_set_from_cloog_domain (*cloog_pointers__.p_isl_set_from_cloog_domain) |
1915 |
+#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space) |
1916 |
+#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id) |
1917 |
+#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect) |
1918 |
+#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty) |
1919 |
+#define isl_set_max (*cloog_pointers__.p_isl_set_max) |
1920 |
+#define isl_set_min (*cloog_pointers__.p_isl_set_min) |
1921 |
+#define isl_set_n_dim (*cloog_pointers__.p_isl_set_n_dim) |
1922 |
+#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe) |
1923 |
+#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out) |
1924 |
+#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id) |
1925 |
+#define isl_set_universe (*cloog_pointers__.p_isl_set_universe) |
1926 |
+#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims) |
1927 |
+#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc) |
1928 |
+#define isl_space_copy (*cloog_pointers__.p_isl_space_copy) |
1929 |
+#define isl_space_dim (*cloog_pointers__.p_isl_space_dim) |
1930 |
+#define isl_space_domain (*cloog_pointers__.p_isl_space_domain) |
1931 |
+#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id) |
1932 |
+#define isl_space_free (*cloog_pointers__.p_isl_space_free) |
1933 |
+#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain) |
1934 |
+#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id) |
1935 |
+#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc) |
1936 |
+#define isl_space_range (*cloog_pointers__.p_isl_space_range) |
1937 |
+#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc) |
1938 |
+#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id) |
1939 |
+#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id) |
1940 |
+#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map) |
1941 |
+#define isl_union_map_align_params (*cloog_pointers__.p_isl_union_map_align_params) |
1942 |
+#define isl_union_map_apply_domain (*cloog_pointers__.p_isl_union_map_apply_domain) |
1943 |
+#define isl_union_map_apply_range (*cloog_pointers__.p_isl_union_map_apply_range) |
1944 |
+#define isl_union_map_compute_flow (*cloog_pointers__.p_isl_union_map_compute_flow) |
1945 |
+#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy) |
1946 |
+#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty) |
1947 |
+#define isl_union_map_flat_range_product (*cloog_pointers__.p_isl_union_map_flat_range_product) |
1948 |
+#define isl_union_map_foreach_map (*cloog_pointers__.p_isl_union_map_foreach_map) |
1949 |
+#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free) |
1950 |
+#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map) |
1951 |
+#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx) |
1952 |
+#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space) |
1953 |
+#define isl_union_map_gist_domain (*cloog_pointers__.p_isl_union_map_gist_domain) |
1954 |
+#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range) |
1955 |
+#define isl_union_map_intersect_domain (*cloog_pointers__.p_isl_union_map_intersect_domain) |
1956 |
+#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty) |
1957 |
+#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract) |
1958 |
+#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union) |
1959 |
+#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set) |
1960 |
+#define isl_union_set_compute_schedule (*cloog_pointers__.p_isl_union_set_compute_schedule) |
1961 |
+#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy) |
1962 |
+#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty) |
1963 |
+#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set) |
1964 |
+#define stmt_ass (*cloog_pointers__.p_stmt_ass) |
1965 |
+#define stmt_block (*cloog_pointers__.p_stmt_block) |
1966 |
+#define stmt_for (*cloog_pointers__.p_stmt_for) |
1967 |
+#define stmt_guard (*cloog_pointers__.p_stmt_guard) |
1968 |
+#define stmt_root (*cloog_pointers__.p_stmt_root) |
1969 |
+#define stmt_user (*cloog_pointers__.p_stmt_user) |
1970 |
+ |
1971 |
typedef struct poly_dr *poly_dr_p; |
1972 |
|
1973 |
typedef struct poly_bb *poly_bb_p; |
1974 |
--- a/gcc/graphite.c |
1975 |
+++ b/gcc/graphite.c |
1976 |
@@ -65,6 +65,34 @@ along with GCC; see the file COPYING3. If not see |
1977 |
|
1978 |
CloogState *cloog_state; |
1979 |
|
1980 |
+__typeof (cloog_pointers__) cloog_pointers__; |
1981 |
+ |
1982 |
+static bool |
1983 |
+init_cloog_pointers (void) |
1984 |
+{ |
1985 |
+ void *h; |
1986 |
+ |
1987 |
+ if (cloog_pointers__.inited) |
1988 |
+ return cloog_pointers__.h != NULL; |
1989 |
+ h = dlopen ("libcloog-isl.so.4", RTLD_LAZY); |
1990 |
+ cloog_pointers__.h = h; |
1991 |
+ if (h == NULL) |
1992 |
+ return false; |
1993 |
+#define DYNSYM(x) \ |
1994 |
+ do \ |
1995 |
+ { \ |
1996 |
+ union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \ |
1997 |
+ u.q = dlsym (h, #x); \ |
1998 |
+ if (u.q == NULL) \ |
1999 |
+ return false; \ |
2000 |
+ cloog_pointers__.p_##x = u.p; \ |
2001 |
+ } \ |
2002 |
+ while (0) |
2003 |
+ DYNSYMS |
2004 |
+#undef DYNSYM |
2005 |
+ return true; |
2006 |
+} |
2007 |
+ |
2008 |
/* Print global statistics to FILE. */ |
2009 |
|
2010 |
static void |
2011 |
@@ -263,6 +291,15 @@ graphite_transform_loops (void) |
2012 |
if (parallelized_function_p (cfun->decl)) |
2013 |
return; |
2014 |
|
2015 |
+ if (number_of_loops () <= 1) |
2016 |
+ return; |
2017 |
+ |
2018 |
+ if (!init_cloog_pointers ()) |
2019 |
+ { |
2020 |
+ sorry ("Graphite loop optimizations cannot be used"); |
2021 |
+ return; |
2022 |
+ } |
2023 |
+ |
2024 |
ctx = isl_ctx_alloc (); |
2025 |
isl_options_set_on_error(ctx, ISL_ON_ERROR_ABORT); |
2026 |
if (!graphite_initialize (ctx)) |
2027 |
|
2028 |
|
2029 |
|
2030 |
1.1 src/patchsets/gcc/4.8.5/gentoo/90_all_pr55930-dependency-tracking.patch |
2031 |
|
2032 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/90_all_pr55930-dependency-tracking.patch?rev=1.1&view=markup |
2033 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/90_all_pr55930-dependency-tracking.patch?rev=1.1&content-type=text/plain |
2034 |
|
2035 |
Index: 90_all_pr55930-dependency-tracking.patch |
2036 |
=================================================================== |
2037 |
libatomic build failure if configured with --disable-dependency-tracking |
2038 |
load_n.c:115:1: fatal error: opening dependency file .deps/load_1_.lo.Ppo: No such file or directory |
2039 |
|
2040 |
https://bugs.gentoo.org/463463 |
2041 |
http://gcc.gnu.org/PR55930 |
2042 |
|
2043 |
--- a/libatomic/Makefile.in |
2044 |
+++ b/libatomic/Makefile.in |
2045 |
@@ -298,7 +298,8 @@ PAT_N = $(word 2,$(PAT_SPLIT)) |
2046 |
PAT_S = $(word 3,$(PAT_SPLIT)) |
2047 |
IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) |
2048 |
IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) |
2049 |
-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo |
2050 |
+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo |
2051 |
+@AMDEP_FALSE@M_DEPS = |
2052 |
M_SIZE = -DN=$(PAT_N) |
2053 |
M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) |
2054 |
M_FILE = $(PAT_BASE)_n.c |
2055 |
|
2056 |
|
2057 |
|
2058 |
1.1 src/patchsets/gcc/4.8.5/gentoo/91_all_pr61538-atomic-compare-exchange.patch |
2059 |
|
2060 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/91_all_pr61538-atomic-compare-exchange.patch?rev=1.1&view=markup |
2061 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/91_all_pr61538-atomic-compare-exchange.patch?rev=1.1&content-type=text/plain |
2062 |
|
2063 |
Index: 91_all_pr61538-atomic-compare-exchange.patch |
2064 |
=================================================================== |
2065 |
2015-02-19 Joshua Kinard <kumba@g.o> |
2066 |
|
2067 |
Fix __atomic_* builtins broken on R10000-based MIPS systems |
2068 |
PR61538 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61538 |
2069 |
Bug 516548 https://bugs.gentoo.org/516548 |
2070 |
|
2071 |
--- a/gcc/config/mips/mips.c 2014-03-08 04:27:23.000000000 -0500 |
2072 |
+++ b/gcc/config/mips/mips.c 2015-02-18 06:30:22.365154629 -0500 |
2073 |
@@ -12867,7 +12867,14 @@ mips_process_sync_loop (rtx insn, rtx *o |
2074 |
This will sometimes be a delayed branch; see the write code below |
2075 |
for details. */ |
2076 |
mips_multi_add_insn (is_64bit_p ? "scd\t%0,%1" : "sc\t%0,%1", at, mem, NULL); |
2077 |
- mips_multi_add_insn ("beq%?\t%0,%.,1b", at, NULL); |
2078 |
+ |
2079 |
+ /* When using branch likely (-mfix-r10000), the delay slot instruction |
2080 |
+ will be annulled on false. The normal delay slot instructions |
2081 |
+ calculate the overall result of the atomic operation and must not |
2082 |
+ be annulled. To ensure this behaviour unconditionally use a NOP |
2083 |
+ in the delay slot for the branch likely case. */ |
2084 |
+ |
2085 |
+ mips_multi_add_insn ("beq%?\t%0,%.,1b%~", at, NULL); |
2086 |
|
2087 |
/* if (INSN1 != MOVE && INSN1 != LI) NEWVAL = $TMP3 [delay slot]. */ |
2088 |
if (insn1 != SYNC_INSN1_MOVE && insn1 != SYNC_INSN1_LI && tmp3 != newval) |
2089 |
@@ -12875,7 +12882,7 @@ mips_process_sync_loop (rtx insn, rtx *o |
2090 |
mips_multi_copy_insn (tmp3_insn); |
2091 |
mips_multi_set_operand (mips_multi_last_index (), 0, newval); |
2092 |
} |
2093 |
- else if (!(required_oldval && cmp)) |
2094 |
+ else if (!(required_oldval && cmp) && !mips_branch_likely) |
2095 |
mips_multi_add_insn ("nop", NULL); |
2096 |
|
2097 |
/* CMP = 1 -- either standalone or in a delay slot. */ |
2098 |
@@ -12899,12 +12906,12 @@ mips_process_sync_loop (rtx insn, rtx *o |
2099 |
const char * |
2100 |
mips_output_sync_loop (rtx insn, rtx *operands) |
2101 |
{ |
2102 |
- mips_process_sync_loop (insn, operands); |
2103 |
- |
2104 |
/* Use branch-likely instructions to work around the LL/SC R10000 |
2105 |
errata. */ |
2106 |
mips_branch_likely = TARGET_FIX_R10000; |
2107 |
|
2108 |
+ mips_process_sync_loop (insn, operands); |
2109 |
+ |
2110 |
mips_push_asm_switch (&mips_noreorder); |
2111 |
mips_push_asm_switch (&mips_nomacro); |
2112 |
mips_push_asm_switch (&mips_noat); |
2113 |
@@ -12926,6 +12933,9 @@ mips_output_sync_loop (rtx insn, rtx *op |
2114 |
unsigned int |
2115 |
mips_sync_loop_insns (rtx insn, rtx *operands) |
2116 |
{ |
2117 |
+ /* Use branch-likely instructions to work around the LL/SC R10000 |
2118 |
+ errata. */ |
2119 |
+ mips_branch_likely = TARGET_FIX_R10000; |
2120 |
mips_process_sync_loop (insn, operands); |
2121 |
return mips_multi_num_insns; |
2122 |
} |
2123 |
|
2124 |
|
2125 |
|
2126 |
1.1 src/patchsets/gcc/4.8.5/gentoo/92_all_freebsd-pie.patch |
2127 |
|
2128 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/92_all_freebsd-pie.patch?rev=1.1&view=markup |
2129 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/92_all_freebsd-pie.patch?rev=1.1&content-type=text/plain |
2130 |
|
2131 |
Index: 92_all_freebsd-pie.patch |
2132 |
=================================================================== |
2133 |
https://bugs.gentoo.org/415185 |
2134 |
http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00555.html |
2135 |
|
2136 |
From: Alexis Ballier <aballier@g.o> |
2137 |
To: gcc-patches@×××××××.org |
2138 |
Cc: Alexis Ballier <aballier@g.o> |
2139 |
Date: Tue, 8 May 2012 09:53:43 -0400 |
2140 |
Subject: [PATCH] gcc/config/freebsd-spec.h: Fix building PIE executables. Link them with crt{begin,end}S.o and Scrt1.o which are PIC instead of crt{begin,end}.o and crt1.o which are not. Spec synced from gnu-user.h. |
2141 |
|
2142 |
gcc/config/i386/freebsd.h: Likewise. |
2143 |
--- |
2144 |
gcc/config/freebsd-spec.h | 9 +++------ |
2145 |
gcc/config/i386/freebsd.h | 9 +++------ |
2146 |
2 files changed, 6 insertions(+), 12 deletions(-) |
2147 |
|
2148 |
--- a/gcc/config/freebsd-spec.h |
2149 |
+++ b/gcc/config/freebsd-spec.h |
2150 |
@@ -64,11 +64,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
2151 |
before entering `main'. */ |
2152 |
|
2153 |
#define FBSD_STARTFILE_SPEC \ |
2154 |
- "%{!shared: \ |
2155 |
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ |
2156 |
- %{!p:%{profile:gcrt1.o%s} \ |
2157 |
- %{!profile:crt1.o%s}}}} \ |
2158 |
- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" |
2159 |
+ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \ |
2160 |
+ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" |
2161 |
|
2162 |
/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on |
2163 |
the magical crtend.o file (see crtstuff.c) which provides part of |
2164 |
@@ -77,7 +74,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
2165 |
`crtn.o'. */ |
2166 |
|
2167 |
#define FBSD_ENDFILE_SPEC \ |
2168 |
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" |
2169 |
+ "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" |
2170 |
|
2171 |
/* Provide a LIB_SPEC appropriate for FreeBSD as configured and as |
2172 |
required by the user-land thread model. Before __FreeBSD_version |
2173 |
--- a/gcc/config/i386/freebsd.h |
2174 |
+++ b/gcc/config/i386/freebsd.h |
2175 |
@@ -67,11 +67,8 @@ along with GCC; see the file COPYING3. If not see |
2176 |
|
2177 |
#undef STARTFILE_SPEC |
2178 |
#define STARTFILE_SPEC \ |
2179 |
- "%{!shared: \ |
2180 |
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ |
2181 |
- %{!p:%{profile:gcrt1.o%s} \ |
2182 |
- %{!profile:crt1.o%s}}}} \ |
2183 |
- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" |
2184 |
+ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \ |
2185 |
+ crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" |
2186 |
|
2187 |
/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on |
2188 |
the magical crtend.o file (see crtstuff.c) which provides part of |
2189 |
@@ -81,7 +78,7 @@ along with GCC; see the file COPYING3. If not see |
2190 |
|
2191 |
#undef ENDFILE_SPEC |
2192 |
#define ENDFILE_SPEC \ |
2193 |
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" |
2194 |
+ "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" |
2195 |
|
2196 |
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support |
2197 |
for the special GCC options -static and -shared, which allow us to |
2198 |
-- |
2199 |
1.7.8.6 |
2200 |
|
2201 |
|
2202 |
|
2203 |
1.1 src/patchsets/gcc/4.8.5/gentoo/93_all_4.9.0_pr60155.patch |
2204 |
|
2205 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/93_all_4.9.0_pr60155.patch?rev=1.1&view=markup |
2206 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/93_all_4.9.0_pr60155.patch?rev=1.1&content-type=text/plain |
2207 |
|
2208 |
Index: 93_all_4.9.0_pr60155.patch |
2209 |
=================================================================== |
2210 |
[ICE/4.8] building net-misc/openssh-6.6_p1 hits get_pressure_class_and_nregs at gcse.c:3438 on alpha |
2211 |
https://bugs.gentoo.org/show_bug.cgi?id=512586 |
2212 |
https://gcc.gnu.org/PR60155 |
2213 |
|
2214 |
|
2215 |
commit 97f436b3eac628b0ec06d01ea5b8e6426b51e0f4 |
2216 |
Author: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> |
2217 |
Date: Fri Apr 4 22:25:51 2014 +0000 |
2218 |
|
2219 |
PR rtl-optimization/60155 |
2220 |
* gcse.c (record_set_data): New function. |
2221 |
(single_set_gcse): New function. |
2222 |
(gcse_emit_move_after): Use single_set_gcse instead of single_set. |
2223 |
(hoist_code): Likewise. |
2224 |
(get_pressure_class_and_nregs): Likewise. |
2225 |
|
2226 |
|
2227 |
|
2228 |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209134 138bc75d-0d04-0410-961f-82ee72b054a4 |
2229 |
--- |
2230 |
gcc/ChangeLog | 9 ++++++++ |
2231 |
gcc/gcse.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ |
2232 |
2 files changed, 73 insertions(+), 7 deletions(-) |
2233 |
|
2234 |
--- a/gcc/gcse.c |
2235 |
+++ b/gcc/gcse.c |
2236 |
@@ -2502,6 +2502,65 @@ pre_insert_copies (void) |
2237 |
} |
2238 |
} |
2239 |
|
2240 |
+struct set_data |
2241 |
+{ |
2242 |
+ rtx insn; |
2243 |
+ const_rtx set; |
2244 |
+ int nsets; |
2245 |
+}; |
2246 |
+ |
2247 |
+/* Increment number of sets and record set in DATA. */ |
2248 |
+ |
2249 |
+static void |
2250 |
+record_set_data (rtx dest, const_rtx set, void *data) |
2251 |
+{ |
2252 |
+ struct set_data *s = (struct set_data *)data; |
2253 |
+ |
2254 |
+ if (GET_CODE (set) == SET) |
2255 |
+ { |
2256 |
+ /* We allow insns having multiple sets, where all but one are |
2257 |
+ dead as single set insns. In the common case only a single |
2258 |
+ set is present, so we want to avoid checking for REG_UNUSED |
2259 |
+ notes unless necessary. */ |
2260 |
+ if (s->nsets == 1 |
2261 |
+ && find_reg_note (s->insn, REG_UNUSED, SET_DEST (s->set)) |
2262 |
+ && !side_effects_p (s->set)) |
2263 |
+ s->nsets = 0; |
2264 |
+ |
2265 |
+ if (!s->nsets) |
2266 |
+ { |
2267 |
+ /* Record this set. */ |
2268 |
+ s->nsets += 1; |
2269 |
+ s->set = set; |
2270 |
+ } |
2271 |
+ else if (!find_reg_note (s->insn, REG_UNUSED, dest) |
2272 |
+ || side_effects_p (set)) |
2273 |
+ s->nsets += 1; |
2274 |
+ } |
2275 |
+} |
2276 |
+ |
2277 |
+static const_rtx |
2278 |
+single_set_gcse (rtx insn) |
2279 |
+{ |
2280 |
+ struct set_data s; |
2281 |
+ rtx pattern; |
2282 |
+ |
2283 |
+ gcc_assert (INSN_P (insn)); |
2284 |
+ |
2285 |
+ /* Optimize common case. */ |
2286 |
+ pattern = PATTERN (insn); |
2287 |
+ if (GET_CODE (pattern) == SET) |
2288 |
+ return pattern; |
2289 |
+ |
2290 |
+ s.insn = insn; |
2291 |
+ s.nsets = 0; |
2292 |
+ note_stores (pattern, record_set_data, &s); |
2293 |
+ |
2294 |
+ /* Considered invariant insns have exactly one set. */ |
2295 |
+ gcc_assert (s.nsets == 1); |
2296 |
+ return s.set; |
2297 |
+} |
2298 |
+ |
2299 |
/* Emit move from SRC to DEST noting the equivalence with expression computed |
2300 |
in INSN. */ |
2301 |
|
2302 |
@@ -2509,7 +2568,8 @@ static rtx |
2303 |
gcse_emit_move_after (rtx dest, rtx src, rtx insn) |
2304 |
{ |
2305 |
rtx new_rtx; |
2306 |
- rtx set = single_set (insn), set2; |
2307 |
+ const_rtx set = single_set_gcse (insn); |
2308 |
+ rtx set2; |
2309 |
rtx note; |
2310 |
rtx eqv = NULL_RTX; |
2311 |
|
2312 |
@@ -3369,13 +3429,12 @@ hoist_code (void) |
2313 |
FOR_EACH_VEC_ELT (occrs_to_hoist, j, occr) |
2314 |
{ |
2315 |
rtx insn; |
2316 |
- rtx set; |
2317 |
+ const_rtx set; |
2318 |
|
2319 |
gcc_assert (!occr->deleted_p); |
2320 |
|
2321 |
insn = occr->insn; |
2322 |
- set = single_set (insn); |
2323 |
- gcc_assert (set); |
2324 |
+ set = single_set_gcse (insn); |
2325 |
|
2326 |
/* Create a pseudo-reg to store the result of reaching |
2327 |
expressions into. Get the mode for the new pseudo |
2328 |
@@ -3456,10 +3515,8 @@ get_pressure_class_and_nregs (rtx insn, int *nregs) |
2329 |
{ |
2330 |
rtx reg; |
2331 |
enum reg_class pressure_class; |
2332 |
- rtx set = single_set (insn); |
2333 |
+ const_rtx set = single_set_gcse (insn); |
2334 |
|
2335 |
- /* Considered invariant insns have only one set. */ |
2336 |
- gcc_assert (set != NULL_RTX); |
2337 |
reg = SET_DEST (set); |
2338 |
if (GET_CODE (reg) == SUBREG) |
2339 |
reg = SUBREG_REG (reg); |
2340 |
|
2341 |
|
2342 |
|
2343 |
1.1 src/patchsets/gcc/4.8.5/gentoo/93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch |
2344 |
|
2345 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch?rev=1.1&view=markup |
2346 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch?rev=1.1&content-type=text/plain |
2347 |
|
2348 |
Index: 93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch |
2349 |
=================================================================== |
2350 |
https://gcc.gnu.org/ml/gcc-patches/2014-11/msg03092.html |
2351 |
https://gcc.gnu.org/PR57125 |
2352 |
https://gcc.gnu.org/PR61899 |
2353 |
https://bugs.gentoo.org/463796 |
2354 |
https://bugs.gentoo.org/487398 |
2355 |
https://bugs.gentoo.org/545010 |
2356 |
|
2357 |
fix parallel build issues around config.h/bconfig.h inclusion |
2358 |
|
2359 |
note: this also includes: |
2360 |
commit ea38f4be892b22b61a540a102bed374ddb381b9a |
2361 |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202894 138bc75d-0d04-0410-961f-82ee72b054a4 |
2362 |
which adds to-wrapper.o to ALL_HOST_BACKEND_OBJS |
2363 |
|
2364 |
From ed89620f0e3de714864805f5d29dbab0341a1746 Mon Sep 17 00:00:00 2001 |
2365 |
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> |
2366 |
Date: Wed, 3 Dec 2014 16:44:27 +0000 |
2367 |
Subject: [PATCH] Fix building of gengtype |
2368 |
|
2369 |
Found bootstrap failures even with this patch (dunno what changed on my box |
2370 |
that I started getting these last night, make has not changed), that time |
2371 |
with errors.o and gcc-ar.o. |
2372 |
The generated headers are solved these days in automatic dependencies world |
2373 |
through |
2374 |
# In order for parallel make to really start compiling the expensive |
2375 |
# objects from $(OBJS) as early as possible, build all their |
2376 |
# prerequisites strictly before all objects. |
2377 |
$(ALL_HOST_OBJS) : | $(generated_files) |
2378 |
and build/*.o have explicit dependencies. |
2379 |
I've tried to compare $(ALL_HOST_OBJS) on my box with all *.o */*.o files |
2380 |
I had in stage3 directory, and besides build/*.o, I found: |
2381 |
|
2382 |
crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o crtfastmath.o crtprec32.o crtprec64.o crtprec80.o |
2383 |
errors.o gcc-ar.o gcc-nm.o gcc-ranlib.o gengtype-lex.o gengtype.o gengtype-parse.o gengtype-state.o |
2384 |
|
2385 |
not being listed in ALL_HOST_OBJS. The crt*.o files come from libgcc build |
2386 |
and thus are ok, the rest I've tried to handle in the following updated |
2387 |
patch. If the #define GENERATOR_FILE inside of the 5 files is too ugly, |
2388 |
another alternative might be to define both -DHOST_GENERATOR_FILE -DGENERATOR_FILE |
2389 |
in Makefile.in and don't error in config.h if GENERATOR_FILE is defined, |
2390 |
if HOST_GENERATOR_FILE is also defined. |
2391 |
|
2392 |
2014-12-03 Jakub Jelinek <jakub@××××××.com> |
2393 |
|
2394 |
* Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS), |
2395 |
gcc-ar.o, gcc-nm.o and gcc-ranlib.o. |
2396 |
(GENGTYPE_OBJS): New. |
2397 |
(gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o): |
2398 |
Remove explicit dependencies. |
2399 |
(CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o, |
2400 |
CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE |
2401 |
instead of -DGENERATOR_FILE. |
2402 |
(CFLAGS-errors.o): New. |
2403 |
* gengtype.c: Instead of testing GENERATOR_FILE define, test |
2404 |
HOST_GENERATOR_FILE. If defined, include config.h and define |
2405 |
GENERATOR_FILE afterwards, otherwise include bconfig.h. |
2406 |
* gengtype-parse.c: Likewise. |
2407 |
* gengtype-state.c: Likewise. |
2408 |
* gengtype-lex.l: Likewise. |
2409 |
* errors.c: Likewise. |
2410 |
|
2411 |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218325 138bc75d-0d04-0410-961f-82ee72b054a4 |
2412 |
--- |
2413 |
gcc/ChangeLog | 75 ++++++++++++++++++++++++++++++++-------------------- |
2414 |
gcc/Makefile.in | 20 +++++++------- |
2415 |
gcc/errors.c | 7 ++--- |
2416 |
gcc/gengtype-lex.l | 7 ++--- |
2417 |
gcc/gengtype-parse.c | 7 ++--- |
2418 |
gcc/gengtype-state.c | 7 ++--- |
2419 |
gcc/gengtype.c | 7 ++--- |
2420 |
7 files changed, 77 insertions(+), 53 deletions(-) |
2421 |
|
2422 |
diff --git a/gcc/Makefile.in b/gcc/Makefile.in |
2423 |
index 204bd85..3820d0b 100644 |
2424 |
--- a/gcc/Makefile.in |
2425 |
+++ b/gcc/Makefile.in |
2426 |
@@ -1509,6 +1509,7 @@ ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS)) |
2427 |
ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \ |
2428 |
$(OBJS-libcommon-target) @TREEBROWSER@ main.o c-family/cppspec.o \ |
2429 |
- $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) |
2430 |
+ $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \ |
2431 |
+ lto-wrapper.o $(GENGTYPE_OBJS) gcc-ar.o gcc-nm.o gcc-ranlib.o |
2432 |
|
2433 |
# This lists all host object files, whether they are included in this |
2434 |
# compilation or not. |
2435 |
@@ -2484,31 +2485,32 @@ build/gengenrtl.o : gengenrtl.c $(BCONFIG_H) $(SYSTEM_H) rtl.def |
2436 |
# on BCONFIG_H. For the build objects, add -DGENERATOR_FILE manually, |
2437 |
# the build-%: rule doesn't apply to them. |
2438 |
|
2439 |
+GENGTYPE_OBJS = gengtype.o gengtype-parse.o gengtype-state.o \ |
2440 |
+ gengtype-lex.o errors.o |
2441 |
+ |
2442 |
gengtype-lex.o build/gengtype-lex.o : gengtype-lex.c gengtype.h $(SYSTEM_H) |
2443 |
-gengtype-lex.o: $(CONFIG_H) $(BCONFIG_H) |
2444 |
-CFLAGS-gengtype-lex.o += -DGENERATOR_FILE |
2445 |
+CFLAGS-gengtype-lex.o += -DHOST_GENERATOR_FILE |
2446 |
build/gengtype-lex.o: $(BCONFIG_H) |
2447 |
|
2448 |
gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \ |
2449 |
$(SYSTEM_H) |
2450 |
-gengtype-parse.o: $(CONFIG_H) |
2451 |
-CFLAGS-gengtype-parse.o += -DGENERATOR_FILE |
2452 |
+CFLAGS-gengtype-parse.o += -DHOST_GENERATOR_FILE |
2453 |
build/gengtype-parse.o: $(BCONFIG_H) |
2454 |
|
2455 |
gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \ |
2456 |
gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \ |
2457 |
$(XREGEX_H) |
2458 |
-gengtype-state.o: $(CONFIG_H) |
2459 |
-CFLAGS-gengtype-state.o += -DGENERATOR_FILE |
2460 |
+CFLAGS-gengtype-state.o += -DHOST_GENERATOR_FILE |
2461 |
build/gengtype-state.o: $(BCONFIG_H) |
2462 |
|
2463 |
gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h \ |
2464 |
rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \ |
2465 |
$(OBSTACK_H) $(XREGEX_H) |
2466 |
-gengtype.o: $(CONFIG_H) |
2467 |
-CFLAGS-gengtype.o += -DGENERATOR_FILE |
2468 |
+CFLAGS-gengtype.o += -DHOST_GENERATOR_FILE |
2469 |
build/gengtype.o: $(BCONFIG_H) |
2470 |
|
2471 |
+CFLAGS-errors.o += -DHOST_GENERATOR_FILE |
2472 |
+ |
2473 |
build/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h \ |
2474 |
errors.h $(READ_MD_H) |
2475 |
build/genmodes.o : genmodes.c $(BCONFIG_H) $(SYSTEM_H) errors.h \ |
2476 |
diff --git a/gcc/errors.c b/gcc/errors.c |
2477 |
index be38b1f..a6a30fe 100644 |
2478 |
--- a/gcc/errors.c |
2479 |
+++ b/gcc/errors.c |
2480 |
@@ -21,10 +21,11 @@ along with GCC; see the file COPYING3. If not see |
2481 |
in the generator programs; the compiler has a more elaborate suite |
2482 |
of diagnostic printers, found in diagnostic.c. */ |
2483 |
|
2484 |
-#ifdef GENERATOR_FILE |
2485 |
-#include "bconfig.h" |
2486 |
-#else |
2487 |
+#ifdef HOST_GENERATOR_FILE |
2488 |
#include "config.h" |
2489 |
+#define GENERATOR_FILE 1 |
2490 |
+#else |
2491 |
+#include "bconfig.h" |
2492 |
#endif |
2493 |
#include "system.h" |
2494 |
#include "errors.h" |
2495 |
diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l |
2496 |
index 5e12885..0866603 100644 |
2497 |
--- a/gcc/gengtype-lex.l |
2498 |
+++ b/gcc/gengtype-lex.l |
2499 |
@@ -21,10 +21,11 @@ along with GCC; see the file COPYING3. If not see |
2500 |
%option noinput |
2501 |
|
2502 |
%{ |
2503 |
-#ifdef GENERATOR_FILE |
2504 |
-#include "bconfig.h" |
2505 |
-#else |
2506 |
+#ifdef HOST_GENERATOR_FILE |
2507 |
#include "config.h" |
2508 |
+#define GENERATOR_FILE 1 |
2509 |
+#else |
2510 |
+#include "bconfig.h" |
2511 |
#endif |
2512 |
#include "system.h" |
2513 |
|
2514 |
diff --git a/gcc/gengtype-parse.c b/gcc/gengtype-parse.c |
2515 |
index 0f11cec..87b6917 100644 |
2516 |
--- a/gcc/gengtype-parse.c |
2517 |
+++ b/gcc/gengtype-parse.c |
2518 |
@@ -17,10 +17,11 @@ |
2519 |
along with GCC; see the file COPYING3. If not see |
2520 |
<http://www.gnu.org/licenses/>. */ |
2521 |
|
2522 |
-#ifdef GENERATOR_FILE |
2523 |
-#include "bconfig.h" |
2524 |
-#else |
2525 |
+#ifdef HOST_GENERATOR_FILE |
2526 |
#include "config.h" |
2527 |
+#define GENERATOR_FILE 1 |
2528 |
+#else |
2529 |
+#include "bconfig.h" |
2530 |
#endif |
2531 |
#include "system.h" |
2532 |
#include "gengtype.h" |
2533 |
diff --git a/gcc/gengtype-state.c b/gcc/gengtype-state.c |
2534 |
index 5b7017f..7634f74 100644 |
2535 |
--- a/gcc/gengtype-state.c |
2536 |
+++ b/gcc/gengtype-state.c |
2537 |
@@ -23,10 +23,11 @@ |
2538 |
and Basile Starynkevitch <basile@×××××××××××××.net> |
2539 |
*/ |
2540 |
|
2541 |
-#ifdef GENERATOR_FILE |
2542 |
-#include "bconfig.h" |
2543 |
-#else |
2544 |
+#ifdef HOST_GENERATOR_FILE |
2545 |
#include "config.h" |
2546 |
+#define GENERATOR_FILE 1 |
2547 |
+#else |
2548 |
+#include "bconfig.h" |
2549 |
#endif |
2550 |
#include "system.h" |
2551 |
#include "errors.h" /* For fatal. */ |
2552 |
diff --git a/gcc/gengtype.c b/gcc/gengtype.c |
2553 |
index 2dc857e..39d2918 100644 |
2554 |
--- a/gcc/gengtype.c |
2555 |
+++ b/gcc/gengtype.c |
2556 |
@@ -17,10 +17,11 @@ |
2557 |
along with GCC; see the file COPYING3. If not see |
2558 |
<http://www.gnu.org/licenses/>. */ |
2559 |
|
2560 |
-#ifdef GENERATOR_FILE |
2561 |
-#include "bconfig.h" |
2562 |
-#else |
2563 |
+#ifdef HOST_GENERATOR_FILE |
2564 |
#include "config.h" |
2565 |
+#define GENERATOR_FILE 1 |
2566 |
+#else |
2567 |
+#include "bconfig.h" |
2568 |
#endif |
2569 |
#include "system.h" |
2570 |
#include "errors.h" /* for fatal */ |
2571 |
-- |
2572 |
2.3.4 |
2573 |
|
2574 |
|
2575 |
|
2576 |
1.1 src/patchsets/gcc/4.8.5/gentoo/README.history |
2577 |
|
2578 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/README.history?rev=1.1&view=markup |
2579 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/README.history?rev=1.1&content-type=text/plain |
2580 |
|
2581 |
Index: README.history |
2582 |
=================================================================== |
2583 |
1.0 24 Jun 2015 |
2584 |
+ 09_all_default-ssp.patch |
2585 |
+ 10_all_default-fortify-source.patch |
2586 |
+ 11_all_default-warn-format-security.patch |
2587 |
+ 12_all_default-warn-trampolines.patch |
2588 |
+ 15_all_libgfortran-Werror.patch |
2589 |
+ 16_all_libgomp-Werror.patch |
2590 |
+ 17_all_libitm-Werror.patch |
2591 |
+ 18_all_libatomic-Werror.patch |
2592 |
+ 19_all_libbacktrace-Werror.patch |
2593 |
+ 20_all_msgfmt-libstdc++-link.patch |
2594 |
+ 25_all_alpha-mieee-default.patch |
2595 |
+ 26_all_alpha-asm-mcpu.patch |
2596 |
+ 29_all_arm_armv4t-default.patch |
2597 |
+ 30_all_arm_armv4-no-thumb-fix-link.patch |
2598 |
+ 34_all_ia64_note.GNU-stack.patch |
2599 |
+ 38_all_sh_pr24836_all-archs.patch |
2600 |
+ 42_all_superh_default-multilib.patch |
2601 |
+ 48_all_x86_pr53113_libitm-avx.patch |
2602 |
+ 50_all_libiberty-asprintf.patch |
2603 |
+ 51_all_libiberty-pic.patch |
2604 |
+ 52_all_netbsd-Bsymbolic.patch |
2605 |
+ 67_all_gcc-poison-system-directories.patch |
2606 |
+ 74_all_gcc48_cloog-dl.patch |
2607 |
+ 90_all_pr55930-dependency-tracking.patch |
2608 |
+ 91_all_pr61538-atomic-compare-exchange.patch |
2609 |
+ 92_all_freebsd-pie.patch |
2610 |
+ 93_all_4.9.0_pr60155.patch |
2611 |
+ 93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch |