summaryrefslogtreecommitdiff
path: root/toolchain/gcc/patches
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-08-24 22:24:38 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-08-24 22:25:08 +0200
commit9683c207c75e5bc6513b1e8db6bdc2ed4c3db1f5 (patch)
tree510da161ad9e89032f4df8738ca26ad0a2d6b33d /toolchain/gcc/patches
parent9c15da431e4f1c8faf9bf747578b2c6b6c4d7d02 (diff)
gcc: update to 6.2.0, cleanup symbol names to simplify minor updates
Remove old versions of gcc no longer used or regulary tested. We concentrate on the latest three major versions for most of the architectures.
Diffstat (limited to 'toolchain/gcc/patches')
-rw-r--r--toolchain/gcc/patches/4.5.4/cflags-honour.patch232
-rw-r--r--toolchain/gcc/patches/4.5.4/disable-dwarf.frv11
-rw-r--r--toolchain/gcc/patches/4.7.4/armhf.patch72
-rw-r--r--toolchain/gcc/patches/4.7.4/cflags.patch241
-rw-r--r--toolchain/gcc/patches/4.7.4/openbsd-lto.patch13
-rw-r--r--toolchain/gcc/patches/4.7.4/ppc-uclibc-cmath.patch217
-rw-r--r--toolchain/gcc/patches/4.8.3/cflags.patch231
-rw-r--r--toolchain/gcc/patches/4.8.5/cflags.patch231
-rw-r--r--toolchain/gcc/patches/4.8.5/disable-atomics.patch12
-rw-r--r--toolchain/gcc/patches/4.8.5/disable-tm.patch14
-rw-r--r--toolchain/gcc/patches/4.8.5/gcc.musl633
-rw-r--r--toolchain/gcc/patches/4.8.5/libstdcxx-uclibc-c99.patch273
-rw-r--r--toolchain/gcc/patches/4.8.5/uclibc-cmath.ppc1878
-rw-r--r--toolchain/gcc/patches/6.2.0/add-crtreloc.frv (renamed from toolchain/gcc/patches/6.1.0/add-crtreloc.frv)0
-rw-r--r--toolchain/gcc/patches/6.2.0/bfin-workaround.patch (renamed from toolchain/gcc/patches/6.1.0/bfin-workaround.patch)0
-rw-r--r--toolchain/gcc/patches/6.2.0/fix-dwarf-fdpic.patch (renamed from toolchain/gcc/patches/6.1.0/fix-dwarf-fdpic.patch)0
-rw-r--r--toolchain/gcc/patches/6.2.0/fix-m86k-libgcc.patch (renamed from toolchain/gcc/patches/6.1.0/fix-m86k-libgcc.patch)0
-rw-r--r--toolchain/gcc/patches/6.2.0/frv-remove-write-macro.patch (renamed from toolchain/gcc/patches/6.1.0/frv-remove-write-macro.patch)0
-rw-r--r--toolchain/gcc/patches/6.2.0/libgcc_linker-script.patch (renamed from toolchain/gcc/patches/6.1.0/libgcc_linker-script.patch)0
-rw-r--r--toolchain/gcc/patches/6.2.0/uclinux-threads.patch (renamed from toolchain/gcc/patches/6.1.0/uclinux-threads.patch)0
-rw-r--r--toolchain/gcc/patches/6.2.0/xtensa-musl.patch (renamed from toolchain/gcc/patches/6.1.0/xtensa-musl.patch)0
-rw-r--r--toolchain/gcc/patches/arc-2015.12/100-libstdcxx-uclibc-c99.patch273
-rw-r--r--toolchain/gcc/patches/arc-2015.12/851-PR-other-56780.patch244
-rw-r--r--toolchain/gcc/patches/arc-2015.12/900-UPDATE-Fix-handling-complex-PIC-moves.patch103
-rw-r--r--toolchain/gcc/patches/arc-2015.12/901-UPDATE1-Fix-handling-complex-PIC-moves.patch83
-rw-r--r--toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch100
26 files changed, 0 insertions, 4861 deletions
diff --git a/toolchain/gcc/patches/4.5.4/cflags-honour.patch b/toolchain/gcc/patches/4.5.4/cflags-honour.patch
deleted file mode 100644
index df61de0d0..000000000
--- a/toolchain/gcc/patches/4.5.4/cflags-honour.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-diff -Nur gcc-4.5.4.orig/gcc/common.opt gcc-4.5.4/gcc/common.opt
---- gcc-4.5.4.orig/gcc/common.opt 2010-03-18 04:01:09.000000000 +0100
-+++ gcc-4.5.4/gcc/common.opt 2014-08-29 11:25:51.000000000 +0200
-@@ -105,6 +105,10 @@
- Common Joined
- Treat specified warning as error
-
-+Werror-maybe-reset
-+Common
-+If environment variable GCC_NO_WERROR is set, act as -Wno-error
-+
- Wextra
- Common Var(extra_warnings) Warning
- Print extra (possibly unwanted) warnings
-@@ -613,6 +617,9 @@
- Common Report Var(flag_guess_branch_prob) Optimization
- Enable guessing of branch probabilities
-
-+fhonour-copts
-+Common RejectNegative
-+
- ; Nonzero means ignore `#ident' directives. 0 means handle them.
- ; Generate position-independent code for executables if possible
- ; On SVR4 targets, it also controls whether or not to emit a
-diff -Nur gcc-4.5.4.orig/gcc/c.opt gcc-4.5.4/gcc/c.opt
---- gcc-4.5.4.orig/gcc/c.opt 2010-04-02 21:54:46.000000000 +0200
-+++ gcc-4.5.4/gcc/c.opt 2014-08-29 11:25:51.000000000 +0200
-@@ -219,6 +219,10 @@
- C ObjC RejectNegative Warning
- This switch is deprecated; use -Werror=implicit-function-declaration instead
-
-+Werror-maybe-reset
-+C ObjC C++ ObjC++
-+; Documented in common.opt
-+
- Wfloat-equal
- C ObjC C++ ObjC++ Var(warn_float_equal) Warning
- Warn if testing floating point numbers for equality
-@@ -633,6 +637,9 @@
- fhonor-std
- C++ ObjC++
-
-+fhonour-copts
-+C ObjC C++ ObjC++ RejectNegative
-+
- fhosted
- C ObjC
- Assume normal C execution environment
-diff -Nur gcc-4.5.4.orig/gcc/c-opts.c gcc-4.5.4/gcc/c-opts.c
---- gcc-4.5.4.orig/gcc/c-opts.c 2010-04-02 21:54:46.000000000 +0200
-+++ gcc-4.5.4/gcc/c-opts.c 2014-08-29 11:25:51.000000000 +0200
-@@ -106,6 +106,9 @@
- /* Number of deferred options scanned for -include. */
- static size_t include_cursor;
-
-+/* Check if a port honours COPTS. */
-+static int honour_copts = 0;
-+
- static void set_Wimplicit (int);
- static void handle_OPT_d (const char *);
- static void set_std_cxx98 (int);
-@@ -472,6 +475,9 @@
- enable_warning_as_error ("implicit-function-declaration", value, CL_C | CL_ObjC);
- break;
-
-+ case OPT_Werror_maybe_reset:
-+ break;
-+
- case OPT_Wformat:
- set_Wformat (value);
- break;
-@@ -704,6 +710,12 @@
- flag_exceptions = value;
- break;
-
-+ case OPT_fhonour_copts:
-+ if (c_language == clk_c) {
-+ honour_copts++;
-+ }
-+ break;
-+
- case OPT_fimplement_inlines:
- flag_implement_inlines = value;
- break;
-@@ -1240,6 +1252,47 @@
- return false;
- }
-
-+ if (c_language == clk_c) {
-+ char *ev = getenv ("GCC_HONOUR_COPTS");
-+ int evv;
-+ if (ev == NULL)
-+ evv = -1;
-+ else if ((*ev == '0') || (*ev == '\0'))
-+ evv = 0;
-+ else if (*ev == '1')
-+ evv = 1;
-+ else if (*ev == '2')
-+ evv = 2;
-+ else if (*ev == 's')
-+ evv = -1;
-+ else {
-+ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1");
-+ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */
-+ }
-+ if (evv == 1) {
-+ if (honour_copts == 0) {
-+ error ("someone does not honour COPTS at all in lenient mode");
-+ return false;
-+ } else if (honour_copts != 1) {
-+ warning (0, "someone does not honour COPTS correctly, passed %d times",
-+ honour_copts);
-+ }
-+ } else if (evv == 2) {
-+ if (honour_copts == 0) {
-+ error ("someone does not honour COPTS at all in strict mode");
-+ return false;
-+ } else if (honour_copts != 1) {
-+ error ("someone does not honour COPTS correctly, passed %d times",
-+ honour_copts);
-+ return false;
-+ }
-+ } else if (evv == 0) {
-+ if (honour_copts != 1)
-+ inform (0, "someone does not honour COPTS correctly, passed %d times",
-+ honour_copts);
-+ }
-+ }
-+
- return true;
- }
-
-diff -Nur gcc-4.5.4.orig/gcc/doc/cppopts.texi gcc-4.5.4/gcc/doc/cppopts.texi
---- gcc-4.5.4.orig/gcc/doc/cppopts.texi 2010-04-02 21:54:46.000000000 +0200
-+++ gcc-4.5.4/gcc/doc/cppopts.texi 2014-08-29 11:25:51.000000000 +0200
-@@ -164,6 +164,11 @@
- Make all warnings into hard errors. Source code which triggers warnings
- will be rejected.
-
-+ at item -Werror-maybe-reset
-+ at opindex Werror-maybe-reset
-+Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment
-+variable is set to anything other than 0 or empty.
-+
- @item -Wsystem-headers
- @opindex Wsystem-headers
- Issue warnings for code in system headers. These are normally unhelpful
-diff -Nur gcc-4.5.4.orig/gcc/doc/invoke.texi gcc-4.5.4/gcc/doc/invoke.texi
---- gcc-4.5.4.orig/gcc/doc/invoke.texi 2011-03-23 23:03:29.000000000 +0100
-+++ gcc-4.5.4/gcc/doc/invoke.texi 2014-08-29 11:25:51.000000000 +0200
-@@ -4324,6 +4324,22 @@
- @option{-Wall} and by @option{-pedantic}, which can be disabled with
- @option{-Wno-pointer-sign}.
-
-+ at item -Werror-maybe-reset
-+ at opindex Werror-maybe-reset
-+Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment
-+variable is set to anything other than 0 or empty.
-+
-+ at item -fhonour-copts
-+ at opindex fhonour-copts
-+If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not
-+given at least once, and warn if it is given more than once.
-+If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not
-+given exactly once.
-+If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option
-+is not given exactly once.
-+The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}.
-+This flag and environment variable only affect the C language.
-+
- @item -Wstack-protector
- @opindex Wstack-protector
- @opindex Wno-stack-protector
-@@ -6076,7 +6092,7 @@
- second branch or a point immediately following it, depending on whether
- the condition is known to be true or false.
-
--Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
-+Enabled at levels @option{-O3}.
-
- @item -fsplit-wide-types
- @opindex fsplit-wide-types
-diff -Nur gcc-4.5.4.orig/gcc/java/jvspec.c gcc-4.5.4/gcc/java/jvspec.c
---- gcc-4.5.4.orig/gcc/java/jvspec.c 2010-01-20 11:35:38.000000000 +0100
-+++ gcc-4.5.4/gcc/java/jvspec.c 2014-08-29 11:25:51.000000000 +0200
-@@ -667,6 +667,7 @@
- class name. Append dummy `.c' that can be stripped by set_input so %b
- is correct. */
- set_input (concat (main_class_name, "main.c", NULL));
-+ putenv ("GCC_HONOUR_COPTS=s"); /* XXX hack! */
- err = do_spec (jvgenmain_spec);
- if (err == 0)
- {
-diff -Nur gcc-4.5.4.orig/gcc/opts.c gcc-4.5.4/gcc/opts.c
---- gcc-4.5.4.orig/gcc/opts.c 2010-05-17 12:13:28.000000000 +0200
-+++ gcc-4.5.4/gcc/opts.c 2014-08-29 11:25:51.000000000 +0200
-@@ -897,8 +897,6 @@
- flag_schedule_insns_after_reload = opt2;
- #endif
- flag_regmove = opt2;
-- flag_strict_aliasing = opt2;
-- flag_strict_overflow = opt2;
- flag_reorder_blocks = opt2;
- flag_reorder_functions = opt2;
- flag_tree_vrp = opt2;
-@@ -918,6 +916,8 @@
-
- /* -O3 optimizations. */
- opt3 = (optimize >= 3);
-+ flag_strict_aliasing = opt3;
-+ flag_strict_overflow = opt3;
- flag_predictive_commoning = opt3;
- flag_inline_functions = opt3;
- flag_unswitch_loops = opt3;
-@@ -1646,6 +1646,17 @@
- enable_warning_as_error (arg, value, lang_mask);
- break;
-
-+ case OPT_Werror_maybe_reset:
-+ {
-+ char *ev = getenv ("GCC_NO_WERROR");
-+ if ((ev != NULL) && (*ev != '0'))
-+ warnings_are_errors = 0;
-+ }
-+ break;
-+
-+ case OPT_fhonour_copts:
-+ break;
-+
- case OPT_Wlarger_than_:
- /* This form corresponds to -Wlarger-than-.
- Kept for backward compatibility.
diff --git a/toolchain/gcc/patches/4.5.4/disable-dwarf.frv b/toolchain/gcc/patches/4.5.4/disable-dwarf.frv
deleted file mode 100644
index ee4ca01a1..000000000
--- a/toolchain/gcc/patches/4.5.4/disable-dwarf.frv
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Nur gcc-4.5.4.orig/gcc/config/t-linux gcc-4.5.4/gcc/config/t-linux
---- gcc-4.5.4.orig/gcc/config/t-linux 2009-04-21 21:03:23.000000000 +0200
-+++ gcc-4.5.4/gcc/config/t-linux 2015-11-21 17:25:52.720653570 +0100
-@@ -27,6 +27,6 @@
- SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
-
- # Use unwind-dw2-fde-glibc
--LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
-+LIB2ADDEH = $(srcdir)/unwind-dw2.c \
- $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
- LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c
diff --git a/toolchain/gcc/patches/4.7.4/armhf.patch b/toolchain/gcc/patches/4.7.4/armhf.patch
deleted file mode 100644
index 4c0bf744d..000000000
--- a/toolchain/gcc/patches/4.7.4/armhf.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -Nur gcc-4.7.2.orig/gcc/config/arm/linux-eabi.h gcc-4.7.2/gcc/config/arm/linux-eabi.h
---- gcc-4.7.2.orig/gcc/config/arm/linux-eabi.h 2011-11-02 16:03:19.000000000 +0100
-+++ gcc-4.7.2/gcc/config/arm/linux-eabi.h 2013-05-03 16:38:21.000000000 +0200
-@@ -34,7 +34,21 @@
- /* We default to a soft-float ABI so that binaries can run on all
- target hardware. */
- #undef TARGET_DEFAULT_FLOAT_ABI
-+#ifdef TARGET_CONFIGURED_FLOAT_ABI
-+#if TARGET_CONFIGURED_FLOAT_ABI == 2
-+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
-+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=hard"
-+#elif TARGET_CONFIGURED_FLOAT_ABI == 1
-+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFTFP
-+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=softfp"
-+#else
- #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
-+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft"
-+#endif
-+#else
-+#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
-+#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft"
-+#endif
-
- /* We default to the "aapcs-linux" ABI so that enums are int-sized by
- default. */
-@@ -62,7 +76,45 @@
- /* Use ld-linux.so.3 so that it will be possible to run "classic"
- GNU/Linux binaries on an EABI system. */
- #undef GLIBC_DYNAMIC_LINKER
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
-+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
-+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
-+#ifdef TARGET_CONFIGURED_FLOAT_ABI
-+#if TARGET_CONFIGURED_FLOAT_ABI == 2
-+#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_HARD_FLOAT
-+#else
-+#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
-+#endif
-+#else
-+#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
-+#endif
-+
-+#define GLIBC_DYNAMIC_LINKER \
-+ "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
-+ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
-+ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
-+
-+/* Set the multilib defaults according the configuration, needed to
-+ let gcc -print-multi-dir do the right thing. */
-+
-+#if TARGET_BIG_ENDIAN_DEFAULT
-+#define MULTILIB_DEFAULT_ENDIAN "mbig-endian"
-+#else
-+#define MULTILIB_DEFAULT_ENDIAN "mlittle-endian"
-+#endif
-+
-+#ifndef TARGET_CONFIGURED_THUMB_MODE
-+#define MULTILIB_DEFAULT_MODE "marm"
-+#elif TARGET_CONFIGURED_THUMB_MODE == 1
-+#define MULTILIB_DEFAULT_MODE "mthumb"
-+#else
-+#define MULTILIB_DEFAULT_MODE "marm"
-+#endif
-+
-+#undef MULTILIB_DEFAULTS
-+#define MULTILIB_DEFAULTS \
-+ { MULTILIB_DEFAULT_MODE, MULTILIB_DEFAULT_ENDIAN, \
-+ MULTILIB_DEFAULT_FLOAT_ABI, "mno-thumb-interwork" }
-+
-
- /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
- use the GNU/Linux version, not the generic BPABI version. */
diff --git a/toolchain/gcc/patches/4.7.4/cflags.patch b/toolchain/gcc/patches/4.7.4/cflags.patch
deleted file mode 100644
index a9ccdcbc8..000000000
--- a/toolchain/gcc/patches/4.7.4/cflags.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-diff -Nur gcc-4.7.2.orig/gcc/c-family/c-opts.c gcc-4.7.2/gcc/c-family/c-opts.c
---- gcc-4.7.2.orig/gcc/c-family/c-opts.c 2012-01-18 14:10:40.000000000 +0100
-+++ gcc-4.7.2/gcc/c-family/c-opts.c 2012-09-22 12:53:33.000000000 +0200
-@@ -108,6 +108,9 @@
- /* Number of deferred options scanned for -include. */
- static size_t include_cursor;
-
-+/* Check if a port honours COPTS. */
-+static int honour_copts = 0;
-+
- static void handle_OPT_d (const char *);
- static void set_std_cxx98 (int);
- static void set_std_cxx11 (int);
-@@ -449,6 +452,9 @@
- cpp_opts->warn_endif_labels = value;
- break;
-
-+ case OPT_Werror_maybe_reset:
-+ break;
-+
- case OPT_Wformat:
- set_Wformat (value);
- break;
-@@ -592,6 +598,12 @@
- flag_no_builtin = !value;
- break;
-
-+ case OPT_fhonour_copts:
-+ if (c_language == clk_c) {
-+ honour_copts++;
-+ }
-+ break;
-+
- case OPT_fconstant_string_class_:
- constant_string_class_name = arg;
- break;
-@@ -1098,6 +1110,47 @@
- return false;
- }
-
-+ if (c_language == clk_c) {
-+ char *ev = getenv ("GCC_HONOUR_COPTS");
-+ int evv;
-+ if (ev == NULL)
-+ evv = -1;
-+ else if ((*ev == '0') || (*ev == '\0'))
-+ evv = 0;
-+ else if (*ev == '1')
-+ evv = 1;
-+ else if (*ev == '2')
-+ evv = 2;
-+ else if (*ev == 's')
-+ evv = -1;
-+ else {
-+ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1");
-+ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */
-+ }
-+ if (evv == 1) {
-+ if (honour_copts == 0) {
-+ error ("someone does not honour COPTS at all in lenient mode");
-+ return false;
-+ } else if (honour_copts != 1) {
-+ warning (0, "someone does not honour COPTS correctly, passed %d times",
-+ honour_copts);
-+ }
-+ } else if (evv == 2) {
-+ if (honour_copts == 0) {
-+ error ("someone does not honour COPTS at all in strict mode");
-+ return false;
-+ } else if (honour_copts != 1) {
-+ error ("someone does not honour COPTS correctly, passed %d times",
-+ honour_copts);
-+ return false;
-+ }
-+ } else if (evv == 0) {
-+ if (honour_copts != 1)
-+ inform (0, "someone does not honour COPTS correctly, passed %d times",
-+ honour_copts);
-+ }
-+ }
-+
- return true;
- }
-
-diff -Nur gcc-4.7.2.orig/gcc/c-family/c.opt gcc-4.7.2/gcc/c-family/c.opt
---- gcc-4.7.2.orig/gcc/c-family/c.opt 2012-02-06 11:31:18.000000000 +0100
-+++ gcc-4.7.2/gcc/c-family/c.opt 2012-09-22 12:53:33.000000000 +0200
-@@ -371,6 +371,10 @@
- C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
- This switch is deprecated; use -Werror=implicit-function-declaration instead
-
-+Werror-maybe-reset
-+C ObjC C++ ObjC++
-+; Documented in common.opt
-+
- Wfloat-equal
- C ObjC C++ ObjC++ Var(warn_float_equal) Warning
- Warn if testing floating point numbers for equality
-@@ -830,6 +834,9 @@
- fhonor-std
- C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
-
-+fhonour-copts
-+C ObjC C++ ObjC++ RejectNegative
-+
- fhosted
- C ObjC
- Assume normal C execution environment
-diff -Nur gcc-4.7.2.orig/gcc/common.opt gcc-4.7.2/gcc/common.opt
---- gcc-4.7.2.orig/gcc/common.opt 2012-08-06 16:34:27.000000000 +0200
-+++ gcc-4.7.2/gcc/common.opt 2012-09-22 12:53:33.000000000 +0200
-@@ -531,6 +531,10 @@
- Common Joined
- Treat specified warning as error
-
-+Werror-maybe-reset
-+Common
-+If environment variable GCC_NO_WERROR is set, act as -Wno-error
-+
- Wextra
- Common Var(extra_warnings) Warning
- Print extra (possibly unwanted) warnings
-@@ -1209,6 +1213,9 @@
- Common Report Var(flag_guess_branch_prob) Optimization
- Enable guessing of branch probabilities
-
-+fhonour-copts
-+Common RejectNegative
-+
- ; Nonzero means ignore `#ident' directives. 0 means handle them.
- ; Generate position-independent code for executables if possible
- ; On SVR4 targets, it also controls whether or not to emit a
-diff -Nur gcc-4.7.2.orig/gcc/doc/cppopts.texi gcc-4.7.2/gcc/doc/cppopts.texi
---- gcc-4.7.2.orig/gcc/doc/cppopts.texi 2011-12-20 21:44:13.000000000 +0100
-+++ gcc-4.7.2/gcc/doc/cppopts.texi 2012-09-22 12:53:33.000000000 +0200
-@@ -164,6 +164,11 @@
- Make all warnings into hard errors. Source code which triggers warnings
- will be rejected.
-
-+ at item -Werror-maybe-reset
-+ at opindex Werror-maybe-reset
-+Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment
-+variable is set to anything other than 0 or empty.
-+
- @item -Wsystem-headers
- @opindex Wsystem-headers
- Issue warnings for code in system headers. These are normally unhelpful
-diff -Nur gcc-4.7.2.orig/gcc/doc/invoke.texi gcc-4.7.2/gcc/doc/invoke.texi
---- gcc-4.7.2.orig/gcc/doc/invoke.texi 2012-09-14 22:45:27.000000000 +0200
-+++ gcc-4.7.2/gcc/doc/invoke.texi 2012-09-22 12:53:33.000000000 +0200
-@@ -242,7 +242,7 @@
- -Wconversion -Wcoverage-mismatch -Wno-cpp -Wno-deprecated @gol
- -Wno-deprecated-declarations -Wdisabled-optimization @gol
- -Wno-div-by-zero -Wdouble-promotion -Wempty-body -Wenum-compare @gol
---Wno-endif-labels -Werror -Werror=* @gol
-+-Wno-endif-labels -Werror -Werror=* -Werror-maybe-reset @gol
- -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol
- -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol
- -Wformat-security -Wformat-y2k @gol
-@@ -4651,6 +4651,22 @@
- @option{-Wall} and by @option{-pedantic}, which can be disabled with
- @option{-Wno-pointer-sign}.
-
-+ at item -Werror-maybe-reset
-+ at opindex Werror-maybe-reset
-+Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment
-+variable is set to anything other than 0 or empty.
-+
-+ at item -fhonour-copts
-+ at opindex fhonour-copts
-+If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not
-+given at least once, and warn if it is given more than once.
-+If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not
-+given exactly once.
-+If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option
-+is not given exactly once.
-+The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}.
-+This flag and environment variable only affect the C language.
-+
- @item -Wstack-protector
- @opindex Wstack-protector
- @opindex Wno-stack-protector
-@@ -6570,7 +6586,7 @@
- second branch or a point immediately following it, depending on whether
- the condition is known to be true or false.
-
--Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}.
-+Enabled at levels @option{-O3}.
-
- @item -fsplit-wide-types
- @opindex fsplit-wide-types
-diff -Nur gcc-4.7.2.orig/gcc/java/jvspec.c gcc-4.7.2/gcc/java/jvspec.c
---- gcc-4.7.2.orig/gcc/java/jvspec.c 2011-02-13 20:20:01.000000000 +0100
-+++ gcc-4.7.2/gcc/java/jvspec.c 2012-09-22 12:53:33.000000000 +0200
-@@ -627,6 +627,7 @@
- class name. Append dummy `.c' that can be stripped by set_input so %b
- is correct. */
- set_input (concat (main_class_name, "main.c", NULL));
-+ putenv ("GCC_HONOUR_COPTS=s"); /* XXX hack! */
- err = do_spec (jvgenmain_spec);
- if (err == 0)
- {
-diff -Nur gcc-4.7.2.orig/gcc/opts.c gcc-4.7.2/gcc/opts.c
---- gcc-4.7.2.orig/gcc/opts.c 2012-01-10 17:27:55.000000000 +0100
-+++ gcc-4.7.2/gcc/opts.c 2012-09-22 12:53:33.000000000 +0200
-@@ -470,8 +470,6 @@
- { OPT_LEVELS_2_PLUS, OPT_fschedule_insns2, NULL, 1 },
- #endif
- { OPT_LEVELS_2_PLUS, OPT_fregmove, NULL, 1 },
-- { OPT_LEVELS_2_PLUS, OPT_fstrict_aliasing, NULL, 1 },
-- { OPT_LEVELS_2_PLUS, OPT_fstrict_overflow, NULL, 1 },
- { OPT_LEVELS_2_PLUS, OPT_freorder_blocks, NULL, 1 },
- { OPT_LEVELS_2_PLUS, OPT_freorder_functions, NULL, 1 },
- { OPT_LEVELS_2_PLUS, OPT_ftree_vrp, NULL, 1 },
-@@ -489,6 +487,8 @@
- { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_foptimize_strlen, NULL, 1 },
-
- /* -O3 optimizations. */
-+ { OPT_LEVELS_3_PLUS, OPT_fstrict_aliasing, NULL, 1 },
-+ { OPT_LEVELS_3_PLUS, OPT_fstrict_overflow, NULL, 1 },
- { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
- { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
- /* Inlining of functions reducing size is a good idea with -Os
-@@ -1432,6 +1432,17 @@
- opts, opts_set, loc, dc);
- break;
-
-+ case OPT_Werror_maybe_reset:
-+ {
-+ char *ev = getenv ("GCC_NO_WERROR");
-+ if ((ev != NULL) && (*ev != '0'))
-+ warnings_are_errors = 0;
-+ }
-+ break;
-+
-+ case OPT_fhonour_copts:
-+ break;
-+
- case OPT_Wlarger_than_:
- opts->x_larger_than_size = value;
- opts->x_warn_larger_than = value != -1;
diff --git a/toolchain/gcc/patches/4.7.4/openbsd-lto.patch b/toolchain/gcc/patches/4.7.4/openbsd-lto.patch
deleted file mode 100644
index 8a94971b7..000000000
--- a/toolchain/gcc/patches/4.7.4/openbsd-lto.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Nur gcc-4.7.3.orig/gcc/config.host gcc-4.7.3/gcc/config.host
---- gcc-4.7.3.orig/gcc/config.host Tue Oct 18 08:14:14 2011
-+++ gcc-4.7.3/gcc/config.host Tue Jan 7 04:33:29 2014
-@@ -292,6 +292,9 @@
- out_host_hook_obj=host-solaris.o
- host_xmake_file="${host_xmake_file} x-solaris"
- ;;
-+ *-*-openbsd*)
-+ host_lto_plugin_soname=liblto_plugin.so.0.0
-+ ;;
- *-*-linux*)
- out_host_hook_obj=host-linux.o
- host_xmake_file="${host_xmake_file} x-linux"
diff --git a/toolchain/gcc/patches/4.7.4/ppc-uclibc-cmath.patch b/toolchain/gcc/patches/4.7.4/ppc-uclibc-cmath.patch
deleted file mode 100644
index 0e64e8d0e..000000000
--- a/toolchain/gcc/patches/4.7.4/ppc-uclibc-cmath.patch
+++ /dev/null
@@ -1,217 +0,0 @@
-diff -Nur gcc-4.7.3.orig/libstdc++-v3/include/tr1/cmath gcc-4.7.3/libstdc++-v3/include/tr1/cmath
---- gcc-4.7.3.orig/libstdc++-v3/include/tr1/cmath 2011-11-14 00:51:42.000000000 +0100
-+++ gcc-4.7.3/libstdc++-v3/include/tr1/cmath 2013-09-22 20:13:54.000000000 +0200
-@@ -159,143 +159,213 @@
- // functions
- using ::acosh;
- using ::acoshf;
-+#ifdef __LONG_DOUBLE_128__
- using ::acoshl;
-+#endif
-
- using ::asinh;
- using ::asinhf;
-+#ifdef __LONG_DOUBLE_128__
- using ::asinhl;
-+#endif
-
- using ::atanh;
- using ::atanhf;
-+#ifdef __LONG_DOUBLE_128__
- using ::atanhl;
-+#endif
-
- using ::cbrt;
- using ::cbrtf;
-+#ifdef __LONG_DOUBLE_128__
- using ::cbrtl;
-+#endif
-
- using ::copysign;
- using ::copysignf;
-+#ifdef __LONG_DOUBLE_128__
- using ::copysignl;
-+#endif
-
- using ::erf;
- using ::erff;
-+#ifdef __LONG_DOUBLE_128__
- using ::erfl;
-+#endif
-
- using ::erfc;
- using ::erfcf;
-+#ifdef __LONG_DOUBLE_128__
- using ::erfcl;
-+#endif
-
- using ::exp2;
- using ::exp2f;
-+#ifdef __LONG_DOUBLE_128__
- using ::exp2l;
-+#endif
-
- using ::expm1;
- using ::expm1f;
-+#ifdef __LONG_DOUBLE_128__
- using ::expm1l;
-+#endif
-
- using ::fdim;
- using ::fdimf;
-+#ifdef __LONG_DOUBLE_128__
- using ::fdiml;
-+#endif
-
- using ::fma;
- using ::fmaf;
-+#ifdef __LONG_DOUBLE_128__
- using ::fmal;
-+#endif
-
- using ::fmax;
- using ::fmaxf;
-+#ifdef __LONG_DOUBLE_128__
- using ::fmaxl;
-+#endif
-
- using ::fmin;
- using ::fminf;
-+#ifdef __LONG_DOUBLE_128__
- using ::fminl;
-+#endif
-
- using ::hypot;
- using ::hypotf;
-+#ifdef __LONG_DOUBLE_128__
- using ::hypotl;
-+#endif
-
- using ::ilogb;
- using ::ilogbf;
-+#ifdef __LONG_DOUBLE_128__
- using ::ilogbl;
-+#endif
-
- using ::lgamma;
- using ::lgammaf;
-+#ifdef __LONG_DOUBLE_128__
- using ::lgammal;
-+#endif
-
- using ::llrint;
- using ::llrintf;
-+#ifdef __LONG_DOUBLE_128__
- using ::llrintl;
-+#endif
-
- using ::llround;
- using ::llroundf;
-+#ifdef __LONG_DOUBLE_128__
- using ::llroundl;
-+#endif
-
- using ::log1p;
- using ::log1pf;
-+#ifdef __LONG_DOUBLE_128__
- using ::log1pl;
-+#endif
-
- using ::log2;
- using ::log2f;
-+#ifdef __LONG_DOUBLE_128__
- using ::log2l;
-+#endif
-
- using ::logb;
- using ::logbf;
-+#ifdef __LONG_DOUBLE_128__
- using ::logbl;
-+#endif
-
- using ::lrint;
- using ::lrintf;
-+#ifdef __LONG_DOUBLE_128__
- using ::lrintl;
-+#endif
-
- using ::lround;
- using ::lroundf;
-+#ifdef __LONG_DOUBLE_128__
- using ::lroundl;
-+#endif
-
- using ::nan;
- using ::nanf;
-+#ifdef __LONG_DOUBLE_128__
- using ::nanl;
-+#endif
-
- using ::nearbyint;
- using ::nearbyintf;
-+#ifdef __LONG_DOUBLE_128__
- using ::nearbyintl;
-+#endif
-
- using ::nextafter;
- using ::nextafterf;
-+#ifdef __LONG_DOUBLE_128__
- using ::nextafterl;
-+#endif
-
- using ::nexttoward;
- using ::nexttowardf;
-+#ifdef __LONG_DOUBLE_128__
- using ::nexttowardl;
-+#endif
-
- using ::remainder;
- using ::remainderf;
-+#ifdef __LONG_DOUBLE_128__
- using ::remainderl;
-+#endif
-
- using ::remquo;
- using ::remquof;
-+#ifdef __LONG_DOUBLE_128__
- using ::remquol;
-+#endif
-
- using ::rint;
- using ::rintf;
-+#ifdef __LONG_DOUBLE_128__
- using ::rintl;
-+#endif
-
- using ::round;
- using ::roundf;
-+#ifdef __LONG_DOUBLE_128__
- using ::roundl;
-+#endif
-
- using ::scalbln;
- using ::scalblnf;
-+#ifdef __LONG_DOUBLE_128__
- using ::scalblnl;
-+#endif
-
- using ::scalbn;
- using ::scalbnf;
-+#ifdef __LONG_DOUBLE_128__
- using ::scalbnl;
-+#endif
-
- using ::tgamma;
- using ::tgammaf;
-+#ifdef __LONG_DOUBLE_128__
- using ::tgammal;
-+#endif
-
- using ::trunc;
- using ::truncf;
-+#ifdef __LONG_DOUBLE_128__
- using ::truncl;
-+#endif
-
- #endif
-
diff --git a/toolchain/gcc/patches/4.8.3/cflags.patch b/toolchain/gcc/patches/4.8.3/cflags.patch
deleted file mode 100644
index 4f9de8069..000000000
--- a/toolchain/gcc/patches/4.8.3/cflags.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-diff -Nur gcc-4.8.2.orig/gcc/c-family/c.opt gcc-4.8.2/gcc/c-family/c.opt
---- gcc-4.8.2.orig/gcc/c-family/c.opt 2013-01-19 06:25:25.000000000 +0100
-+++ gcc-4.8.2/gcc/c-family/c.opt 2014-02-23 20:22:48.000000000 +0100
-@@ -379,6 +379,10 @@
- C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
- This switch is deprecated; use -Werror=implicit-function-declaration instead
-
-+Werror-maybe-reset
-+C ObjC C++ ObjC++
-+; Documented in common.opt
-+
- Wfloat-equal
- C ObjC C++ ObjC++ Var(warn_float_equal) Warning
- Warn if testing floating point numbers for equality
-@@ -949,6 +953,9 @@
- fhonor-std
- C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
-
-+fhonour-copts
-+C ObjC C++ ObjC++ RejectNegative
-+
- fhosted
- C ObjC
- Assume normal C execution environment
-diff -Nur gcc-4.8.2.orig/gcc/c-family/c-opts.c gcc-4.8.2/gcc/c-family/c-opts.c
---- gcc-4.8.2.orig/gcc/c-family/c-opts.c 2013-02-18 20:42:56.000000000 +0100
-+++ gcc-4.8.2/gcc/c-family/c-opts.c 2014-02-23 20:22:48.000000000 +0100
-@@ -104,6 +104,9 @@
- /* Whether any standard preincluded header has been preincluded. */
- static bool done_preinclude;
-
-+/* Check if a port honours COPTS. */
-+static int honour_copts = 0;</