blueness    15/06/24 13:38:51

  Added:                09_all_default-ssp.patch
                        10_all_default-fortify-source.patch
                        11_all_default-warn-format-security.patch
                        12_all_default-warn-trampolines.patch
                        15_all_libgfortran-Werror.patch
                        16_all_libgomp-Werror.patch
                        17_all_libitm-Werror.patch
                        18_all_libatomic-Werror.patch
                        19_all_libbacktrace-Werror.patch
                        20_all_msgfmt-libstdc++-link.patch
                        25_all_alpha-mieee-default.patch
                        26_all_alpha-asm-mcpu.patch
                        29_all_arm_armv4t-default.patch
                        30_all_arm_armv4-no-thumb-fix-link.patch
                        34_all_ia64_note.GNU-stack.patch
                        38_all_sh_pr24836_all-archs.patch
                        42_all_superh_default-multilib.patch
                        48_all_x86_pr53113_libitm-avx.patch
                        50_all_libiberty-asprintf.patch
                        51_all_libiberty-pic.patch
                        52_all_netbsd-Bsymbolic.patch
                        67_all_gcc-poison-system-directories.patch
                        74_all_gcc48_cloog-dl.patch
                        90_all_pr55930-dependency-tracking.patch
                        91_all_pr61538-atomic-compare-exchange.patch
                        92_all_freebsd-pie.patch 93_all_4.9.0_pr60155.patch
                        
93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch
                        README.history
  Log:
  intial 4.8.5 patchset based on 4.8.4.  bug #553144.

Revision  Changes    Path
1.1                  src/patchsets/gcc/4.8.5/gentoo/09_all_default-ssp.patch

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
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

Index: 09_all_default-ssp.patch
===================================================================
2013-12-31  Magnus Granberg  <zo...@gentoo.org>

        Patch orig: Debian/Ubuntu
        # 484714
        We Add -fstack-protector as default

--- a/configure.ac
+++ b/configure.ac
@@ -3238,6 +3238,9 @@ case $build in
     esac ;;
 esac
 
+# Needed when we build with -fstack-protector as default.
+stage1_cflags="$stage1_cflags -fno-stack-protector"
+
 AC_SUBST(stage1_cflags)
 
 # Enable --enable-checking in stage1 of the compiler.
--- a/configure
+++ b/configure
@@ -14453,7 +14453,8 @@ case $build in
     esac ;;
 esac
 
-
+# Needed when we build with -fstack-protector as default.
+stage1_cflags="$stage1_cflags -fno-stack-protector"
 
 # Enable --enable-checking in stage1 of the compiler.
 # Check whether --enable-stage1-checking was given.
--- a/Makefile.in
+++ b/Makefile.in
@@ -362,7 +362,7 @@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@
 
 # Flags to pass to stage2 and later makes.  They are defined
 # here so that they can be overridden by Makefile fragments.
-BOOT_CFLAGS= -g -O2
+BOOT_CFLAGS= -g -O2 -fno-stack-protector
 BOOT_LDFLAGS=
 BOOT_ADAFLAGS= -gnatpg
 
@@ -408,9 +408,9 @@ GNATMAKE = @GNATMAKE@
 
 CFLAGS = @CFLAGS@
 LDFLAGS = @LDFLAGS@
-LIBCFLAGS = $(CFLAGS)
+LIBCFLAGS = $(CFLAGS) -fno-stack-protector
 CXXFLAGS = @CXXFLAGS@
-LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
+LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates -fno-stack-protector
 GOCFLAGS = $(CFLAGS)
 
 TFLAGS =
--- a/gcc/doc/invoke.texi 2009-12-21
+++ b/gcc/doc/invoke.texi
@@ -8111,6 +8111,10 @@
 when a function is entered and then checked when the function exits.
 If a guard check fails, an error message is printed and the program exits.
 
+NOTE: In Gentoo Gcc 4.8.2 and later versions this option is enabled by default
+for C, C++, ObjC, ObjC++, if none of @option{-fno-stack-protector},
+@option{-nostdlib}, nor @option{-ffreestanding} are found.
+
 @item -fstack-protector-all
 @opindex fstack-protector-all
 Like @option{-fstack-protector} except that all functions are protected.
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3.  If not see
                %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} 
\n}\
       cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed 
%{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
              %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
-       %(cc1_options) %2\
+       %(cc1_options) %(ssp_default) %2\
        %{!fsyntax-only:%{!fdump-ada-spec*:-o %g.s %{!o*:--output-pch=%i.gch}\
         %W{o*:--output-pch=%*}}%V}}}}",
      CPLUSPLUS_CPP_SPEC, 0, 0},
@@ -57,11 +57,11 @@ along with GCC; see the file COPYING3.  If not see
                %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} 
\n}\
       cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed 
%{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\
              %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
-       %(cc1_options) %2\
+       %(cc1_options) %(ssp_default) %2\
        %{!fsyntax-only:%(invoke_as)}}}}",
      CPLUSPLUS_CPP_SPEC, 0, 0},
   {".ii", "@c++-cpp-output", 0, 0, 0},
   {"@c++-cpp-output",
    "%{!M:%{!MM:%{!E:\
-    cc1plus -fpreprocessed %i %(cc1_options) %2\
+    cc1plus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\
     %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -651,6 +651,17 @@ proper position among the other output files.  */
 #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G"
 #endif
 
+#ifndef SSP_DEFAULT_SPEC
+#if defined ( TARGET_LIBC_PROVIDES_SSP ) && defined ( EFAULT_SSP )
+#define SSP_DEFAULT_SPEC 
"%{fno-stack-protector|fstack-protector-all|ffreestanding|nostdlib:;:-fstack-protector}"
+/* Add -fno-stack-protector for the use of gcc-specs-ssp.  */
+#define CC1_SSP_DEFAULT_SPEC "%{!fno-stack-protector:}"
+#else
+#define SSP_DEFAULT_SPEC ""
+#define CC1_SSP_DEFAULT_SPEC ""
+#endif
+#endif
+
 #ifndef LINK_SSP_SPEC
 #ifdef TARGET_LIBC_PROVIDES_SSP
 #define LINK_SSP_SPEC "%{fstack-protector:}"
@@ -771,7 +781,7 @@ proper position among the other output f
 
 static const char *asm_debug = ASM_DEBUG_SPEC;
 static const char *cpp_spec = CPP_SPEC;
-static const char *cc1_spec = CC1_SPEC;
+static const char *cc1_spec = CC1_SPEC CC1_SSP_DEFAULT_SPEC;
 static const char *cc1plus_spec = CC1PLUS_SPEC;
 static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC;
 static const char *link_ssp_spec = LINK_SSP_SPEC;
@@ -777,6 +785,8 @@ static const char *cc1_spec = CC1_SPEC;
 static const char *cc1plus_spec = CC1PLUS_SPEC;
 static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC;
 static const char *link_ssp_spec = LINK_SSP_SPEC;
+static const char *ssp_default_spec = SSP_DEFAULT_SPEC;
+static const char *cc1_ssp_default_spec = CC1_SSP_DEFAULT_SPEC;
 static const char *asm_spec = ASM_SPEC;
 static const char *asm_final_spec = ASM_FINAL_SPEC;
 static const char *link_spec = LINK_SPEC;
@@ -835,7 +844,7 @@ static const char *cpp_unique_options =
 static const char *cpp_options =
 "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
  %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*}\
- %{undef} %{save-temps*:-fpch-preprocess}";
+ %{undef} %{save-temps*:-fpch-preprocess} %(ssp_default)";
 
 /* This contains cpp options which are not passed when the preprocessor
    output will be used by another program.  */
@@ -1015,9 +1024,9 @@ static const struct compiler default_compilers[] =
       %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \
          %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\
            cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \
-         %(cc1_options)}\
+         %(cc1_options) %(ssp_default)}\
       %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\
-         cc1 %(cpp_unique_options) %(cc1_options)}}}\
+         cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}\
       %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1},
   {"-",
    "%{!E:%e-E or -x required when input is from standard input}\
@@ -1040,7 +1049,7 @@ static const struct compiler default_compilers[] =
                     %W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0},
   {".i", "@cpp-output", 0, 0, 0},
   {"@cpp-output",
-   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) 
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %(ssp_default) 
%{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
   {".s", "@assembler", 0, 0, 0},
   {"@assembler",
    "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
@@ -1267,6 +1276,8 @@ static struct spec_list static_specs[] =
   INIT_STATIC_SPEC ("cc1plus",                 &cc1plus_spec),
   INIT_STATIC_SPEC ("link_gcc_c_sequence",     &link_gcc_c_sequence_spec),
   INIT_STATIC_SPEC ("link_ssp",                        &link_ssp_spec),
+  INIT_STATIC_SPEC ("ssp_default",             &ssp_default_spec),
+  INIT_STATIC_SPEC ("cc1_ssp_default", &cc1_ssp_default_spec),
   INIT_STATIC_SPEC ("endfile",                 &endfile_spec),
   INIT_STATIC_SPEC ("link",                    &link_spec),
   INIT_STATIC_SPEC ("lib",                     &lib_spec),
--- a/gcc/objc/lang-specs.h
+++ b/gcc/objc/lang-specs.h
@@ -29,9 +29,9 @@ along with GCC; see the file COPYING3.  If not see
        %{traditional|traditional-cpp:\
 %eGNU Objective C no longer supports traditional compilation}\
        %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o 
%{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\
-           cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} 
%(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\
+           cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} 
%(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}}\
        %{!save-temps*:%{!no-integrated-cpp:\
-           cc1obj %(cpp_unique_options) %(cc1_options) 
%{print-objc-runtime-info} %{gen-decls}}}\
+           cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) 
%{print-objc-runtime-info} %{gen-decls}}}\
         %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
   {"@objective-c-header",
      "%{E|M|MM:cc1obj -E %{traditional|traditional-cpp:-traditional-cpp}\
@@ -40,18 +40,18 @@ along with GCC; see the file COPYING3.  If not see
        %{traditional|traditional-cpp:\
 %eGNU Objective C no longer supports traditional compilation}\
        %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o 
%{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\
-           cc1obj -fpreprocessed %b.mi %(cc1_options) 
%{print-objc-runtime-info} %{gen-decls}\
+           cc1obj -fpreprocessed %b.mi %(cc1_options) %(ssp_default) 
%{print-objc-runtime-info} %{gen-decls}\
                         -o %g.s %{!o*:--output-pch=%i.gch}\
                         %W{o*:--output-pch=%*}%V}\
        %{!save-temps*:%{!no-integrated-cpp:\
-           cc1obj %(cpp_unique_options) %(cc1_options) 
%{print-objc-runtime-info} %{gen-decls}\
+           cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) 
%{print-objc-runtime-info} %{gen-decls}\
                         -o %g.s %{!o*:--output-pch=%i.gch}\
                         %W{o*:--output-pch=%*}%V}}}}}", 0, 0, 0},
   {".mi", "@objective-c-cpp-output", 0, 0, 0},
   {"@objective-c-cpp-output",
-     "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) 
%{print-objc-runtime-info} %{gen-decls}\
+     "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(ssp_default) 
%{print-objc-runtime-info} %{gen-decls}\
                             %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
   {"@objc-cpp-output",
       "%nobjc-cpp-output is deprecated; please use objective-c-cpp-output 
instead\n\
-       %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) 
%{print-objc-runtime-info} %{gen-decls}\
+       %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(ssp_default) 
%{print-objc-runtime-info} %{gen-decls}\
                             %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
--- a/gcc/objcp/lang-specs.h
+++ b/gcc/objcp/lang-specs.h
@@ -36,7 +36,7 @@ along with GCC; see the file COPYING3.  If not see
                %(cpp_options) %2 -o %{save-temps*:%b.mii} 
%{!save-temps*:%g.mii} \n}\
       cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed 
%{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
              %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
-       %(cc1_options) %2\
+       %(cc1_options) %(ssp_default) %2\
         -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}",
      CPLUSPLUS_CPP_SPEC, 0, 0},
   {"@objective-c++",
@@ -46,16 +46,16 @@ along with GCC; see the file COPYING3.  If not see
                %(cpp_options) %2 -o %{save-temps*:%b.mii} 
%{!save-temps*:%g.mii} \n}\
       cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed 
%{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\
              %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\
-       %(cc1_options) %2\
+       %(cc1_options) %(ssp_default) %2\
        %{!fsyntax-only:%(invoke_as)}}}}",
      CPLUSPLUS_CPP_SPEC, 0, 0},
   {".mii", "@objective-c++-cpp-output", 0, 0, 0},
   {"@objective-c++-cpp-output",
    "%{!M:%{!MM:%{!E:\
-    cc1objplus -fpreprocessed %i %(cc1_options) %2\
+    cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\
     %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
   {"@objc++-cpp-output",
    "%nobjc++-cpp-output is deprecated; please use objective-c++-cpp-output 
instead\n\
     %{!M:%{!MM:%{!E:\
-    cc1objplus -fpreprocessed %i %(cc1_options) %2\
+    cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\
     %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -662,7 +662,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
 DEFPARAM (PARAM_SSP_BUFFER_SIZE,
          "ssp-buffer-size",
          "The lower bound for a buffer to be considered for stack smashing 
protection",
-         8, 1, 0)
+         4, 1, 0)
 
 /* When we thread through a block we have to make copies of the
    statements within the block.  Clearly for large blocks the code



1.1                  
src/patchsets/gcc/4.8.5/gentoo/10_all_default-fortify-source.patch

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
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

Index: 10_all_default-fortify-source.patch
===================================================================
Enable -D_FORTIFY_SOURCE=2 by default.

--- a/gcc/c-family/c-cppbuiltin.c
+++ b/gcc/c-family/c-cppbuiltin.c
@@ -853,6 +853,9 @@ c_cpp_builtins (cpp_reader *pfile)
   builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
   builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
 
+  /* Fortify Source enabled by default w/optimization.  */
+  cpp_define (pfile, "_FORTIFY_SOURCE=((defined __OPTIMIZE__ && __OPTIMIZE__ > 
0) ? 2 : 0)");
+
   /* Misc.  */
   if (flag_gnu89_inline)
     cpp_define (pfile, "__GNUC_GNU_INLINE__");
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -6568,6 +6568,11 @@ also turns on the following optimization flags:
 Please note the warning under @option{-fgcse} about
 invoking @option{-O2} on programs that use computed gotos.
 
+NOTE: In Gentoo, @option{-D_FORTIFY_SOURCE=2} is set by default, and is
+activated when @option{-O} is set to 2 or higher.  This enables additional
+compile-time and run-time checks for several libc functions.  To disable,
+specify either @option{-U_FORTIFY_SOURCE} or @option{-D_FORTIFY_SOURCE=0}.
+
 @item -O3
 @opindex O3
 Optimize yet more.  @option{-O3} turns on all optimizations specified



1.1                  
src/patchsets/gcc/4.8.5/gentoo/11_all_default-warn-format-security.patch

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
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

Index: 11_all_default-warn-format-security.patch
===================================================================
Enable -Wformat and -Wformat-security by default.

--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -400,7 +400,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning 
LangEnabledBy(C ObjC C++ O
 Warn about format strings that are not literals
 
 Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ 
ObjC++,Wformat=, warn_format >= 2, 0)
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C 
ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0)
 Warn about possible security problems with format functions
 
 Wformat-y2k
@@ -412,7 +412,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning 
LangEnabledBy(C ObjC C++
 Warn about zero-length formats
 
 Wformat=
-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning 
LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
+C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) 
Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0)
 Warn about printf/scanf/strftime/strfmon format string anomalies
 
 Wignored-qualifiers
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3362,6 +3362,11 @@ currently a subset of what @option{-Wformat-nonliteral} 
warns about, but
 in future warnings may be added to @option{-Wformat-security} that are not
 included in @option{-Wformat-nonliteral}.)
 
+In Gentoo this option is enabled by default for C, C++, ObjC, ObjC++.
+To disable, use @option{-Wno-format-security}, or disable all format
+warnings with @option{-Wformat=0}.  To make format security warnings
+fatal, specify @option{-Werror=format-security}.
+
 @item -Wformat-y2k
 @opindex Wformat-y2k
 @opindex Wno-format-y2k



1.1                  
src/patchsets/gcc/4.8.5/gentoo/12_all_default-warn-trampolines.patch

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
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

Index: 12_all_default-warn-trampolines.patch
===================================================================
Enable -Wtrampolines by default.

--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -640,7 +640,7 @@ Common Var(warn_system_headers) Warning
 Do not suppress warnings from system headers
 
 Wtrampolines
-Common Var(warn_trampolines) Warning
+Common Var(warn_trampolines) Init(1) Warning
 Warn whenever a trampoline is generated
 
 Wtype-limits
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -4007,6 +4007,8 @@ headers---for that, @option{-Wunknown-pragmas} must also 
be used.
  for most targets, it is made up of code and thus requires the stack
  to be made executable in order for the program to work properly.
 
+ This warning is enabled by default in Gentoo.
+
 @item -Wfloat-equal
 @opindex Wfloat-equal
 @opindex Wno-float-equal



1.1                  
src/patchsets/gcc/4.8.5/gentoo/15_all_libgfortran-Werror.patch

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
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

Index: 15_all_libgfortran-Werror.patch
===================================================================
libgfortran does not respect --disable-werror

https://bugs.gentoo.org/433435
http://gcc.gnu.org/PR54724


--- a/libgfortran/configure
+++ b/libgfortran/configure
@@ -5764,7 +5764,7 @@ fi
 
 # Add -Wall -fno-repack-arrays -fno-underscoring if we are using GCC.
 if test "x$GCC" = "xyes"; then
-  AM_FCFLAGS="-I . -Wall -Werror -fimplicit-none -fno-repack-arrays 
-fno-underscoring"
+  AM_FCFLAGS="-I . -Wall -fimplicit-none -fno-repack-arrays -fno-underscoring"
   ## We like to use C99 routines when available.  This makes sure that
   ## __STDC_VERSION__ is set such that libc includes make them available.
   AM_CFLAGS="-std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes 
-Wold-style-definition -Wextra -Wwrite-strings"



1.1                  src/patchsets/gcc/4.8.5/gentoo/16_all_libgomp-Werror.patch

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
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

Index: 16_all_libgomp-Werror.patch
===================================================================
libgomp does not respect --disable-werror

https://bugs.gentoo.org/229059
http://gcc.gnu.org/PR38436


--- a/libgomp/configure
+++ b/libgomp/configure
@@ -4282,7 +4282,7 @@ save_CFLAGS="$CFLAGS"
 
 # Add -Wall -Werror if we are using GCC.
 if test "x$GCC" = "xyes"; then
-  XCFLAGS="$XCFLAGS -Wall -Werror"
+  XCFLAGS="$XCFLAGS -Wall"
 fi
 
 # Find other programs we need.



1.1                  src/patchsets/gcc/4.8.5/gentoo/17_all_libitm-Werror.patch

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
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

Index: 17_all_libitm-Werror.patch
===================================================================
Add --enable-werror.

https://bugs.gentoo.org/475350


2013-06-30  Ryan Hill  <dirtye...@gentoo.org>

        * configure.ac: Add --enable-werror.
        (XCFLAGS): Use it.
        * configure: Regenerate.

--- a/libitm/configure.ac
+++ b/libitm/configure.ac
@@ -252,9 +252,15 @@ GCC_CHECK_ELF_STYLE_WEAKREF
 CFLAGS="$save_CFLAGS"
 AC_CACHE_SAVE
 
-# Add -Wall -Werror if we are using GCC.
+AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror],
+                                      [turns on -Werror @<:@default=yes@:>@])])
+# Add -Wall if we are using GCC.
 if test "x$GCC" = "xyes"; then
-  XCFLAGS="$XCFLAGS -Wall -Werror"
+  XCFLAGS="$XCFLAGS -Wall"
+  # Add -Werror if requested.
+  if test "x$enable_werror" != "xno"; then
+    XCFLAGS="$XCFLAGS -Werror"
+  fi
 fi
 
 XCFLAGS="$XCFLAGS $XPCFLAGS"
--- a/libitm/configure
+++ b/libitm/configure
@@ -775,6 +775,7 @@ enable_maintainer_mode
 enable_linux_futex
 enable_tls
 enable_symvers
+enable_werror
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1423,6 +1424,7 @@ Optional Features:
   --enable-tls            Use thread-local storage [default=yes]
   --enable-symvers=STYLE  enables symbol versioning of the shared library
                           [default=yes]
+  --enable-werror         turns on -Werror [default=yes]
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -17491,9 +17493,18 @@ $as_echo "$as_me: not updating unwritable cache 
$cache_file" >&6;}
 fi
 rm -f confcache
 
-# Add -Wall -Werror if we are using GCC.
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+  enableval=$enable_werror;
+fi
+
+# Add -Wall if we are using GCC.
 if test "x$GCC" = "xyes"; then
-  XCFLAGS="$XCFLAGS -Wall -Werror"
+  XCFLAGS="$XCFLAGS -Wall"
+  # Add -Werror if requested.
+  if test "x$enable_werror" != "xno"; then
+    XCFLAGS="$XCFLAGS -Werror"
+  fi
 fi
 
 XCFLAGS="$XCFLAGS $XPCFLAGS"



1.1                  
src/patchsets/gcc/4.8.5/gentoo/18_all_libatomic-Werror.patch

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
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

Index: 18_all_libatomic-Werror.patch
===================================================================
Add --enable-werror.

https://bugs.gentoo.org/475350


2013-06-30  Ryan Hill  <dirtye...@gentoo.org>

        * configure.ac: Add --enable-werror.
        (XCFLAGS): Use it.
        * configure: Regenerate.

--- a/libatomic/configure.ac
+++ b/libatomic/configure.ac
@@ -226,9 +226,15 @@ LIBAT_ENABLE_SYMVERS
 CFLAGS="$save_CFLAGS"
 AC_CACHE_SAVE
 
-# Add -Wall -Werror if we are using GCC.
+AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror],
+                                      [turns on -Werror @<:@default=yes@:>@])])
+# Add -Wall if we are using GCC.
 if test "x$GCC" = "xyes"; then
-  XCFLAGS="$XCFLAGS -Wall -Werror"
+  XCFLAGS="$XCFLAGS -Wall"
+  # Add -Werror if requested.
+  if test "x$enable_werror" != "xno"; then
+    XCFLAGS="$XCFLAGS -Werror"
+  fi
 fi
 
 XCFLAGS="$XCFLAGS $XPCFLAGS"
--- a/libatomic/configure
+++ b/libatomic/configure
@@ -761,6 +761,7 @@ with_gnu_ld
 enable_libtool_lock
 enable_maintainer_mode
 enable_symvers
+enable_werror
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1406,6 +1407,7 @@ Optional Features:
                          (and sometimes confusing) to the casual installer
   --enable-symvers=STYLE  enables symbol versioning of the shared library
                           [default=yes]
+  --enable-werror         turns on -Werror [default=yes]
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -15071,9 +15073,18 @@ $as_echo "$as_me: not updating unwritable cache 
$cache_file" >&6;}
 fi
 rm -f confcache
 
-# Add -Wall -Werror if we are using GCC.
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+  enableval=$enable_werror;
+fi
+
+# Add -Wall if we are using GCC.
 if test "x$GCC" = "xyes"; then
-  XCFLAGS="$XCFLAGS -Wall -Werror"
+  XCFLAGS="$XCFLAGS -Wall"
+  # Add -Werror if requested.
+  if test "x$enable_werror" != "xno"; then
+    XCFLAGS="$XCFLAGS -Werror"
+  fi
 fi
 
 XCFLAGS="$XCFLAGS $XPCFLAGS"



1.1                  
src/patchsets/gcc/4.8.5/gentoo/19_all_libbacktrace-Werror.patch

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
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

Index: 19_all_libbacktrace-Werror.patch
===================================================================
add a --enable-werror flag

2015-06-24  Anthony G. Basile < bluen...@gentoo.org>

        * configure: Regenerate.

2014-01-03  Mike Frysinger  <dirtye...@gentoo.org>

        * configure.ac: Add --enable-werror.
        (WARN_FLAGS): Use it.
        * configure: Regenerate.
---
 libbacktrace/configure    | 16 +++++++++++++---
 libbacktrace/configure.ac |  7 ++++++-
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/libbacktrace/configure b/libbacktrace/configure
index 55ae75f..2b95676 100755
--- a/libbacktrace/configure
+++ b/libbacktrace/configure
@@ -730,6 +730,7 @@ with_pic
 enable_fast_install
 with_gnu_ld
 enable_libtool_lock
+enable_werror
 with_system_libunwind
 '
       ac_precious_vars='build_alias
@@ -1369,6 +1370,7 @@ Optional Features:
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-werror         turns on -Werror [default=yes]
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -11127,7 +11129,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11130 "configure"
+#line 11132 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11233,7 +11235,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11236 "configure"
+#line 11238 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11615,8 +11617,16 @@ fi
 CFLAGS="$save_CFLAGS"
 
 
+# Check whether --enable-werror was given.
+if test "${enable_werror+set}" = set; then :
+  enableval=$enable_werror;
+fi
+
+
 if test -n "${with_target_subdir}"; then
-  WARN_FLAGS="$WARN_FLAGS -Werror"
+  if test "x$enable_werror" != "xno"; then
+    WARN_FLAGS="$WARN_FLAGS -Werror"
+  fi
 fi
 
 
diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac
index ecfaa8e..f056fe5 100644
--- a/libbacktrace/configure.ac
+++ b/libbacktrace/configure.ac
@@ -135,8 +135,13 @@ ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings 
-Wstrict-prototypes \
                          -Wmissing-format-attribute -Wcast-qual],
                          [WARN_FLAGS])
 
+AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror],
+                                      [turns on -Werror @<:@default=yes@:>@])])
+
 if test -n "${with_target_subdir}"; then
-  WARN_FLAGS="$WARN_FLAGS -Werror"
+  if test "x$enable_werror" != "xno"; then
+    WARN_FLAGS="$WARN_FLAGS -Werror"
+  fi
 fi
 
 AC_SUBST(WARN_FLAGS)
-- 
2.3.6




1.1                  
src/patchsets/gcc/4.8.5/gentoo/20_all_msgfmt-libstdc++-link.patch

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
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

Index: 20_all_msgfmt-libstdc++-link.patch
===================================================================
Ensure that msgfmt doesn't encounter problems during gcc bootstrapping.

Solves error messages like the following:

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)

The libgcc_s.so used during build doesn't satisfy the needs of the
libstdc++.so that msgfmt is linked against. On the other hand, msgfmt
is used as a stand-alone application here, and what library it uses
behind the scenes is of no concern to the gcc build process.
Therefore, simply invoking it "as usual", i.e. without any special
library path, will make it work as expected here.

2011-09-19 Martin von Gagern

References:
https://bugs.gentoo.org/372377
https://bugs.gentoo.org/295480

--- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.am
+++ gcc-4.1.2/libstdc++-v3/po/Makefile.am
@@ -39,6 +39,7 @@ MSGFMT = msgfmt
 EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN)
 
 .po.mo:
+       env --unset=LD_LIBRARY_PATH \
        $(MSGFMT) -o $@ $<
 
 all-local: all-local-$(USE_NLS)
--- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.in
+++ gcc-4.1.2/libstdc++-v3/po/Makefile.in
@@ -419,6 +419,7 @@ uninstall-am: uninstall-info-am
 
 
 .po.mo:
+       env --unset=LD_LIBRARY_PATH \
        $(MSGFMT) -o $@ $<
 
 all-local: all-local-$(USE_NLS)



1.1                  
src/patchsets/gcc/4.8.5/gentoo/25_all_alpha-mieee-default.patch

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
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

Index: 25_all_alpha-mieee-default.patch
===================================================================
Set the default behavior on alpha to use -mieee since the large majority of
time we want this (bad/weird things can happen with packages built without
it).

To satisfy those people who may not want -mieee forced on them all the time,
we also provide -mno-ieee.

Patch by Mike Frysinger <vap...@gentoo.org>

Note: upstream doesn't want to take this due to long standing behavior, and
because it'd make behavior across OS's inconsistent:
        https://gcc.gnu.org/ml/gcc-patches/2003-07/msg02144.html

This makes sense for upstream, but Gentoo is more concerned about packages
behaving the same across arches under Linux.

--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -96,6 +96,8 @@ along with GCC; see the file COPYING3.  If not see
   while (0)
 #endif
 
+#define CPP_SPEC "%{!no-ieee:-mieee}"
+
 /* Run-time compilation parameters selecting different hardware subsets.  */
 
 /* Which processor to schedule for. The cpu attribute defines a list that
--- a/gcc/config/alpha/alpha.opt
+++ b/gcc/config/alpha/alpha.opt
@@ -39,7 +39,7 @@ Target RejectNegative Mask(IEEE_CONFORMANT)
 Request IEEE-conformant math library routines (OSF/1)
 
 mieee
-Target Report RejectNegative Mask(IEEE)
+Target Report Mask(IEEE)
 Emit IEEE-conformant code, without inexact exceptions
 
 mieee-with-inexact



1.1                  src/patchsets/gcc/4.8.5/gentoo/26_all_alpha-asm-mcpu.patch

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
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

Index: 26_all_alpha-asm-mcpu.patch
===================================================================
https://bugs.gentoo.org/170146
http://gcc.gnu.org/ml/gcc-patches/2009-11/msg00403.html

alpha: turn -mcpu=<cpu> into -m<cpu> for assembler all the time

--- a/gcc/config/alpha/elf.h
+++ b/gcc/config/alpha/elf.h
@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3.  If not see
 #define CC1_SPEC  "%{G*}"
 
 #undef  ASM_SPEC
-#define ASM_SPEC  "%{G*} %{relax:-relax} 
%{!gstabs*:-no-mdebug}%{gstabs*:-mdebug}"
+#define ASM_SPEC  "%{G*} %{relax:-relax} 
%{!gstabs*:-no-mdebug}%{gstabs*:-mdebug} %{mcpu=*:-m%*}"
 
 #undef  IDENT_ASM_OP
 #define IDENT_ASM_OP "\t.ident\t"



1.1                  
src/patchsets/gcc/4.8.5/gentoo/29_all_arm_armv4t-default.patch

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
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

Index: 29_all_arm_armv4t-default.patch
===================================================================
gcc defaults to armv5t for all targets even armv4t

http://sourceware.org/ml/crossgcc/2008-05/msg00009.html


--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -45,7 +45,7 @@
    The ARM10TDMI core is the default for armv5t, so set
    SUBTARGET_CPU_DEFAULT to achieve this.  */
 #undef  SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
 
 /* TARGET_BIG_ENDIAN_DEFAULT is set in
    config.gcc for big endian configurations.  */



1.1                  
src/patchsets/gcc/4.8.5/gentoo/30_all_arm_armv4-no-thumb-fix-link.patch

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
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

Index: 30_all_arm_armv4-no-thumb-fix-link.patch
===================================================================
>From 73aa8c34427a4282930ca8667165d844ee698859 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vap...@gentoo.org>
Date: Fri, 19 Apr 2013 16:32:28 -0400
Subject: [PATCH] gcc: arm: linux-eabi: fix handling of armv4 bx fixups when
 linking

The bpabi.h header already sets up defines to automatically use the
--fix-v4bx flag with the assembler & linker as needed, and creates a
default assembly & linker spec which uses those.  Unfortunately, the
linux-eabi.h header clobbers the LINK_SPEC define and doesn't include
the v4bx define when setting up its own.  So while the assembler spec
is retained and works fine to generate the right relocs, building for
armv4 targets doesn't invoke the linker correctly so all the relocs
get processed as if we had an armv4t target.

You can see this with -dumpspecs when configuring gcc for an armv4
target and using --with-arch=armv4:
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx
*subtarget_extra_asm_spec:
.... 
%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}
 ...

With this fix in place, we also get the link spec:
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx
*link:
...  
%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}
 ...

And all my hello world tests / glibc builds automatically turn the
bx insn into the 'mov pc, lr' insn and all is right in the world.

Signed-off-by: Mike Frysinger <vap...@gentoo.org>

2013-04-19  Mike Frysinger  <vap...@gentoo.org>

        * config/arm/linux-eabi.h (LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
---
 gcc/config/arm/linux-eabi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -80,7 +80,7 @@
 /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
    use the GNU/Linux version, not the generic BPABI version.  */
 #undef  LINK_SPEC
-#define LINK_SPEC BE8_LINK_SPEC                                                
\
+#define LINK_SPEC TARGET_FIX_V4BX_SPEC BE8_LINK_SPEC                   \
   LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC,                         \
                       LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
 
-- 
1.8.2.1




1.1                  
src/patchsets/gcc/4.8.5/gentoo/34_all_ia64_note.GNU-stack.patch

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
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

Index: 34_all_ia64_note.GNU-stack.patch
===================================================================
http://gcc.gnu.org/PR21098


2004-09-20  Jakub Jelinek  <ja...@redhat.com>

        * config/rs6000/ppc-asm.h: Add .note.GNU-stack section also
        on ppc64-linux.

        * config/ia64/lib1funcs.asm: Add .note.GNU-stack section on
        ia64-linux.
        * config/ia64/crtbegin.asm: Likewise.
        * config/ia64/crtend.asm: Likewise.
        * config/ia64/crti.asm: Likewise.
        * config/ia64/crtn.asm: Likewise.

2004-05-14  Jakub Jelinek  <ja...@redhat.com>

        * config/ia64/linux.h (TARGET_ASM_FILE_END): Define.


--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
@@ -24,6 +24,8 @@ a copy of the GCC Runtime Library Exception along with this 
program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+
 /* This is for -profile to use -lc_p instead of -lc.  */
 #undef CC1_SPEC
 #define CC1_SPEC "%{profile:-p} %{G*}"
--- a/gcc/config/rs6000/ppc-asm.h
+++ b/gcc/config/rs6000/ppc-asm.h
@@ -352,7 +352,7 @@ GLUE(.L,name): \
 #endif
 #endif
 
-#if defined __linux__ && !defined __powerpc64__
+#if defined __linux__
        .section .note.GNU-stack
        .previous
 #endif
--- a/libgcc/config/ia64/crtbegin.S
+++ b/libgcc/config/ia64/crtbegin.S
@@ -252,3 +252,7 @@ __do_jv_register_classes:
 .weak __cxa_finalize
 #endif
 .weak _Jv_RegisterClasses
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
--- a/libgcc/config/ia64/crtend.S
+++ b/libgcc/config/ia64/crtend.S
@@ -119,3 +119,6 @@ __do_global_ctors_aux:
 
        br.ret.sptk.many rp
        .endp __do_global_ctors_aux
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
--- a/libgcc/config/ia64/crti.S
+++ b/libgcc/config/ia64/crti.S
@@ -49,5 +49,8 @@ _fini:
        .save rp, r33
        mov     r33 = b0
        .body
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
 
 # end of crti.S
--- a/libgcc/config/ia64/crtn.S
+++ b/libgcc/config/ia64/crtn.S
@@ -39,5 +39,8 @@
        .restore sp
        mov     r12 = r35
        br.ret.sptk.many b0
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
 
 # end of crtn.S
--- a/libgcc/config/ia64/lib1funcs.S
+++ b/libgcc/config/ia64/lib1funcs.S
@@ -793,3 +793,6 @@ __floattitf:
        .endp __floattitf
 #endif
 #endif
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif



1.1                  
src/patchsets/gcc/4.8.5/gentoo/38_all_sh_pr24836_all-archs.patch

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
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

Index: 38_all_sh_pr24836_all-archs.patch
===================================================================
gcc/configure doesn't handle all possible SH architectures

http://gcc.gnu.org/PR24836


--- a/gcc/configure
+++ b/gcc/configure
@@ -22753,7 +22753,7 @@ foo:    .long   25
        tls_first_minor=14
        tls_as_opt="-m64 -Aesame --fatal-warnings"
        ;;
-  sh-*-* | sh[34]-*-*)
+  sh-*-* | sh[34]*-*-*)
     conftest_s='
        .section ".tdata","awT",@progbits
 foo:   .long   25
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -2924,7 +2924,7 @@ foo:      .long   25
        tls_first_minor=14
        tls_as_opt="-m64 -Aesame --fatal-warnings"
        ;;
-  sh-*-* | sh[34]-*-*)
+  sh-*-* | sh[34]*-*-*)
     conftest_s='
        .section ".tdata","awT",@progbits
 foo:   .long   25



1.1                  
src/patchsets/gcc/4.8.5/gentoo/42_all_superh_default-multilib.patch

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
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

Index: 42_all_superh_default-multilib.patch
===================================================================
The gcc-3.x toolchains would contain all the targets by default.  With gcc-4,
you have to actually list out the multilibs you want or you will end up with
just one when using targets like 'sh4-linux-gnu'.

The resulting toolchain can't even build a kernel as the kernel needs to build
with the nofpu flag to be sure that no fpu ops are generated.

Here we restore the gcc-3.x behavior; the additional overhead of building all
of these multilibs by default is negligible.

https://bugs.gentoo.org/140205
https://bugs.gentoo.org/320251

--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2455,7 +2455,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
        if test "$sh_multilibs" = "default" ; then
                case ${target} in
                sh64-superh-linux* | \
-               sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
+               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') ;;
                sh64* | sh5*)   
sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu
 ;;
                sh-superh-*)    
sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
                sh*-*-linux*)   sh_multilibs=m1,m3e,m4 ;;



1.1                  
src/patchsets/gcc/4.8.5/gentoo/48_all_x86_pr53113_libitm-avx.patch

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
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

Index: 48_all_x86_pr53113_libitm-avx.patch
===================================================================
Force -mavx and -msse when needed.

https://bugs.gentoo.org/417271
https://gcc.gnu.org/PR53113
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=206587

commit 7986635822d172ab35a858b02fcd822afa41f628
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Jan 13 19:36:17 2014 +0000

    Make sure that -msse/-mavx are appended at the end
    
        PR libitm/53113
        * Makefile.am (x86_sse.lo): Append -msse to CXXFLAGS.
        (x86_avx.lo): Append -mavx to CXXFLAGS.
        * Makefile.in: Regenerate.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206587 
138bc75d-0d04-0410-961f-82ee72b054a4
---
 libitm/ChangeLog   | 7 +++++++
 libitm/Makefile.am | 6 ++++--
 libitm/Makefile.in | 6 ++++--
 3 files changed, 15 insertions(+), 4 deletions(-)


--- a/libitm/Makefile.am
+++ b/libitm/Makefile.am
@@ -67,10 +67,12 @@ libitm_la_SOURCES += hwcap.cc
 endif
 if ARCH_X86
 libitm_la_SOURCES += x86_sse.cc x86_avx.cc
-x86_sse.lo : XCFLAGS += -msse
+# Make sure -msse is appended at the end.
+x86_sse.lo : override CXXFLAGS += -msse
 endif
 if ARCH_X86_AVX
-x86_avx.lo : XCFLAGS += -mavx
+# Make sure -mavx is appended at the end.
+x86_avx.lo : override CXXFLAGS += -mavx
 endif
 
 if ARCH_FUTEX
--- a/libitm/Makefile.in
+++ b/libitm/Makefile.in
@@ -1050,8 +1050,10 @@ vpath % $(strip $(search_path))
 @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@     
 `echo $(libitm_la_LIBADD) | \
 @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@     
    sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \
 @LIBITM_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBITM_BUILD_VERSIONED_SHLIB_TRUE@     
 > $@ || (rm -f $@ ; exit 1)
-@ARCH_X86_TRUE@x86_sse.lo : XCFLAGS += -msse
-@ARCH_X86_AVX_TRUE@x86_avx.lo : XCFLAGS += -mavx
+# Make sure -msse is appended at the end.
+@ARCH_X86_TRUE@x86_sse.lo : override CXXFLAGS += -msse
+# Make sure -mavx is appended at the end.
+@ARCH_X86_AVX_TRUE@x86_avx.lo : override CXXFLAGS += -mavx
 
 all-local: $(STAMP_GENINSRC)
 



1.1                  
src/patchsets/gcc/4.8.5/gentoo/50_all_libiberty-asprintf.patch

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
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

Index: 50_all_libiberty-asprintf.patch
===================================================================
a hacky version of:
https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=223589
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01865.html

2008-07-25  Magnus Granberg  <zo...@ume.nu>

        * include/libiberty.h (asprintf): Don't declare if defined as a macro

--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -609,8 +609,11 @@ extern int pwait (int, int *, int);
 /* Like sprintf but provides a pointer to malloc'd storage, which must
    be freed by the caller.  */
 
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL.  */
+#ifndef asprintf
 extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
 #endif
+#endif
 
 #if !HAVE_DECL_VASPRINTF
 /* Like vsprintf but provides a pointer to malloc'd storage, which



1.1                  src/patchsets/gcc/4.8.5/gentoo/51_all_libiberty-pic.patch

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
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

Index: 51_all_libiberty-pic.patch
===================================================================
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -246,6 +246,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
          $(AR) $(AR_FLAGS) $(TARGETLIB) \
            $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
          $(RANLIB) $(TARGETLIB); \
+         cp $(TARGETLIB) ../ ; \
          cd ..; \
        else true; fi
 



1.1                  
src/patchsets/gcc/4.8.5/gentoo/52_all_netbsd-Bsymbolic.patch

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
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

Index: 52_all_netbsd-Bsymbolic.patch
===================================================================
https://bugs.gentoo.org/122698
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02854.html

--- a/gcc/config/netbsd-elf.h
+++ b/gcc/config/netbsd-elf.h
@@ -70,6 +70,7 @@ along with GCC; see the file COPYING3.  If not see
 #define NETBSD_LINK_SPEC_ELF \
   "%{assert*} %{R*} %{rpath*} \
    %{shared:-shared} \
+   %{symbolic:-Bsymbolic} \
    %{!shared: \
      -dc -dp \
      %{!nostdlib: \



1.1                  
src/patchsets/gcc/4.8.5/gentoo/67_all_gcc-poison-system-directories.patch

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
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

Index: 67_all_gcc-poison-system-directories.patch
===================================================================
grabbed from openembedded

>From 160397ef3c3331099af028f1b8d3e085b07d88ad Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.k...@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
Subject: [PATCH 16/35] gcc: poison-system-directories

Signed-off-by: Khem Raj <raj.k...@gmail.com>

Upstream-Status: Inappropriate [distribution: codesourcery]
---
 gcc/Makefile.in     |    2 +-
 gcc/common.opt      |    4 ++++
 gcc/config.in       |    6 ++++++
 gcc/configure       |   20 ++++++++++++++++++--
 gcc/configure.ac    |   10 ++++++++++
 gcc/doc/invoke.texi |    9 +++++++++
 gcc/gcc.c           |    2 ++
 gcc/incpath.c       |   19 +++++++++++++++++++
 8 files changed, 69 insertions(+), 3 deletions(-)

--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2018,7 +2018,7 @@ attribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h 
$(TM_H) $(TREE_H) \
 
 incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
                intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
-               $(MACHMODE_H)
+               $(MACHMODE_H) $(FLAGS_H) toplev.h
 
 CFLAGS-prefix.o += -DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s)
 prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h prefix.h \
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -595,6 +595,10 @@ Wpedantic
 Common Var(pedantic) Warning
 Issue warnings needed for strict compliance to the standard
 
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
+Warn for -I and -L options using system directories if cross compiling
+
 Wshadow
 Common Var(warn_shadow) Warning
 Warn when one local variable shadows another
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -138,6 +138,12 @@
 #endif
 
 
+/* Define to warn for use of native system header directories */
+#ifndef USED_FOR_TARGET
+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
+#endif
+
+
 /* Define if you want all operations on RTL (the basic data structure of the
    optimizer and back end) to be checked for dynamic type safety at runtime.
    This is quite expensive. */
--- a/gcc/configure
+++ b/gcc/configure
@@ -917,6 +917,7 @@ with_gc
 with_system_zlib
 enable_maintainer_mode
 enable_version_specific_runtime_libs
+enable_poison_system_directories
 enable_plugin
 enable_libquadmath_support
 with_linker_hash_style
@@ -1630,6 +1631,8 @@ Optional Features:
   --enable-version-specific-runtime-libs
                           specify that runtime libraries should be installed
                           in a compiler-specific directory
+  --enable-poison-system-directories
+                          warn for use of native system header directories
   --enable-plugin         enable plugin support
   --disable-libquadmath-support
                           disable libquadmath support for Fortran
@@ -27103,6 +27106,19 @@ if test "${enable_version_specific_runtime_libs+set}" 
= set; then :
 fi
 
 
+# Check whether --enable-poison-system-directories was given.
+if test "${enable_poison_system_directories+set}" = set; then :
+  enableval=$enable_poison_system_directories;
+else
+  enable_poison_system_directories=no
+fi
+
+if test "x${enable_poison_system_directories}" = "xyes"; then
+
+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
+
+fi
+
 # Substitute configuration variables
 
 
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5063,6 +5063,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
                 [specify that runtime libraries should be
                  installed in a compiler-specific directory])])
 
+AC_ARG_ENABLE([poison-system-directories],
+             AS_HELP_STRING([--enable-poison-system-directories],
+                            [warn for use of native system header 
directories]),,
+             [enable_poison_system_directories=no])
+if test "x${enable_poison_system_directories}" = "xyes"; then
+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
+           [1],
+           [Define to warn for use of native system header directories])
+fi
+
 # Substitute configuration variables
 AC_SUBST(subdirs)
 AC_SUBST(srcdir)
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -258,6 +258,7 @@ Objective-C and Objective-C++ Dialects}.
 -Woverlength-strings  -Wpacked  -Wpacked-bitfield-compat  -Wpadded @gol
 -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
 -Wpointer-arith  -Wno-pointer-to-int-cast @gol
+-Wno-poison-system-directories @gol
 -Wredundant-decls  -Wno-return-local-addr @gol
 -Wreturn-type  -Wsequence-point  -Wshadow @gol
 -Wsign-compare  -Wsign-conversion  -Wsizeof-pointer-memaccess @gol
@@ -4007,6 +4008,14 @@ headers---for that, @option{-Wunknown-pragmas} must also 
be used.
  for most targets, it is made up of code and thus requires the stack
  to be made executable in order for the program to work properly.
 
+@item -Wno-poison-system-directories
+@opindex Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling.  This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
 @item -Wfloat-equal
 @opindex Wfloat-equal
 @opindex Wno-float-equal
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -740,6 +740,8 @@ proper position among the other output files.  */
    "%{fuse-ld=*:-fuse-ld=%*}\
     %X %{o*} %{e*} %{N} %{n} %{r}\
     %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\
+    %{Wno-poison-system-directories:--no-poison-system-directories}\
+    %{Werror=poison-system-directories:--error-poison-system-directories}\
     %{static:} %{L*} %(mfwrap) %(link_libgcc) " SANITIZER_EARLY_SPEC " %o\
     %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
     %{fgnu-tm:%:include(libitm.spec)%(link_itm)}\
--- a/gcc/incpath.c
+++ b/gcc/incpath.c
@@ -28,6 +28,7 @@
 #include "intl.h"
 #include "incpath.h"
 #include "cppdefault.h"
+#include "diagnostic-core.h"
 
 /* Microsoft Windows does not natively support inodes.
    VMS has non-numeric inodes.  */
@@ -382,6 +382,26 @@ merge_include_chains (const char *sysroot, cpp_reader 
*pfile, int verbose)
        }
       fprintf (stderr, _("End of search list.\n"));
     }
+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+  if (flag_poison_system_directories)
+    {
+       struct cpp_dir *p;
+
+       for (p = heads[QUOTE]; p; p = p->next)
+         {
+          if ((!strncmp (p->name, "/usr/include", 12))
+              || (!strncmp (p->name, "/usr/local/include", 18))
+              || (!strncmp (p->name, "/usr/X11R6/include", 18))
+              || (!strncmp (p->name, "/sw/include", 11))
+              || (!strncmp (p->name, "/opt/include", 12)))
+            warning (OPT_Wpoison_system_directories,
+                     "include location \"%s\" is unsafe for "
+                     "cross-compilation",
+                     p->name);
+         }
+    }
+#endif
 }
 
 /* Use given -I paths for #include "..." but not #include <...>, and



1.1                  src/patchsets/gcc/4.8.5/gentoo/74_all_gcc48_cloog-dl.patch

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
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

Index: 74_all_gcc48_cloog-dl.patch
===================================================================
dlopen cloog-isl library rather than link to it directly.  This prevents
cloog upgrades that change the soname from breaking the compiler.

http://pkgs.fedoraproject.org/cgit/gcc.git/tree/gcc48-cloog-dl.patch


In FreeBSD dlopen is part of libc so we can't just hardcode -ldl.

2013-03-30  Ryan Hill  <dirtye...@gentoo.org>

    * configure.ac (DL_LIB): Check how to dlopen.
    * configure: Regenerate.
    * Makefile.in (BACKENDLIBS): Use DL_LIB.


--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1020,7 +1020,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
 # and the system's installed libraries.
 LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
        $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
-BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+BACKENDLIBS = $(if $(CLOOGLIBS),@DL_LIB@) $(GMPLIBS) $(PLUGINLIBS) 
$(HOST_LIBS) \
        $(ZLIB)
 # Any system libraries needed just for GNAT.
 SYSLIBS = @GNAT_LIBEXC@
@@ -3443,6 +3443,15 @@ $(common_out_object_file): $(common_out_file) 
$(CONFIG_H) $(SYSTEM_H) \
     $(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(OPTS_H) $(TM_H) $(TM_P_H) $(MACHMODE_H)
        $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
          $< $(OUTPUT_OPTION)
+
+graphite%.o : \
+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+graphite.o : \
+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+graphite%.o : \
+  ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
+graphite.o : \
+  ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
 #
 # Generate header and source files from the machine description,
 # and compile them.
--- a/gcc/configure
+++ b/gcc/configure
@@ -602,6 +602,7 @@ ac_subst_vars='LTLIBOBJS
 LIBOBJS
 enable_plugin
 pluginlibs
+DL_LIB
 CLOOGINC
 CLOOGLIBS
 ISLINC
@@ -27263,6 +27264,7 @@ $as_echo "unable to check" >&6; }
   fi
 
   # Check -ldl
+  DL_LIB=
   saved_LIBS="$LIBS"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing 
dlopen" >&5
 $as_echo_n "checking for library containing dlopen... " >&6; }
@@ -27322,9 +27324,11 @@ fi
 
   if test x"$ac_cv_search_dlopen" = x"-ldl"; then
     pluginlibs="$pluginlibs -ldl"
+       DL_LIB=$ac_cv_search_dlopen
   fi
   LIBS="$saved_LIBS"
 
+
   # Check that we can build shared objects with -fPIC -shared
   saved_LDFLAGS="$LDFLAGS"
   saved_CFLAGS="$CFLAGS"
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5212,12 +5212,15 @@ if test x"$enable_plugin" = x"yes"; then
   fi
 
   # Check -ldl
+  DL_LIB=
   saved_LIBS="$LIBS"
   AC_SEARCH_LIBS([dlopen], [dl])
   if test x"$ac_cv_search_dlopen" = x"-ldl"; then
     pluginlibs="$pluginlibs -ldl"
+       DL_LIB=$ac_cv_search_dlopen
   fi
   LIBS="$saved_LIBS"
+  AC_SUBST(DL_LIB)
 
   # Check that we can build shared objects with -fPIC -shared
   saved_LDFLAGS="$LDFLAGS"
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_for *loop, mpz_t low, 
mpz_t up)
    from STMT_FOR.  */
 
 static tree
-type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip)
+type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip)
 {
   mpz_t bound_one, bound_two;
   tree lb_type, ub_type;
@@ -918,8 +918,8 @@ type_for_clast_for (struct clast_for *stmt_for, 
ivs_params_p ip)
   mpz_init (bound_one);
   mpz_init (bound_two);
 
-  lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two);
-  ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two);
+  lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two);
+  ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two);
 
   mpz_clear (bound_one);
   mpz_clear (bound_two);
--- a/gcc/graphite-poly.h
+++ b/gcc/graphite-poly.h
@@ -22,6 +22,396 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_GRAPHITE_POLY_H
 #define GCC_GRAPHITE_POLY_H
 
+#include <isl/aff.h>
+#include <isl/schedule.h>
+#include <isl/ilp.h>
+#include <isl/flow.h>
+#include <isl/options.h>
+#include <cloog/isl/cloog.h>
+#include <dlfcn.h>
+#ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE
+#include <isl/deprecated/aff_int.h>
+#include <isl/deprecated/ilp_int.h>
+#include <isl/deprecated/constraint_int.h>
+#define DYNSYM_ZERO_DISTANCE DYNSYM (isl_band_member_is_coincident)
+#define NEW_DYNSYMS \
+  DYNSYM (isl_schedule_constraints_compute_schedule); \
+  DYNSYM (isl_schedule_constraints_on_domain); \
+  DYNSYM (isl_schedule_constraints_set_coincidence); \
+  DYNSYM (isl_schedule_constraints_set_proximity); \
+  DYNSYM (isl_schedule_constraints_set_validity);
+#else
+#define DYNSYM_ZERO_DISTANCE DYNSYM (isl_band_member_is_zero_distance)
+#define NEW_DYNSYMS
+#endif
+#define DYNSYMS \
+  DYNSYM (clast_pprint); \
+  DYNSYM (cloog_clast_create_from_input); \
+  DYNSYM (cloog_clast_free); \
+  DYNSYM (cloog_domain_from_isl_set); \
+  DYNSYM (cloog_input_alloc); \
+  DYNSYM (cloog_isl_state_malloc); \
+  DYNSYM (cloog_options_free); \
+  DYNSYM (cloog_options_malloc); \
+  DYNSYM (cloog_scattering_from_isl_map); \
+  DYNSYM (cloog_state_free); \
+  DYNSYM (cloog_union_domain_add_domain); \
+  DYNSYM (cloog_union_domain_alloc); \
+  DYNSYM (cloog_union_domain_set_name); \
+  DYNSYM (isl_aff_add_coefficient_si); \
+  DYNSYM (isl_aff_add_constant); \
+  DYNSYM (isl_aff_free); \
+  DYNSYM (isl_aff_get_coefficient); \
+  DYNSYM (isl_aff_get_space); \
+  DYNSYM (isl_aff_mod); \
+  DYNSYM (isl_aff_set_coefficient_si); \
+  DYNSYM (isl_aff_set_constant_si); \
+  DYNSYM (isl_aff_zero_on_domain); \
+  DYNSYM (isl_band_free); \
+  DYNSYM (isl_band_get_children); \
+  DYNSYM (isl_band_get_partial_schedule); \
+  DYNSYM (isl_band_has_children); \
+  DYNSYM (isl_band_list_free); \
+  DYNSYM (isl_band_list_get_band); \
+  DYNSYM (isl_band_list_get_ctx); \
+  DYNSYM (isl_band_list_n_band); \
+  DYNSYM_ZERO_DISTANCE; \
+  DYNSYM (isl_band_n_member); \
+  DYNSYM (isl_basic_map_add_constraint); \
+  DYNSYM (isl_basic_map_project_out); \
+  DYNSYM (isl_basic_map_universe); \
+  DYNSYM (isl_constraint_set_coefficient); \
+  DYNSYM (isl_constraint_set_coefficient_si); \
+  DYNSYM (isl_constraint_set_constant); \
+  DYNSYM (isl_constraint_set_constant_si); \
+  DYNSYM (isl_ctx_alloc); \
+  DYNSYM (isl_ctx_free); \
+  DYNSYM (isl_equality_alloc); \
+  DYNSYM (isl_id_alloc); \
+  DYNSYM (isl_id_copy); \
+  DYNSYM (isl_id_free); \
+  DYNSYM (isl_inequality_alloc); \
+  DYNSYM (isl_local_space_copy); \
+  DYNSYM (isl_local_space_free); \
+  DYNSYM (isl_local_space_from_space); \
+  DYNSYM (isl_local_space_range); \
+  DYNSYM (isl_map_add_constraint); \
+  DYNSYM (isl_map_add_dims); \
+  DYNSYM (isl_map_align_params); \
+  DYNSYM (isl_map_apply_range); \
+  DYNSYM (isl_map_copy); \
+  DYNSYM (isl_map_dim); \
+  DYNSYM (isl_map_dump); \
+  DYNSYM (isl_map_equate); \
+  DYNSYM (isl_map_fix_si); \
+  DYNSYM (isl_map_flat_product); \
+  DYNSYM (isl_map_flat_range_product); \
+  DYNSYM (isl_map_free); \
+  DYNSYM (isl_map_from_basic_map); \
+  DYNSYM (isl_map_from_pw_aff); \
+  DYNSYM (isl_map_from_union_map); \
+  DYNSYM (isl_map_get_ctx); \
+  DYNSYM (isl_map_get_space); \
+  DYNSYM (isl_map_get_tuple_id); \
+  DYNSYM (isl_map_insert_dims); \
+  DYNSYM (isl_map_intersect); \
+  DYNSYM (isl_map_intersect_domain); \
+  DYNSYM (isl_map_intersect_range); \
+  DYNSYM (isl_map_is_empty); \
+  DYNSYM (isl_map_lex_ge); \
+  DYNSYM (isl_map_lex_le); \
+  DYNSYM (isl_map_n_out); \
+  DYNSYM (isl_map_range); \
+  DYNSYM (isl_map_set_tuple_id); \
+  DYNSYM (isl_map_universe); \
+  DYNSYM (isl_options_set_on_error); \
+  DYNSYM (isl_options_set_schedule_fuse); \
+  DYNSYM (isl_options_set_schedule_max_constant_term); \
+  DYNSYM (isl_options_set_schedule_maximize_band_depth); \
+  DYNSYM (isl_printer_free); \
+  DYNSYM (isl_printer_print_aff); \
+  DYNSYM (isl_printer_print_constraint); \
+  DYNSYM (isl_printer_print_map); \
+  DYNSYM (isl_printer_print_set); \
+  DYNSYM (isl_printer_to_file); \
+  DYNSYM (isl_pw_aff_add); \
+  DYNSYM (isl_pw_aff_alloc); \
+  DYNSYM (isl_pw_aff_copy); \
+  DYNSYM (isl_pw_aff_eq_set); \
+  DYNSYM (isl_pw_aff_free); \
+  DYNSYM (isl_pw_aff_from_aff); \
+  DYNSYM (isl_pw_aff_ge_set); \
+  DYNSYM (isl_pw_aff_gt_set); \
+  DYNSYM (isl_pw_aff_is_cst); \
+  DYNSYM (isl_pw_aff_le_set); \
+  DYNSYM (isl_pw_aff_lt_set); \
+  DYNSYM (isl_pw_aff_mod); \
+  DYNSYM (isl_pw_aff_mul); \
+  DYNSYM (isl_pw_aff_ne_set); \
+  DYNSYM (isl_pw_aff_nonneg_set); \
+  DYNSYM (isl_pw_aff_set_tuple_id); \
+  DYNSYM (isl_pw_aff_sub); \
+  DYNSYM (isl_pw_aff_zero_set); \
+  DYNSYM (isl_schedule_free); \
+  DYNSYM (isl_schedule_get_band_forest); \
+  DYNSYM (isl_set_add_constraint); \
+  DYNSYM (isl_set_add_dims); \
+  DYNSYM (isl_set_apply); \
+  DYNSYM (isl_set_coalesce); \
+  DYNSYM (isl_set_copy); \
+  DYNSYM (isl_set_dim); \
+  DYNSYM (isl_set_fix_si); \
+  DYNSYM (isl_set_free); \
+  DYNSYM (isl_set_from_cloog_domain); \
+  DYNSYM (isl_set_get_space); \
+  DYNSYM (isl_set_get_tuple_id); \
+  DYNSYM (isl_set_intersect); \
+  DYNSYM (isl_set_is_empty); \
+  DYNSYM (isl_set_max); \
+  DYNSYM (isl_set_min); \
+  DYNSYM (isl_set_n_dim); \
+  DYNSYM (isl_set_nat_universe); \
+  DYNSYM (isl_set_project_out); \
+  DYNSYM (isl_set_set_tuple_id); \
+  DYNSYM (isl_set_universe); \
+  DYNSYM (isl_space_add_dims); \
+  DYNSYM (isl_space_alloc); \
+  DYNSYM (isl_space_copy); \
+  DYNSYM (isl_space_dim); \
+  DYNSYM (isl_space_domain); \
+  DYNSYM (isl_space_find_dim_by_id); \
+  DYNSYM (isl_space_free); \
+  DYNSYM (isl_space_from_domain); \
+  DYNSYM (isl_space_get_tuple_id); \
+  DYNSYM (isl_space_params_alloc); \
+  DYNSYM (isl_space_range); \
+  DYNSYM (isl_space_set_alloc); \
+  DYNSYM (isl_space_set_dim_id); \
+  DYNSYM (isl_space_set_tuple_id); \
+  DYNSYM (isl_union_map_add_map); \
+  DYNSYM (isl_union_map_align_params); \
+  DYNSYM (isl_union_map_apply_domain); \
+  DYNSYM (isl_union_map_apply_range); \
+  DYNSYM (isl_union_map_compute_flow); \
+  DYNSYM (isl_union_map_copy); \
+  DYNSYM (isl_union_map_empty); \
+  DYNSYM (isl_union_map_flat_range_product); \
+  DYNSYM (isl_union_map_foreach_map); \
+  DYNSYM (isl_union_map_free); \
+  DYNSYM (isl_union_map_from_map); \
+  DYNSYM (isl_union_map_get_ctx); \
+  DYNSYM (isl_union_map_get_space); \
+  DYNSYM (isl_union_map_gist_domain); \
+  DYNSYM (isl_union_map_gist_range); \
+  DYNSYM (isl_union_map_intersect_domain); \
+  DYNSYM (isl_union_map_is_empty); \
+  DYNSYM (isl_union_map_subtract); \
+  DYNSYM (isl_union_map_union); \
+  DYNSYM (isl_union_set_add_set); \
+  DYNSYM (isl_union_set_compute_schedule); \
+  DYNSYM (isl_union_set_copy); \
+  DYNSYM (isl_union_set_empty); \
+  DYNSYM (isl_union_set_from_set); \
+  DYNSYM (stmt_ass); \
+  DYNSYM (stmt_block); \
+  DYNSYM (stmt_for); \
+  DYNSYM (stmt_guard); \
+  DYNSYM (stmt_root); \
+  DYNSYM (stmt_user);
+extern struct cloog_pointers_s__
+{
+  bool inited;
+  void *h;
+#define DYNSYM(x) __typeof (x) *p_##x
+  DYNSYMS
+  NEW_DYNSYMS
+#undef DYNSYM
+} cloog_pointers__;
+
+#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
+#define clast_pprint (*cloog_pointers__.p_clast_pprint)
+#define cloog_clast_create_from_input 
(*cloog_pointers__.p_cloog_clast_create_from_input)
+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
+#define cloog_domain_from_isl_set 
(*cloog_pointers__.p_cloog_domain_from_isl_set)
+#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc)
+#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc)
+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
+#define cloog_scattering_from_isl_map 
(*cloog_pointers__.p_cloog_scattering_from_isl_map)
+#define cloog_state_free (*cloog_pointers__.p_cloog_state_free)
+#define cloog_union_domain_add_domain 
(*cloog_pointers__.p_cloog_union_domain_add_domain)
+#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc)
+#define cloog_union_domain_set_name 
(*cloog_pointers__.p_cloog_union_domain_set_name)
+#define isl_aff_add_coefficient_si 
(*cloog_pointers__.p_isl_aff_add_coefficient_si)
+#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant)
+#define isl_aff_free (*cloog_pointers__.p_isl_aff_free)
+#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient)
+#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space)
+#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod)
+#define isl_aff_set_coefficient_si 
(*cloog_pointers__.p_isl_aff_set_coefficient_si)
+#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si)
+#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain)
+#define isl_band_free (*cloog_pointers__.p_isl_band_free)
+#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children)
+#define isl_band_get_partial_schedule 
(*cloog_pointers__.p_isl_band_get_partial_schedule)
+#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children)
+#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free)
+#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band)
+#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx)
+#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band)
+#ifdef HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE
+#define isl_band_member_is_coincident 
(*cloog_pointers__.p_isl_band_member_is_coincident)
+#else
+#define isl_band_member_is_zero_distance 
(*cloog_pointers__.p_isl_band_member_is_zero_distance)
+#endif
+#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member)
+#define isl_basic_map_add_constraint 
(*cloog_pointers__.p_isl_basic_map_add_constraint)
+#define isl_basic_map_project_out 
(*cloog_pointers__.p_isl_basic_map_project_out)
+#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe)
+#define isl_constraint_set_coefficient 
(*cloog_pointers__.p_isl_constraint_set_coefficient)
+#define isl_constraint_set_coefficient_si 
(*cloog_pointers__.p_isl_constraint_set_coefficient_si)
+#define isl_constraint_set_constant 
(*cloog_pointers__.p_isl_constraint_set_constant)
+#define isl_constraint_set_constant_si 
(*cloog_pointers__.p_isl_constraint_set_constant_si)
+#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc)
+#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free)
+#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc)
+#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc)
+#define isl_id_copy (*cloog_pointers__.p_isl_id_copy)
+#define isl_id_free (*cloog_pointers__.p_isl_id_free)
+#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc)
+#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy)
+#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free)
+#define isl_local_space_from_space 
(*cloog_pointers__.p_isl_local_space_from_space)
+#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range)
+#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint)
+#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims)
+#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params)
+#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range)
+#define isl_map_copy (*cloog_pointers__.p_isl_map_copy)
+#define isl_map_dim (*cloog_pointers__.p_isl_map_dim)
+#define isl_map_dump (*cloog_pointers__.p_isl_map_dump)
+#define isl_map_equate (*cloog_pointers__.p_isl_map_equate)
+#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si)
+#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product)
+#define isl_map_flat_range_product 
(*cloog_pointers__.p_isl_map_flat_range_product)
+#define isl_map_free (*cloog_pointers__.p_isl_map_free)
+#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map)
+#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff)
+#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map)
+#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx)
+#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space)
+#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id)
+#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims)
+#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect)
+#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain)
+#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range)
+#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty)
+#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge)
+#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le)
+#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out)
+#define isl_map_range (*cloog_pointers__.p_isl_map_range)
+#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id)
+#define isl_map_universe (*cloog_pointers__.p_isl_map_universe)
+#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error)
+#define isl_options_set_schedule_fuse 
(*cloog_pointers__.p_isl_options_set_schedule_fuse)
+#define isl_options_set_schedule_max_constant_term 
(*cloog_pointers__.p_isl_options_set_schedule_max_constant_term)
+#define isl_options_set_schedule_maximize_band_depth 
(*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth)
+#define isl_printer_free (*cloog_pointers__.p_isl_printer_free)
+#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff)
+#define isl_printer_print_constraint 
(*cloog_pointers__.p_isl_printer_print_constraint)
+#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map)
+#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set)
+#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file)
+#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add)
+#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc)
+#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy)
+#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set)
+#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free)
+#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff)
+#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set)
+#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set)
+#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst)
+#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set)
+#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set)
+#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod)
+#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul)
+#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set)
+#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set)
+#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id)
+#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub)
+#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set)
+#define isl_schedule_constraints_compute_schedule 
(*cloog_pointers__.p_isl_schedule_constraints_compute_schedule)
+#define isl_schedule_constraints_on_domain 
(*cloog_pointers__.p_isl_schedule_constraints_on_domain)
+#define isl_schedule_constraints_set_coincidence 
(*cloog_pointers__.p_isl_schedule_constraints_set_coincidence)
+#define isl_schedule_constraints_set_proximity 
(*cloog_pointers__.p_isl_schedule_constraints_set_proximity)
+#define isl_schedule_constraints_set_validity 
(*cloog_pointers__.p_isl_schedule_constraints_set_validity)
+#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free)
+#define isl_schedule_get_band_forest 
(*cloog_pointers__.p_isl_schedule_get_band_forest)
+#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint)
+#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims)
+#define isl_set_apply (*cloog_pointers__.p_isl_set_apply)
+#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce)
+#define isl_set_copy (*cloog_pointers__.p_isl_set_copy)
+#define isl_set_dim (*cloog_pointers__.p_isl_set_dim)
+#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si)
+#define isl_set_free (*cloog_pointers__.p_isl_set_free)
+#define isl_set_from_cloog_domain 
(*cloog_pointers__.p_isl_set_from_cloog_domain)
+#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space)
+#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id)
+#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect)
+#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty)
+#define isl_set_max (*cloog_pointers__.p_isl_set_max)
+#define isl_set_min (*cloog_pointers__.p_isl_set_min)
+#define isl_set_n_dim (*cloog_pointers__.p_isl_set_n_dim)
+#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe)
+#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out)
+#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id)
+#define isl_set_universe (*cloog_pointers__.p_isl_set_universe)
+#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims)
+#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc)
+#define isl_space_copy (*cloog_pointers__.p_isl_space_copy)
+#define isl_space_dim (*cloog_pointers__.p_isl_space_dim)
+#define isl_space_domain (*cloog_pointers__.p_isl_space_domain)
+#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id)
+#define isl_space_free (*cloog_pointers__.p_isl_space_free)
+#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain)
+#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id)
+#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc)
+#define isl_space_range (*cloog_pointers__.p_isl_space_range)
+#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc)
+#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id)
+#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id)
+#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map)
+#define isl_union_map_align_params 
(*cloog_pointers__.p_isl_union_map_align_params)
+#define isl_union_map_apply_domain 
(*cloog_pointers__.p_isl_union_map_apply_domain)
+#define isl_union_map_apply_range 
(*cloog_pointers__.p_isl_union_map_apply_range)
+#define isl_union_map_compute_flow 
(*cloog_pointers__.p_isl_union_map_compute_flow)
+#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy)
+#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty)
+#define isl_union_map_flat_range_product 
(*cloog_pointers__.p_isl_union_map_flat_range_product)
+#define isl_union_map_foreach_map 
(*cloog_pointers__.p_isl_union_map_foreach_map)
+#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free)
+#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map)
+#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx)
+#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space)
+#define isl_union_map_gist_domain 
(*cloog_pointers__.p_isl_union_map_gist_domain)
+#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range)
+#define isl_union_map_intersect_domain 
(*cloog_pointers__.p_isl_union_map_intersect_domain)
+#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty)
+#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract)
+#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union)
+#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set)
+#define isl_union_set_compute_schedule 
(*cloog_pointers__.p_isl_union_set_compute_schedule)
+#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy)
+#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty)
+#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set)
+#define stmt_ass (*cloog_pointers__.p_stmt_ass)
+#define stmt_block (*cloog_pointers__.p_stmt_block)
+#define stmt_for (*cloog_pointers__.p_stmt_for)
+#define stmt_guard (*cloog_pointers__.p_stmt_guard)
+#define stmt_root (*cloog_pointers__.p_stmt_root)
+#define stmt_user (*cloog_pointers__.p_stmt_user)
+
 typedef struct poly_dr *poly_dr_p;
 
 typedef struct poly_bb *poly_bb_p;
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -65,6 +65,34 @@ along with GCC; see the file COPYING3.  If not see
 
 CloogState *cloog_state;
 
+__typeof (cloog_pointers__) cloog_pointers__;
+
+static bool
+init_cloog_pointers (void)
+{
+  void *h;
+
+  if (cloog_pointers__.inited)
+    return cloog_pointers__.h != NULL;
+  h = dlopen ("libcloog-isl.so.4", RTLD_LAZY);
+  cloog_pointers__.h = h;
+  if (h == NULL)
+    return false;
+#define DYNSYM(x) \
+  do \
+    { \
+      union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
+      u.q = dlsym (h, #x); \
+      if (u.q == NULL) \
+       return false; \
+      cloog_pointers__.p_##x = u.p; \
+    } \
+  while (0)
+  DYNSYMS
+#undef DYNSYM
+  return true;
+}
+
 /* Print global statistics to FILE.  */
 
 static void
@@ -263,6 +291,15 @@ graphite_transform_loops (void)
   if (parallelized_function_p (cfun->decl))
     return;
 
+  if (number_of_loops () <= 1)
+    return;
+
+  if (!init_cloog_pointers ())
+    {
+      sorry ("Graphite loop optimizations cannot be used");
+      return;
+    }
+
   ctx = isl_ctx_alloc ();
   isl_options_set_on_error(ctx, ISL_ON_ERROR_ABORT);
   if (!graphite_initialize (ctx))



1.1                  
src/patchsets/gcc/4.8.5/gentoo/90_all_pr55930-dependency-tracking.patch

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
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

Index: 90_all_pr55930-dependency-tracking.patch
===================================================================
libatomic build failure if configured with --disable-dependency-tracking
load_n.c:115:1: fatal error: opening dependency file .deps/load_1_.lo.Ppo: No 
such file or directory

https://bugs.gentoo.org/463463
http://gcc.gnu.org/PR55930

--- a/libatomic/Makefile.in
+++ b/libatomic/Makefile.in
@@ -298,7 +298,8 @@ PAT_N = $(word 2,$(PAT_SPLIT))
 PAT_S = $(word 3,$(PAT_SPLIT))
 IFUNC_DEF = -DIFUNC_ALT=$(PAT_S)
 IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS))
-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
+@AMDEP_FALSE@M_DEPS =
 M_SIZE = -DN=$(PAT_N)
 M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
 M_FILE = $(PAT_BASE)_n.c



1.1                  
src/patchsets/gcc/4.8.5/gentoo/91_all_pr61538-atomic-compare-exchange.patch

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
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

Index: 91_all_pr61538-atomic-compare-exchange.patch
===================================================================
2015-02-19  Joshua Kinard  <ku...@gentoo.org>

        Fix __atomic_* builtins broken on R10000-based MIPS systems
        PR61538 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61538
        Bug 516548 https://bugs.gentoo.org/516548

--- a/gcc/config/mips/mips.c    2014-03-08 04:27:23.000000000 -0500
+++ b/gcc/config/mips/mips.c    2015-02-18 06:30:22.365154629 -0500
@@ -12867,7 +12867,14 @@ mips_process_sync_loop (rtx insn, rtx *o
      This will sometimes be a delayed branch; see the write code below
      for details.  */
   mips_multi_add_insn (is_64bit_p ? "scd\t%0,%1" : "sc\t%0,%1", at, mem, NULL);
-  mips_multi_add_insn ("beq%?\t%0,%.,1b", at, NULL);
+
+  /* When using branch likely (-mfix-r10000), the delay slot instruction
+     will be annulled on false.  The normal delay slot instructions
+     calculate the overall result of the atomic operation and must not
+     be annulled.  To ensure this behaviour unconditionally use a NOP
+     in the delay slot for the branch likely case.  */
+
+  mips_multi_add_insn ("beq%?\t%0,%.,1b%~", at, NULL);
 
   /* if (INSN1 != MOVE && INSN1 != LI) NEWVAL = $TMP3 [delay slot].  */
   if (insn1 != SYNC_INSN1_MOVE && insn1 != SYNC_INSN1_LI && tmp3 != newval)
@@ -12875,7 +12882,7 @@ mips_process_sync_loop (rtx insn, rtx *o
       mips_multi_copy_insn (tmp3_insn);
       mips_multi_set_operand (mips_multi_last_index (), 0, newval);
     }
-  else if (!(required_oldval && cmp))
+  else if (!(required_oldval && cmp) && !mips_branch_likely)
     mips_multi_add_insn ("nop", NULL);
 
   /* CMP = 1 -- either standalone or in a delay slot.  */
@@ -12899,12 +12906,12 @@ mips_process_sync_loop (rtx insn, rtx *o
 const char *
 mips_output_sync_loop (rtx insn, rtx *operands)
 {
-  mips_process_sync_loop (insn, operands);
-
   /* Use branch-likely instructions to work around the LL/SC R10000
      errata.  */
   mips_branch_likely = TARGET_FIX_R10000;
 
+  mips_process_sync_loop (insn, operands);
+
   mips_push_asm_switch (&mips_noreorder);
   mips_push_asm_switch (&mips_nomacro);
   mips_push_asm_switch (&mips_noat);
@@ -12926,6 +12933,9 @@ mips_output_sync_loop (rtx insn, rtx *op
 unsigned int
 mips_sync_loop_insns (rtx insn, rtx *operands)
 {
+  /* Use branch-likely instructions to work around the LL/SC R10000
+     errata.  */
+  mips_branch_likely = TARGET_FIX_R10000;
   mips_process_sync_loop (insn, operands);
   return mips_multi_num_insns;
 }



1.1                  src/patchsets/gcc/4.8.5/gentoo/92_all_freebsd-pie.patch

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
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

Index: 92_all_freebsd-pie.patch
===================================================================
https://bugs.gentoo.org/415185
http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00555.html

From: Alexis Ballier <aball...@gentoo.org>
To: gcc-patc...@gcc.gnu.org
Cc: Alexis Ballier <aball...@gentoo.org>
Date: Tue, 8 May 2012 09:53:43 -0400
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.

gcc/config/i386/freebsd.h: Likewise.
---
 gcc/config/freebsd-spec.h |    9 +++------
 gcc/config/i386/freebsd.h |    9 +++------
 2 files changed, 6 insertions(+), 12 deletions(-)

--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
@@ -64,11 +64,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If 
not, see
        before entering `main'.  */
    
 #define FBSD_STARTFILE_SPEC \
-  "%{!shared: \
-     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-                      %{!p:%{profile:gcrt1.o%s} \
-                        %{!profile:crt1.o%s}}}} \
-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
 /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
    the magical crtend.o file (see crtstuff.c) which provides part of 
@@ -77,7 +74,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If 
not, see
        `crtn.o'.  */
 
 #define FBSD_ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
 /* Provide a LIB_SPEC appropriate for FreeBSD as configured and as
    required by the user-land thread model.  Before __FreeBSD_version
--- a/gcc/config/i386/freebsd.h
+++ b/gcc/config/i386/freebsd.h
@@ -67,11 +67,8 @@ along with GCC; see the file COPYING3.  If not see
    
 #undef STARTFILE_SPEC
 #define STARTFILE_SPEC \
-  "%{!shared: \
-     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-                      %{!p:%{profile:gcrt1.o%s} \
-                        %{!profile:crt1.o%s}}}} \
-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
 /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
    the magical crtend.o file (see crtstuff.c) which provides part of 
@@ -81,7 +78,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef ENDFILE_SPEC
 #define ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
 /* Provide a LINK_SPEC appropriate for FreeBSD.  Here we provide support
    for the special GCC options -static and -shared, which allow us to
-- 
1.7.8.6



1.1                  src/patchsets/gcc/4.8.5/gentoo/93_all_4.9.0_pr60155.patch

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
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

Index: 93_all_4.9.0_pr60155.patch
===================================================================
[ICE/4.8] building net-misc/openssh-6.6_p1 hits get_pressure_class_and_nregs at 
gcse.c:3438 on alpha
https://bugs.gentoo.org/show_bug.cgi?id=512586
https://gcc.gnu.org/PR60155


commit 97f436b3eac628b0ec06d01ea5b8e6426b51e0f4
Author: danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Apr 4 22:25:51 2014 +0000

        PR rtl-optimization/60155
        * gcse.c (record_set_data): New function.
        (single_set_gcse): New function.
        (gcse_emit_move_after): Use single_set_gcse instead of single_set.
        (hoist_code): Likewise.
        (get_pressure_class_and_nregs): Likewise.
    
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209134 
138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog |  9 ++++++++
 gcc/gcse.c    | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 73 insertions(+), 7 deletions(-)

--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -2502,6 +2502,65 @@ pre_insert_copies (void)
       }
 }
 
+struct set_data
+{
+  rtx insn;
+  const_rtx set;
+  int nsets;
+};
+
+/* Increment number of sets and record set in DATA.  */
+
+static void
+record_set_data (rtx dest, const_rtx set, void *data)
+{
+  struct set_data *s = (struct set_data *)data;
+
+  if (GET_CODE (set) == SET)
+    {
+      /* We allow insns having multiple sets, where all but one are
+        dead as single set insns.  In the common case only a single
+        set is present, so we want to avoid checking for REG_UNUSED
+        notes unless necessary.  */
+      if (s->nsets == 1
+         && find_reg_note (s->insn, REG_UNUSED, SET_DEST (s->set))
+         && !side_effects_p (s->set))
+       s->nsets = 0;
+
+      if (!s->nsets)
+       {
+         /* Record this set.  */
+         s->nsets += 1;
+         s->set = set;
+       }
+      else if (!find_reg_note (s->insn, REG_UNUSED, dest)
+              || side_effects_p (set))
+       s->nsets += 1;
+    }
+}
+
+static const_rtx
+single_set_gcse (rtx insn)
+{
+  struct set_data s;
+  rtx pattern;
+  
+  gcc_assert (INSN_P (insn));
+
+  /* Optimize common case.  */
+  pattern = PATTERN (insn);
+  if (GET_CODE (pattern) == SET)
+    return pattern;
+
+  s.insn = insn;
+  s.nsets = 0;
+  note_stores (pattern, record_set_data, &s);
+
+  /* Considered invariant insns have exactly one set.  */
+  gcc_assert (s.nsets == 1);
+  return s.set;
+}
+
 /* Emit move from SRC to DEST noting the equivalence with expression computed
    in INSN.  */
 
@@ -2509,7 +2568,8 @@ static rtx
 gcse_emit_move_after (rtx dest, rtx src, rtx insn)
 {
   rtx new_rtx;
-  rtx set = single_set (insn), set2;
+  const_rtx set = single_set_gcse (insn);
+  rtx set2;
   rtx note;
   rtx eqv = NULL_RTX;
 
@@ -3369,13 +3429,12 @@ hoist_code (void)
              FOR_EACH_VEC_ELT (occrs_to_hoist, j, occr)
                {
                  rtx insn;
-                 rtx set;
+                 const_rtx set;
 
                  gcc_assert (!occr->deleted_p);
 
                  insn = occr->insn;
-                 set = single_set (insn);
-                 gcc_assert (set);
+                 set = single_set_gcse (insn);
 
                  /* Create a pseudo-reg to store the result of reaching
                     expressions into.  Get the mode for the new pseudo
@@ -3456,10 +3515,8 @@ get_pressure_class_and_nregs (rtx insn, int *nregs)
 {
   rtx reg;
   enum reg_class pressure_class;
-  rtx set = single_set (insn);
+  const_rtx set = single_set_gcse (insn);
 
-  /* Considered invariant insns have only one set.  */
-  gcc_assert (set != NULL_RTX);
   reg = SET_DEST (set);
   if (GET_CODE (reg) == SUBREG)
     reg = SUBREG_REG (reg);



1.1                  
src/patchsets/gcc/4.8.5/gentoo/93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch

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
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

Index: 93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch
===================================================================
https://gcc.gnu.org/ml/gcc-patches/2014-11/msg03092.html
https://gcc.gnu.org/PR57125
https://gcc.gnu.org/PR61899
https://bugs.gentoo.org/463796
https://bugs.gentoo.org/487398
https://bugs.gentoo.org/545010

fix parallel build issues around config.h/bconfig.h inclusion

note: this also includes:
commit ea38f4be892b22b61a540a102bed374ddb381b9a
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202894 
138bc75d-0d04-0410-961f-82ee72b054a4
which adds to-wrapper.o to ALL_HOST_BACKEND_OBJS

>From ed89620f0e3de714864805f5d29dbab0341a1746 Mon Sep 17 00:00:00 2001
From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 3 Dec 2014 16:44:27 +0000
Subject: [PATCH] Fix building of gengtype

Found bootstrap failures even with this patch (dunno what changed on my box
that I started getting these last night, make has not changed), that time
with errors.o and gcc-ar.o.
The generated headers are solved these days in automatic dependencies world
through
# In order for parallel make to really start compiling the expensive
# objects from $(OBJS) as early as possible, build all their
# prerequisites strictly before all objects.
$(ALL_HOST_OBJS) : | $(generated_files)
and build/*.o have explicit dependencies.
I've tried to compare $(ALL_HOST_OBJS) on my box with all *.o */*.o files
I had in stage3 directory, and besides build/*.o, I found:

crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o crtfastmath.o crtprec32.o 
crtprec64.o crtprec80.o
errors.o gcc-ar.o gcc-nm.o gcc-ranlib.o gengtype-lex.o gengtype.o 
gengtype-parse.o gengtype-state.o

not being listed in ALL_HOST_OBJS.  The crt*.o files come from libgcc build
and thus are ok, the rest I've tried to handle in the following updated
patch.  If the #define GENERATOR_FILE inside of the 5 files is too ugly,
another alternative might be to define both -DHOST_GENERATOR_FILE 
-DGENERATOR_FILE
in Makefile.in and don't error in config.h if GENERATOR_FILE is defined,
if HOST_GENERATOR_FILE is also defined.

2014-12-03  Jakub Jelinek  <ja...@redhat.com>

        * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
        gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
        (GENGTYPE_OBJS): New.
        (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
        Remove explicit dependencies.
        (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
        CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
        instead of -DGENERATOR_FILE.
        (CFLAGS-errors.o): New.
        * gengtype.c: Instead of testing GENERATOR_FILE define, test
        HOST_GENERATOR_FILE.  If defined, include config.h and define
        GENERATOR_FILE afterwards, otherwise include bconfig.h.
        * gengtype-parse.c: Likewise.
        * gengtype-state.c: Likewise.
        * gengtype-lex.l: Likewise.
        * errors.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218325 
138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog        | 75 ++++++++++++++++++++++++++++++++--------------------
 gcc/Makefile.in      | 20 +++++++-------
 gcc/errors.c         |  7 ++---
 gcc/gengtype-lex.l   |  7 ++---
 gcc/gengtype-parse.c |  7 ++---
 gcc/gengtype-state.c |  7 ++---
 gcc/gengtype.c       |  7 ++---
 7 files changed, 77 insertions(+), 53 deletions(-)

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 204bd85..3820d0b 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1509,6 +1509,7 @@ ALL_HOST_FRONTEND_OBJS = $(foreach 
v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
 ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \
   $(OBJS-libcommon-target) @TREEBROWSER@ main.o c-family/cppspec.o \
-  $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS)
+  $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \
+  lto-wrapper.o $(GENGTYPE_OBJS) gcc-ar.o gcc-nm.o gcc-ranlib.o
 
 # This lists all host object files, whether they are included in this
 # compilation or not.
@@ -2484,31 +2485,32 @@ build/gengenrtl.o : gengenrtl.c $(BCONFIG_H) 
$(SYSTEM_H) rtl.def
 # on BCONFIG_H.  For the build objects, add -DGENERATOR_FILE manually,
 # the build-%: rule doesn't apply to them.
 
+GENGTYPE_OBJS = gengtype.o gengtype-parse.o gengtype-state.o \
+  gengtype-lex.o errors.o
+
 gengtype-lex.o build/gengtype-lex.o : gengtype-lex.c gengtype.h $(SYSTEM_H)
-gengtype-lex.o: $(CONFIG_H) $(BCONFIG_H)
-CFLAGS-gengtype-lex.o += -DGENERATOR_FILE
+CFLAGS-gengtype-lex.o += -DHOST_GENERATOR_FILE
 build/gengtype-lex.o: $(BCONFIG_H)
 
 gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \
   $(SYSTEM_H)
-gengtype-parse.o: $(CONFIG_H)
-CFLAGS-gengtype-parse.o += -DGENERATOR_FILE
+CFLAGS-gengtype-parse.o += -DHOST_GENERATOR_FILE
 build/gengtype-parse.o: $(BCONFIG_H)
 
 gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \
   gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \
   $(XREGEX_H)
-gengtype-state.o: $(CONFIG_H)
-CFLAGS-gengtype-state.o += -DGENERATOR_FILE
+CFLAGS-gengtype-state.o += -DHOST_GENERATOR_FILE
 build/gengtype-state.o: $(BCONFIG_H)
 
 gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h        \
   rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \
   $(OBSTACK_H) $(XREGEX_H)
-gengtype.o: $(CONFIG_H)
-CFLAGS-gengtype.o += -DGENERATOR_FILE
+CFLAGS-gengtype.o += -DHOST_GENERATOR_FILE
 build/gengtype.o: $(BCONFIG_H)
 
+CFLAGS-errors.o += -DHOST_GENERATOR_FILE
+
 build/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h    \
   errors.h $(READ_MD_H)
 build/genmodes.o : genmodes.c $(BCONFIG_H) $(SYSTEM_H) errors.h                
\
diff --git a/gcc/errors.c b/gcc/errors.c
index be38b1f..a6a30fe 100644
--- a/gcc/errors.c
+++ b/gcc/errors.c
@@ -21,10 +21,11 @@ along with GCC; see the file COPYING3.  If not see
    in the generator programs; the compiler has a more elaborate suite
    of diagnostic printers, found in diagnostic.c.  */
 
-#ifdef GENERATOR_FILE
-#include "bconfig.h"
-#else
+#ifdef HOST_GENERATOR_FILE
 #include "config.h"
+#define GENERATOR_FILE 1
+#else
+#include "bconfig.h"
 #endif
 #include "system.h"
 #include "errors.h"
diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l
index 5e12885..0866603 100644
--- a/gcc/gengtype-lex.l
+++ b/gcc/gengtype-lex.l
@@ -21,10 +21,11 @@ along with GCC; see the file COPYING3.  If not see
 %option noinput
 
 %{
-#ifdef GENERATOR_FILE
-#include "bconfig.h"
-#else
+#ifdef HOST_GENERATOR_FILE
 #include "config.h"
+#define GENERATOR_FILE 1
+#else
+#include "bconfig.h"
 #endif
 #include "system.h"
 
diff --git a/gcc/gengtype-parse.c b/gcc/gengtype-parse.c
index 0f11cec..87b6917 100644
--- a/gcc/gengtype-parse.c
+++ b/gcc/gengtype-parse.c
@@ -17,10 +17,11 @@
    along with GCC; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>.  */
 
-#ifdef GENERATOR_FILE
-#include "bconfig.h"
-#else
+#ifdef HOST_GENERATOR_FILE
 #include "config.h"
+#define GENERATOR_FILE 1
+#else
+#include "bconfig.h"
 #endif
 #include "system.h"
 #include "gengtype.h"
diff --git a/gcc/gengtype-state.c b/gcc/gengtype-state.c
index 5b7017f..7634f74 100644
--- a/gcc/gengtype-state.c
+++ b/gcc/gengtype-state.c
@@ -23,10 +23,11 @@
    and Basile Starynkevitch <bas...@starynkevitch.net>
 */
 
-#ifdef GENERATOR_FILE
-#include "bconfig.h"
-#else
+#ifdef HOST_GENERATOR_FILE
 #include "config.h"
+#define GENERATOR_FILE 1
+#else
+#include "bconfig.h"
 #endif
 #include "system.h"
 #include "errors.h"    /* For fatal.  */
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index 2dc857e..39d2918 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -17,10 +17,11 @@
    along with GCC; see the file COPYING3.  If not see
    <http://www.gnu.org/licenses/>.  */
 
-#ifdef GENERATOR_FILE
-#include "bconfig.h"
-#else
+#ifdef HOST_GENERATOR_FILE
 #include "config.h"
+#define GENERATOR_FILE 1
+#else
+#include "bconfig.h"
 #endif
 #include "system.h"
 #include "errors.h"            /* for fatal */
-- 
2.3.4



1.1                  src/patchsets/gcc/4.8.5/gentoo/README.history

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/README.history?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.8.5/gentoo/README.history?rev=1.1&content-type=text/plain

Index: README.history
===================================================================
1.0             24 Jun 2015
        + 09_all_default-ssp.patch
        + 10_all_default-fortify-source.patch
        + 11_all_default-warn-format-security.patch
        + 12_all_default-warn-trampolines.patch
        + 15_all_libgfortran-Werror.patch
        + 16_all_libgomp-Werror.patch
        + 17_all_libitm-Werror.patch
        + 18_all_libatomic-Werror.patch
        + 19_all_libbacktrace-Werror.patch
        + 20_all_msgfmt-libstdc++-link.patch
        + 25_all_alpha-mieee-default.patch
        + 26_all_alpha-asm-mcpu.patch
        + 29_all_arm_armv4t-default.patch
        + 30_all_arm_armv4-no-thumb-fix-link.patch
        + 34_all_ia64_note.GNU-stack.patch
        + 38_all_sh_pr24836_all-archs.patch
        + 42_all_superh_default-multilib.patch
        + 48_all_x86_pr53113_libitm-avx.patch
        + 50_all_libiberty-asprintf.patch
        + 51_all_libiberty-pic.patch
        + 52_all_netbsd-Bsymbolic.patch
        + 67_all_gcc-poison-system-directories.patch
        + 74_all_gcc48_cloog-dl.patch
        + 90_all_pr55930-dependency-tracking.patch
        + 91_all_pr61538-atomic-compare-exchange.patch
        + 92_all_freebsd-pie.patch
        + 93_all_4.9.0_pr60155.patch
        + 93_all_gcc-4.8-config.h-bconfig.h-parallel-PR57125-PR61899.patch




Reply via email to