diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-08-24 22:24:38 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-08-24 22:25:08 +0200 |
commit | 9683c207c75e5bc6513b1e8db6bdc2ed4c3db1f5 (patch) | |
tree | 510da161ad9e89032f4df8738ca26ad0a2d6b33d /toolchain | |
parent | 9c15da431e4f1c8faf9bf747578b2c6b6c4d7d02 (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')
27 files changed, 13 insertions, 4906 deletions
diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc index c970c05c5..a13750b87 100644 --- a/toolchain/gcc/Makefile.inc +++ b/toolchain/gcc/Makefile.inc @@ -2,15 +2,15 @@ # material, please see the LICENCE file in the top-level directory. PKG_NAME:= gcc -ifeq ($(ADK_TOOLCHAIN_GCC_6_1_0),y) -PKG_VERSION:= 6.1.0 -PKG_HASH:= 724a61d190f27d5028791587149c6a6d6a312d6659a61636be5be86b6e809b59 +ifeq ($(ADK_TOOLCHAIN_GCC_6),y) +PKG_VERSION:= 6.2.0 +PKG_HASH:= ba8c49e54f1b3e04434d6261e5718ed843d1ba3e54a070740913acfbd815e577 PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz LIBSTDCXXVER:= 22 endif -ifeq ($(ADK_TOOLCHAIN_GCC_5_4_0),y) +ifeq ($(ADK_TOOLCHAIN_GCC_5),y) PKG_VERSION:= 5.4.0 PKG_HASH:= 37089e80c3f2e9a0663d7ccc51c2a6c7dbbf3275bc1e4ed1ed3b1460cd5b3030 PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} @@ -18,15 +18,7 @@ PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz LIBSTDCXXVER:= 21 endif -ifeq ($(ADK_TOOLCHAIN_GCC_5_3_OR1K),y) -PKG_VERSION:= musl-5.3.0 -PKG_GIT:= branch -PKG_SITES:= https://github.com/openrisc/or1k-gcc.git -PKG_RELEASE:= 1 -DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz -LIBSTDCXXVER:= 21 -endif -ifeq ($(ADK_TOOLCHAIN_GCC_4_9_4),y) +ifeq ($(ADK_TOOLCHAIN_GCC_4_9),y) PKG_VERSION:= 4.9.4 PKG_HASH:= 1680f92781b92cbdb57d7e4f647c650678c594154cb0d707fd9a994424a9860d PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} @@ -34,14 +26,6 @@ PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz LIBSTDCXXVER:= 20 endif -ifeq ($(ADK_TOOLCHAIN_GCC_4_8_5),y) -PKG_VERSION:= 4.8.5 -PKG_HASH:= 1dbc5cd94c9947fe5dffd298e569de7f44c3cedbd428fceea59490d336d8295a -PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} -PKG_RELEASE:= 1 -DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz -LIBSTDCXXVER:= 19 -endif ifeq ($(ADK_TOOLCHAIN_GCC_ARC),y) PKG_VERSION:= arc-2016.03 PKG_GIT:= tag @@ -49,31 +33,15 @@ PKG_SITES:= https://github.com/foss-for-synopsys-dwc-arc-processors/gcc.git PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz endif -ifeq ($(ADK_TOOLCHAIN_GCC_4_7_4),y) -PKG_VERSION:= 4.7.4 -PKG_HASH:= ddbaa583c5d4e4f0928bf15d9f6b6c283349e16eedc47bde71e1b813f6f37819 -PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} -PKG_RELEASE:= 1 -DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz -LIBSTDCXXVER:= 17 -endif -ifeq ($(ADK_TOOLCHAIN_GCC_4_6_3),y) -PKG_VERSION:= 4.6.3 -PKG_HASH:= 3122a8f1a30106034ec70bad633c3fd899d8b6a1216c723f0f03be22c2fe65b0 -PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} -PKG_RELEASE:= 1 -DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz -LIBSTDCXXVER:= 19 -endif -ifeq ($(ADK_TOOLCHAIN_GCC_4_5_4),y) -PKG_VERSION:= 4.5.4 -PKG_HASH:= 33fb968907ef7b6c528f6395ba049eb34c4df859bf5aa6c2bc3856268801e078 -PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} +ifeq ($(ADK_TOOLCHAIN_GCC_OR1K),y) +PKG_VERSION:= musl-5.3.0 +PKG_GIT:= branch +PKG_SITES:= https://github.com/openrisc/or1k-gcc.git PKG_RELEASE:= 1 -DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz -LIBSTDCXXVER:= 19 +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz +LIBSTDCXXVER:= 21 endif -ifeq ($(ADK_TOOLCHAIN_GCC_4_4_7),y) +ifeq ($(ADK_TOOLCHAIN_GCC_4_4),y) PKG_VERSION:= 4.4.7 PKG_HASH:= 76ad7c433af1c798a1e116c4dfa8f5f794f0d32bff65f88c54dcd5e5d146fc32 PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/} @@ -81,7 +49,7 @@ PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz LIBSTDCXXVER:= 19 endif -ifeq ($(ADK_TOOLCHAIN_GCC_4_2_4),y) +ifeq ($(ADK_TOOLCHAIN_GCC_4_2),y) PKG_VERSION:= 4.2.4 PKG_HASH:= 7cb75c5183bd18f415860084440377016dc78feeee2852227b831f2e4fcaa5d6 PKG_SITES:= http://gcc.cybermirror.org/releases/gcc-${PKG_VERSION}/ 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_1 |