diff --git a/devel/gcc/Makefile b/devel/gcc/Makefile
index 2a03a663b..304855726 100644
--- a/devel/gcc/Makefile
+++ b/devel/gcc/Makefile
@@ -9,14 +9,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=gcc
-PKG_VERSION:=4.6.3
+PKG_VERSION:=4.8.3
PKG_RELEASE:=1
PKG_SOURCE_URL:=ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-$(PKG_VERSION) \
http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-$(PKG_VERSION) \
ftp://ftp.gnu.org/gnu/gcc/releases/gcc-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_MD5SUM:=773092fe5194353b02bb0110052a972e
+PKG_MD5SUM:=7c60f24fab389f77af203d2516ee110f
PKG_INSTALL:=1
PKG_FIXUP:=libtool
PKG_BUILD_PARALLEL:=1
diff --git a/devel/gcc/patches/010-documentation.patch b/devel/gcc/patches/010-documentation.patch
index bf3af8237..3f604ee47 100644
--- a/devel/gcc/patches/010-documentation.patch
+++ b/devel/gcc/patches/010-documentation.patch
@@ -1,8 +1,6 @@
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 9b6af49..a5404be 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
-@@ -4267,18 +4267,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
+@@ -4326,18 +4326,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
doc/gccint.info: $(TEXI_GCCINT_FILES)
doc/cppinternals.info: $(TEXI_CPPINT_FILES)
@@ -23,12 +21,3 @@ index 9b6af49..a5404be 100644
doc/cpp.dvi: $(TEXI_CPP_FILES)
doc/gcc.dvi: $(TEXI_GCC_FILES)
-@@ -4496,7 +4488,7 @@ maintainer-clean:
- # Install the driver last so that the window when things are
- # broken is small.
- install: install-common $(INSTALL_HEADERS) \
-- install-cpp install-man install-info install-@POSUB@ \
-+ install-cpp install-@POSUB@ \
- install-driver install-lto-wrapper
-
- ifeq ($(enable_plugin),yes)
diff --git a/devel/gcc/patches/040-gcc_bug_49696.patch b/devel/gcc/patches/040-gcc_bug_49696.patch
deleted file mode 100644
index 74b9a86a8..000000000
--- a/devel/gcc/patches/040-gcc_bug_49696.patch
+++ /dev/null
@@ -1,65 +0,0 @@
---- a/gcc/config/mips/sync.md
-+++ b/gcc/config/mips/sync.md
-@@ -136,7 +136,7 @@
- [(match_operand:SI 1 "register_operand" "d")
- (match_operand:SI 2 "register_operand" "d")
- (atomic_hiqi_op:SI (match_dup 0)
-- (match_operand:SI 3 "register_operand" "dJ"))]
-+ (match_operand:SI 3 "reg_or_0_operand" "dJ"))]
- UNSPEC_SYNC_OLD_OP_12))
- (clobber (match_scratch:SI 4 "=&d"))]
- "GENERATE_LL_SC"
-@@ -177,7 +177,7 @@
- [(match_operand:SI 2 "register_operand" "d")
- (match_operand:SI 3 "register_operand" "d")
- (atomic_hiqi_op:SI (match_dup 0)
-- (match_operand:SI 4 "register_operand" "dJ"))]
-+ (match_operand:SI 4 "reg_or_0_operand" "dJ"))]
- UNSPEC_SYNC_OLD_OP_12))
- (clobber (match_scratch:SI 5 "=&d"))]
- "GENERATE_LL_SC"
-@@ -218,7 +218,7 @@
- (match_operand:SI 2 "register_operand" "d")
- (match_operand:SI 3 "register_operand" "d")
- (atomic_hiqi_op:SI (match_dup 0)
-- (match_operand:SI 4 "register_operand" "dJ"))]
-+ (match_operand:SI 4 "reg_or_0_operand" "dJ"))]
- UNSPEC_SYNC_NEW_OP_12))
- (set (match_dup 1)
- (unspec_volatile:SI
-@@ -259,7 +259,7 @@
- [(match_operand:SI 1 "register_operand" "d")
- (match_operand:SI 2 "register_operand" "d")
- (match_dup 0)
-- (match_operand:SI 3 "register_operand" "dJ")]
-+ (match_operand:SI 3 "reg_or_0_operand" "dJ")]
- UNSPEC_SYNC_OLD_OP_12))
- (clobber (match_scratch:SI 4 "=&d"))]
- "GENERATE_LL_SC"
-@@ -298,7 +298,7 @@
- (unspec_volatile:SI
- [(match_operand:SI 2 "register_operand" "d")
- (match_operand:SI 3 "register_operand" "d")
-- (match_operand:SI 4 "register_operand" "dJ")]
-+ (match_operand:SI 4 "reg_or_0_operand" "dJ")]
- UNSPEC_SYNC_OLD_OP_12))
- (clobber (match_scratch:SI 5 "=&d"))]
- "GENERATE_LL_SC"
-@@ -337,7 +337,7 @@
- [(match_operand:SI 1 "memory_operand" "+R")
- (match_operand:SI 2 "register_operand" "d")
- (match_operand:SI 3 "register_operand" "d")
-- (match_operand:SI 4 "register_operand" "dJ")]
-+ (match_operand:SI 4 "reg_or_0_operand" "dJ")]
- UNSPEC_SYNC_NEW_OP_12))
- (set (match_dup 1)
- (unspec_volatile:SI
-@@ -546,7 +546,7 @@
- (set (match_dup 1)
- (unspec_volatile:SI [(match_operand:SI 2 "register_operand" "d")
- (match_operand:SI 3 "register_operand" "d")
-- (match_operand:SI 4 "arith_operand" "dJ")]
-+ (match_operand:SI 4 "reg_or_0_operand" "dJ")]
- UNSPEC_SYNC_EXCHANGE_12))]
- "GENERATE_LL_SC"
- { return mips_output_sync_loop (insn, operands); }
diff --git a/devel/gcc/patches/200-musl.patch b/devel/gcc/patches/200-musl.patch
index 1cc5756df..2e6df47e4 100644
--- a/devel/gcc/patches/200-musl.patch
+++ b/devel/gcc/patches/200-musl.patch
@@ -1,16 +1,6 @@
---- a/config.sub
-+++ b/config.sub
-@@ -125,6 +125,7 @@ esac
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-+ linux-musl* | \
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
-@@ -485,7 +485,7 @@ case ${target} in
+@@ -549,7 +549,7 @@ case ${target} in
esac
# Common C libraries.
@@ -19,7 +9,7 @@
# Common parts for widely ported systems.
case ${target} in
-@@ -598,6 +598,9 @@ case ${target} in
+@@ -652,6 +652,9 @@ case ${target} in
*-*-*uclibc*)
tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
;;
@@ -31,7 +21,7 @@
;;
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
-@@ -78,6 +78,10 @@
+@@ -77,6 +77,10 @@
%{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
%{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
@@ -44,29 +34,24 @@
#undef LINK_SPEC
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
-@@ -93,6 +93,7 @@ along with GCC; see the file COPYING3.
- /* These macros may be overridden in k*bsd-gnu.h and i386/k*bsd-gnu.h. */
- #define LINK_EMULATION "elf_i386"
+@@ -21,3 +21,4 @@ along with GCC; see the file COPYING3.
+
+ #define GNU_USER_LINK_EMULATION "elf_i386"
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
-
- #undef ASM_SPEC
- #define ASM_SPEC \
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
-@@ -65,6 +65,9 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -30,3 +30,7 @@ see the files COPYING3 and COPYING.RUNTI
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
-
+ #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
++
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
-+
- #if TARGET_64BIT_DEFAULT
- #define SPEC_32 "m32"
- #define SPEC_64 "!m32"
++#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
-@@ -33,10 +33,12 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -32,10 +32,12 @@ see the files COPYING3 and COPYING.RUNTI
#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
@@ -78,8 +63,8 @@
+#define OPTION_MUSL (linux_libc == LIBC_MUSL)
#endif
- #define LINUX_TARGET_OS_CPP_BUILTINS() \
-@@ -54,18 +56,21 @@ see the files COPYING3 and COPYING.RUNTI
+ #define GNU_USER_TARGET_OS_CPP_BUILTINS() \
+@@ -53,18 +55,21 @@ see the files COPYING3 and COPYING.RUNTI
uClibc or Bionic is the default C library and whether
-muclibc or -mglibc or -mbionic has been passed to change the default. */
@@ -109,20 +94,24 @@
#else
#error "Unsupported DEFAULT_LIBC"
#endif /* DEFAULT_LIBC */
-@@ -83,13 +88,13 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -84,16 +89,16 @@ see the files COPYING3 and COPYING.RUNTI
- #define LINUX_DYNAMIC_LINKER \
+ #define GNU_USER_DYNAMIC_LINKER \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
- BIONIC_DYNAMIC_LINKER)
+ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
- #define LINUX_DYNAMIC_LINKER32 \
+ #define GNU_USER_DYNAMIC_LINKER32 \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \
- BIONIC_DYNAMIC_LINKER32)
+ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
- #define LINUX_DYNAMIC_LINKER64 \
+ #define GNU_USER_DYNAMIC_LINKER64 \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \
- BIONIC_DYNAMIC_LINKER64)
+ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
+ #define GNU_USER_DYNAMIC_LINKERX32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \
+- BIONIC_DYNAMIC_LINKERX32)
++ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32)
/* Determine whether the entire c99 runtime
is present in the runtime library. */
@@ -138,18 +127,67 @@
+Use musl C library
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
-@@ -63,6 +63,8 @@ along with GCC; see the file COPYING3.
+@@ -18,3 +18,5 @@ along with GCC; see the file COPYING3.
+ . */
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
-
-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips.so.1"
+
- /* Borrowed from sparc/linux.h */
- #undef LINK_SPEC
- #define LINK_SPEC \
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips.so.1"
+--- a/gcc/config/rs6000/linux64.h
++++ b/gcc/config/rs6000/linux64.h
+@@ -364,17 +364,21 @@ extern int dot_symbols;
+ #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
+ #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
+ #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-powerpc.so.1"
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-powerpc64.so.1"
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}"
+ #elif DEFAULT_LIBC == LIBC_GLIBC
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}"
++#elif DEFAULT_LIBC == LIBC_MUSL
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}"
+ #else
+ #error "Unsupported DEFAULT_LIBC"
+ #endif
+ #define GNU_USER_DYNAMIC_LINKER32 \
+- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
++ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
+ #define GNU_USER_DYNAMIC_LINKER64 \
+- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
++ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
+
+
+ #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
+--- a/gcc/config/rs6000/sysv4.h
++++ b/gcc/config/rs6000/sysv4.h
+@@ -789,15 +789,18 @@ extern int fixuplabelno;
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+ #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-powerpc.so.1"
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}"
++#elif DEFAULT_LIBC == LIBC_MUSL
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}"
+ #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}"
+ #else
+ #error "Unsupported DEFAULT_LIBC"
+ #endif
+ #define GNU_USER_DYNAMIC_LINKER \
+- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
++ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
+
+ #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
--- a/gcc/ginclude/stddef.h
+++ b/gcc/ginclude/stddef.h
-@@ -184,6 +184,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+@@ -181,6 +181,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
#ifndef _GCC_SIZE_T
#ifndef _SIZET_
#ifndef __size_t
@@ -157,14 +195,14 @@
#define __size_t__ /* BeOS */
#define __SIZE_T__ /* Cray Unicos/Mk */
#define _SIZE_T
-@@ -200,6 +201,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+@@ -197,6 +198,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
#define ___int_size_t_h
#define _GCC_SIZE_T
#define _SIZET_
+#define __DEFINED_size_t /* musl */
- #if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
- /* __size_t is a typedef on FreeBSD 5!, must not trash it. */
- #else
+ #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
+ || defined(__FreeBSD_kernel__)
+ /* __size_t is a typedef on FreeBSD 5, must not trash it. */
@@ -214,6 +216,7 @@ typedef __SIZE_TYPE__ size_t;
typedef long ssize_t;
#endif /* __BEOS__ */
@@ -184,9 +222,54 @@
#include "libgomp.h"
#include
#if TIME_WITH_SYS_TIME
+--- a/libitm/config/arm/hwcap.cc
++++ b/libitm/config/arm/hwcap.cc
+@@ -40,7 +40,11 @@ int GTM_hwcap HIDDEN = 0
+
+ #ifdef __linux__
+ #include
++#ifdef __GLIBC__
+ #include
++#else
++#include
++#endif
+ #include
+
+ static void __attribute__((constructor))
+--- a/libitm/config/linux/x86/tls.h
++++ b/libitm/config/linux/x86/tls.h
+@@ -25,16 +25,19 @@
+ #ifndef LIBITM_X86_TLS_H
+ #define LIBITM_X86_TLS_H 1
+
+-#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10)
++#if defined(__GLIBC_PREREQ)
++#if __GLIBC_PREREQ(2, 10)
+ /* Use slots in the TCB head rather than __thread lookups.
+ GLIBC has reserved words 10 through 13 for TM. */
+ #define HAVE_ARCH_GTM_THREAD 1
+ #define HAVE_ARCH_GTM_THREAD_DISP 1
+ #endif
++#endif
+
+ #include "config/generic/tls.h"
+
+-#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10)
++#if defined(__GLIBC_PREREQ)
++#if __GLIBC_PREREQ(2, 10)
+ namespace GTM HIDDEN {
+
+ #ifdef __x86_64__
+@@ -101,5 +104,6 @@ static inline void set_abi_disp(struct a
+
+ } // namespace GTM
+ #endif /* >= GLIBC 2.10 */
++#endif
+
+ #endif // LIBITM_X86_TLS_H
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
-@@ -237,6 +237,13 @@ case "${host_os}" in
+@@ -264,6 +264,13 @@ case "${host_os}" in
os_include_dir="os/bsd/freebsd"
;;
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
@@ -200,7 +283,7 @@
if [ "$uclibc" = "yes" ]; then
os_include_dir="os/uclibc"
elif [ "$bionic" = "yes" ]; then
-@@ -245,6 +252,9 @@ case "${host_os}" in
+@@ -272,6 +279,9 @@ case "${host_os}" in
os_include_dir="os/gnu-linux"
fi
;;
@@ -212,22 +295,19 @@
;;
--- a/gcc/config/mips/linux64.h
+++ b/gcc/config/mips/linux64.h
-@@ -40,9 +40,12 @@ along with GCC; see the file COPYING3.
+@@ -27,6 +27,9 @@ along with GCC; see the file COPYING3.
#define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
#define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
#define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
+#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mips.so.1"
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips.so.1"
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips.so.1"
- #define LINUX_DYNAMIC_LINKERN32 \
+ #define GNU_USER_DYNAMIC_LINKERN32 \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
- BIONIC_DYNAMIC_LINKERN32)
+ BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKERN32)
-
- #undef LINK_SPEC
- #define LINK_SPEC "\
---- a/gcc/config/sparc/linux64.h 2013-09-10 10:02:45.663973856 +0100
-+++ b/gcc/config/sparc/linux64.h 2013-09-10 10:03:17.871972435 +0100
+--- a/gcc/config/sparc/linux64.h 2013-09-10 10:02:45.663973856 +0100
++++ b/gcc/config/sparc/linux64.h 2013-09-10 10:03:17.871972435 +0100
@@ -104,6 +104,9 @@
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
@@ -238,3 +318,4 @@
#ifdef SPARC_BI_ARCH
#undef SUBTARGET_EXTRA_SPECS
+
diff --git a/devel/gcc/patches/301-missing-execinfo_h.patch b/devel/gcc/patches/301-missing-execinfo_h.patch
deleted file mode 100644
index b3f1e68d3..000000000
--- a/devel/gcc/patches/301-missing-execinfo_h.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/boehm-gc/include/gc.h
-+++ b/boehm-gc/include/gc.h
-@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of
- #if defined(__linux__) || defined(__GLIBC__)
- # include
- # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
-- && !defined(__ia64__)
-+ && !defined(__ia64__) && !defined(__UCLIBC__)
- # ifndef GC_HAVE_BUILTIN_BACKTRACE
- # define GC_HAVE_BUILTIN_BACKTRACE
- # endif
diff --git a/devel/gcc/patches/302-c99-snprintf.patch b/devel/gcc/patches/302-c99-snprintf.patch
deleted file mode 100644
index eda1854df..000000000
--- a/devel/gcc/patches/302-c99-snprintf.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libstdc++-v3/include/c_global/cstdio
-+++ b/libstdc++-v3/include/c_global/cstdio
-@@ -137,7 +137,7 @@ namespace std
- using ::vsprintf;
- } // namespace
-
--#if _GLIBCXX_USE_C99
-+#if _GLIBCXX_USE_C99 || defined __UCLIBC__
-
- #undef snprintf
- #undef vfscanf
diff --git a/devel/gcc/patches/305-libmudflap-susv3-legacy.patch b/devel/gcc/patches/305-libmudflap-susv3-legacy.patch
deleted file mode 100644
index 8e2d15f81..000000000
--- a/devel/gcc/patches/305-libmudflap-susv3-legacy.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/libmudflap/mf-hooks2.c
-+++ b/libmudflap/mf-hooks2.c
-@@ -421,7 +421,7 @@ WRAPPER2(void, bzero, void *s, size_t n)
- {
- TRACE ("%s\n", __PRETTY_FUNCTION__);
- MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
-- bzero (s, n);
-+ memset (s, 0, n);
- }
-
-
-@@ -431,7 +431,7 @@ WRAPPER2(void, bcopy, const void *src, v
- TRACE ("%s\n", __PRETTY_FUNCTION__);
- MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
- MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
-- bcopy (src, dest, n);
-+ memmove (dest, src, n);
- }
-
-
-@@ -441,7 +441,7 @@ WRAPPER2(int, bcmp, const void *s1, cons
- TRACE ("%s\n", __PRETTY_FUNCTION__);
- MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
- MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
-- return bcmp (s1, s2, n);
-+ return n == 0 ? 0 : memcmp (s1, s2, n);
- }
-
-
-@@ -450,7 +450,7 @@ WRAPPER2(char *, index, const char *s, i
- size_t n = strlen (s);
- TRACE ("%s\n", __PRETTY_FUNCTION__);
- MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
-- return index (s, c);
-+ return strchr (s, c);
- }
-
-
-@@ -459,7 +459,7 @@ WRAPPER2(char *, rindex, const char *s,
- size_t n = strlen (s);
- TRACE ("%s\n", __PRETTY_FUNCTION__);
- MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
-- return rindex (s, c);
-+ return strrchr (s, c);
- }
-
- /* XXX: stpcpy, memccpy */
diff --git a/devel/gcc/patches/800-arm_v5te_no_ldrd_strd.patch b/devel/gcc/patches/800-arm_v5te_no_ldrd_strd.patch
index 4b7770d5d..ae4f6516a 100644
--- a/devel/gcc/patches/800-arm_v5te_no_ldrd_strd.patch
+++ b/devel/gcc/patches/800-arm_v5te_no_ldrd_strd.patch
@@ -1,11 +1,11 @@
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
-@@ -232,7 +232,7 @@ extern void (*arm_lang_output_object_att
- #define TARGET_BACKTRACE (leaf_function_p () \
- ? TARGET_TPCS_LEAF_FRAME \
- : TARGET_TPCS_FRAME)
--#define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN)
-+#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN)
- #define TARGET_AAPCS_BASED \
- (arm_abi != ARM_ABI_APCS && arm_abi != ARM_ABI_ATPCS)
+@@ -271,7 +271,7 @@ extern void (*arm_lang_output_object_att
+ /* Thumb-1 only. */
+ #define TARGET_THUMB1_ONLY (TARGET_THUMB1 && !arm_arch_notm)
+-#define TARGET_LDRD (arm_arch5e && ARM_DOUBLEWORD_ALIGN \
++#define TARGET_LDRD (arm_arch6 && ARM_DOUBLEWORD_ALIGN \
+ && !TARGET_THUMB1)
+
+ /* The following two macros concern the ability to execute coprocessor
diff --git a/devel/gcc/patches/810-arm-softfloat-libgcc.patch b/devel/gcc/patches/810-arm-softfloat-libgcc.patch
index 60cfde407..33cf8add3 100644
--- a/devel/gcc/patches/810-arm-softfloat-libgcc.patch
+++ b/devel/gcc/patches/810-arm-softfloat-libgcc.patch
@@ -1,26 +1,25 @@
+--- a/libgcc/config/arm/t-linux
++++ b/libgcc/config/arm/t-linux
+@@ -1,6 +1,10 @@
+ LIB1ASMSRC = arm/lib1funcs.S
+ LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
+- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
++ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
++ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
++ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
++ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
++ _arm_fixsfsi _arm_fixunssfsi
+
+ # Just for these, we omit the frame pointer since it makes such a big
+ # difference.
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
-@@ -60,7 +60,7 @@
+@@ -55,8 +55,6 @@
%{shared:-lc} \
%{!shared:%{profile:-lc_p}%{!profile:-lc}}"
--#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
-+#define LIBGCC_SPEC "-lgcc"
-
+-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
+-
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
---- a/gcc/config/arm/t-linux
-+++ b/gcc/config/arm/t-linux
-@@ -23,7 +23,11 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi
-
- LIB1ASMSRC = arm/lib1funcs.asm
- LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
-- _arm_addsubdf3 _arm_addsubsf3
-+ _arm_addsubdf3 _arm_addsubsf3 \
-+ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
-+ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
-+ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
-+ _arm_fixsfsi _arm_fixunssfsi
-
- # MULTILIB_OPTIONS = mhard-float/msoft-float
- # MULTILIB_DIRNAMES = hard-float soft-float
+ #define LINUX_TARGET_LINK_SPEC "%{h*} \
diff --git a/devel/gcc/patches/820-libgcc_pic.patch b/devel/gcc/patches/820-libgcc_pic.patch
index 3760ac2b9..7a0ac7353 100644
--- a/devel/gcc/patches/820-libgcc_pic.patch
+++ b/devel/gcc/patches/820-libgcc_pic.patch
@@ -1,6 +1,6 @@
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
-@@ -747,11 +747,12 @@ $(libgcov-objects): %$(objext): $(gcc_sr
+@@ -865,11 +865,12 @@ $(libgcov-objects): %$(objext): $(srcdir
# Static libraries.
libgcc.a: $(libgcc-objects)
@@ -14,7 +14,7 @@
-rm -f $@
objects="$(objects)"; \
-@@ -773,7 +774,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
+@@ -891,7 +892,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E
endif
ifeq ($(enable_shared),yes)
@@ -23,7 +23,7 @@
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
endif
-@@ -954,6 +955,10 @@ install-shared:
+@@ -1058,6 +1059,10 @@ install-shared:
chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
diff --git a/devel/gcc/patches/830-arm_unbreak_armv4t.patch b/devel/gcc/patches/830-arm_unbreak_armv4t.patch
index 7e2ed6987..37f8f2a54 100644
--- a/devel/gcc/patches/830-arm_unbreak_armv4t.patch
+++ b/devel/gcc/patches/830-arm_unbreak_armv4t.patch
@@ -2,7 +2,7 @@ http://sourceware.org/ml/crossgcc/2008-05/msg00009.html
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
-@@ -46,7 +46,7 @@
+@@ -45,7 +45,7 @@
The ARM10TDMI core is the default for armv5t, so set
SUBTARGET_CPU_DEFAULT to achieve this. */
#undef SUBTARGET_CPU_DEFAULT
diff --git a/devel/gcc/patches/840-armv4_pass_fix-v4bx_to_ld.patch b/devel/gcc/patches/840-armv4_pass_fix-v4bx_to_ld.patch
index 3be371be6..e938905ab 100644
--- a/devel/gcc/patches/840-armv4_pass_fix-v4bx_to_ld.patch
+++ b/devel/gcc/patches/840-armv4_pass_fix-v4bx_to_ld.patch
@@ -1,6 +1,6 @@
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
-@@ -82,10 +82,15 @@
+@@ -81,10 +81,15 @@
#undef MUSL_DYNAMIC_LINKER
#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-arm.so.1"
diff --git a/devel/gcc/patches/850-use_shared_libgcc.patch b/devel/gcc/patches/850-use_shared_libgcc.patch
index 61e1035d3..2c7369fc2 100644
--- a/devel/gcc/patches/850-use_shared_libgcc.patch
+++ b/devel/gcc/patches/850-use_shared_libgcc.patch
@@ -1,6 +1,6 @@
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
-@@ -115,10 +115,6 @@
+@@ -114,10 +114,6 @@
#define ENDFILE_SPEC \
LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
@@ -9,22 +9,11 @@
-#undef LIBGCC_SPEC
-
/* Clear the instruction cache from `beg' to `end'. This is
- implemented in lib1funcs.asm, so ensure an error if this definition
+ implemented in lib1funcs.S, so ensure an error if this definition
is used. */
---- a/gcc/config/arm/linux-elf.h
-+++ b/gcc/config/arm/linux-elf.h
-@@ -60,8 +60,6 @@
- %{shared:-lc} \
- %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
-
--#define LIBGCC_SPEC "-lgcc"
--
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-
- #define LINUX_TARGET_LINK_SPEC "%{h*} \
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
-@@ -52,6 +52,10 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -51,6 +51,10 @@ see the files COPYING3 and COPYING.RUNTI
builtin_assert ("system=posix"); \
} while (0)
@@ -35,19 +24,8 @@
/* Determine which dynamic linker to use depending on whether GLIBC or
uClibc or Bionic is the default C library and whether
-muclibc or -mglibc or -mbionic has been passed to change the default. */
---- a/gcc/config/rs6000/linux.h
-+++ b/gcc/config/rs6000/linux.h
-@@ -88,6 +88,8 @@
- #define USE_LD_AS_NEEDED 1
- #endif
-
-+#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
-+
- #undef TARGET_VERSION
- #define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)");
-
---- a/gcc/mkmap-symver.awk
-+++ b/gcc/mkmap-symver.awk
+--- a/libgcc/mkmap-symver.awk
++++ b/libgcc/mkmap-symver.awk
@@ -132,5 +132,5 @@ function output(lib) {
else if (inherit[lib])
printf("} %s;\n", inherit[lib]);
@@ -55,32 +33,15 @@
- printf ("\n local:\n\t*;\n};\n");
+ printf ("\n\t*;\n};\n");
}
---- a/libgcc/Makefile.in
-+++ b/libgcc/Makefile.in
-@@ -269,6 +269,12 @@ ifeq ($(enable_shared),yes)
- install-libunwind = install-libunwind
- endif
+--- a/gcc/config/rs6000/linux.h
++++ b/gcc/config/rs6000/linux.h
+@@ -61,6 +61,9 @@
+ #undef CPLUSPLUS_CPP_SPEC
+ #define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-+else
-+# Not enable_shared.
-+iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items))
-+endif
-+
++#undef LIBGCC_SPEC
++#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc"
+
- # For -fvisibility=hidden. We need both a -fvisibility=hidden on
- # the command line, and a #define to prevent libgcc2.h etc from
- # overriding that with #pragmas.
-@@ -291,13 +297,6 @@ else
- gen-hide-list = echo > $@
- endif
+ #undef LINK_SHLIB_SPEC
+ #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
--else
--# Not enable_shared.
--iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items))
--vis_hide =
--gen-hide-list = echo > \$@
--endif
--
- ifneq ($(EXTRA_PARTS),)
- extra-parts = libgcc-extra-parts
- INSTALL_PARTS = $(EXTRA_PARTS)
diff --git a/devel/gcc/patches/860-uclibc_use_eh_frame.patch b/devel/gcc/patches/860-uclibc_use_eh_frame.patch
index 381a14bc9..0464bd7d2 100644
--- a/devel/gcc/patches/860-uclibc_use_eh_frame.patch
+++ b/devel/gcc/patches/860-uclibc_use_eh_frame.patch
@@ -1,5 +1,5 @@
---- a/gcc/crtstuff.c
-+++ b/gcc/crtstuff.c
+--- a/libgcc/crtstuff.c
++++ b/libgcc/crtstuff.c
@@ -100,15 +100,20 @@ call_ ## FUNC (void) \
#if defined(OBJECT_FORMAT_ELF) \
&& !defined(OBJECT_FORMAT_FLAT) \
@@ -26,4 +26,4 @@
+# endif
# endif
#endif
- #if defined(EH_FRAME_SECTION_NAME) && !defined(USE_PT_GNU_EH_FRAME)
+
diff --git a/devel/gcc/patches/870-ppc_no_crtsavres.patch b/devel/gcc/patches/870-ppc_no_crtsavres.patch
index 0e15ffc39..d8c460a92 100644
--- a/devel/gcc/patches/870-ppc_no_crtsavres.patch
+++ b/devel/gcc/patches/870-ppc_no_crtsavres.patch
@@ -1,20 +1,11 @@
---- a/gcc/config/rs6000/sysv4.h
-+++ b/gcc/config/rs6000/sysv4.h
-@@ -248,13 +248,13 @@ do { \
-
- /* Define cutoff for using external functions to save floating point.
- When optimizing for size, use external functions when profitable. */
--#define FP_SAVE_INLINE(FIRST_REG) (optimize_size \
-+#define FP_SAVE_INLINE(FIRST_REG) (1 || (optimize_size \
- ? ((FIRST_REG) == 62 \
- || (FIRST_REG) == 63) \
-- : (FIRST_REG) < 64)
-+ : (FIRST_REG) < 64))
- /* And similarly for general purpose registers. */
--#define GP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 32 \
-- && !optimize_size)
-+#define GP_SAVE_INLINE(FIRST_REG) (1 || ((FIRST_REG) < 32 \
-+ && !optimize_size))
-
- /* Put jump tables in read-only memory, rather than in .text. */
- #define JUMP_TABLES_IN_TEXT_SECTION 0
+--- a/gcc/config/rs6000/rs6000.c
++++ b/gcc/config/rs6000/rs6000.c
+@@ -17653,7 +17653,7 @@ rs6000_savres_strategy (rs6000_stack_t *
+ /* Define cutoff for using out-of-line functions to save registers. */
+ if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
+ {
+- if (!optimize_size)
++ if (1)
+ {
+ strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS;
+ strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS;
diff --git a/devel/gcc/patches/880-no_java_section.patch b/devel/gcc/patches/880-no_java_section.patch
index 404b7d31f..def6c9f4a 100644
--- a/devel/gcc/patches/880-no_java_section.patch
+++ b/devel/gcc/patches/880-no_java_section.patch
@@ -1,6 +1,6 @@
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
-@@ -383,7 +383,7 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -380,7 +380,7 @@ see the files COPYING3 and COPYING.RUNTI
/* If we have named section and we support weak symbols, then use the
.jcr section for recording java classes which need to be registered
at program start-up time. */
diff --git a/devel/gcc/patches/900-bad-mips16-crt b/devel/gcc/patches/900-bad-mips16-crt.patch
similarity index 51%
rename from devel/gcc/patches/900-bad-mips16-crt
rename to devel/gcc/patches/900-bad-mips16-crt.patch
index 5bb2ffb48..dd6e9dc88 100644
--- a/devel/gcc/patches/900-bad-mips16-crt
+++ b/devel/gcc/patches/900-bad-mips16-crt.patch
@@ -1,6 +1,6 @@
---- gcc/gcc/config/mips/t-libgcc-mips16~ 2013-03-26 09:09:34.209077496 -0400
-+++ gcc/gcc/config/mips/t-libgcc-mips16 2013-03-26 18:21:01.717303669 -0400
-@@ -43,3 +43,6 @@
+--- a/libgcc/config/mips/t-mips16
++++ b/libgcc/config/mips/t-mips16
+@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16
# Version these symbols if building libgcc.so.
SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver
diff --git a/devel/gcc/patches/910-mbsd_multi.patch b/devel/gcc/patches/910-mbsd_multi.patch
index 51bbc7f2b..d04dc7d91 100644
--- a/devel/gcc/patches/910-mbsd_multi.patch
+++ b/devel/gcc/patches/910-mbsd_multi.patch
@@ -19,27 +19,27 @@
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
-@@ -103,6 +103,9 @@ static size_t deferred_count;
- /* Number of deferred options scanned for -include. */
- static size_t include_cursor;
+@@ -104,6 +104,9 @@ static size_t include_cursor;
+ /* Whether any standard preincluded header has been preincluded. */
+ static bool done_preinclude;
+/* 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_cxx0x (int);
-@@ -441,6 +444,9 @@ c_common_handle_option (size_t scode, co
- global_dc->warning_as_error_requested = value;
+ static void set_std_cxx11 (int);
+@@ -383,6 +386,9 @@ c_common_handle_option (size_t scode, co
+ cpp_opts->warn_endif_labels = value;
break;
+ case OPT_Werror_maybe_reset:
+ break;
+
- case OPT_Wformat:
- set_Wformat (value);
+ case OPT_Winvalid_pch:
+ cpp_opts->warn_invalid_pch = value;
break;
-@@ -584,6 +590,12 @@ c_common_handle_option (size_t scode, co
+@@ -491,6 +497,12 @@ c_common_handle_option (size_t scode, co
flag_no_builtin = !value;
break;
@@ -52,7 +52,7 @@
case OPT_fconstant_string_class_:
constant_string_class_name = arg;
break;
-@@ -1058,6 +1070,47 @@ c_common_init (void)
+@@ -1027,6 +1039,47 @@ c_common_init (void)
return false;
}
@@ -102,7 +102,7 @@
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
-@@ -363,6 +363,10 @@ Werror-implicit-function-declaration
+@@ -379,6 +379,10 @@ Werror-implicit-function-declaration
C ObjC RejectNegative Warning Alias(Werror=, implicit-function-declaration)
This switch is deprecated; use -Werror=implicit-function-declaration instead
@@ -113,7 +113,7 @@
Wfloat-equal
C ObjC C++ ObjC++ Var(warn_float_equal) Warning
Warn if testing floating point numbers for equality
-@@ -794,6 +798,9 @@ C++ ObjC++ Optimization Alias(fexception
+@@ -949,6 +953,9 @@ C++ ObjC++ Optimization Alias(fexception
fhonor-std
C++ ObjC++ Ignore Warn(switch %qs is no longer supported)
@@ -125,7 +125,7 @@
Assume normal C execution environment
--- a/gcc/common.opt
+++ b/gcc/common.opt
-@@ -520,6 +520,10 @@ Werror=
+@@ -541,6 +541,10 @@ Werror=
Common Joined
Treat specified warning as error
@@ -136,7 +136,7 @@
Wextra
Common Var(extra_warnings) Warning
Print extra (possibly unwanted) warnings
-@@ -1156,6 +1160,9 @@ fguess-branch-probability
+@@ -1242,6 +1246,9 @@ fguess-branch-probability
Common Report Var(flag_guess_branch_prob) Optimization
Enable guessing of branch probabilities
@@ -148,7 +148,7 @@
; On SVR4 targets, it also controls whether or not to emit a
--- a/gcc/opts.c
+++ b/gcc/opts.c
-@@ -477,8 +477,6 @@ static const struct default_options defa
+@@ -468,8 +468,6 @@ static const struct default_options defa
{ OPT_LEVELS_2_PLUS, OPT_fschedule_insns2, NULL, 1 },
#endif
{ OPT_LEVELS_2_PLUS, OPT_fregmove, NULL, 1 },
@@ -157,8 +157,8 @@
{ 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 },
-@@ -494,6 +492,8 @@ static const struct default_options defa
- { OPT_LEVELS_2_PLUS, OPT_falign_functions, NULL, 1 },
+@@ -488,6 +486,8 @@ static const struct default_options defa
+ { OPT_LEVELS_2_PLUS, OPT_fhoist_adjacent_loads, NULL, 1 },
/* -O3 optimizations. */
+ { OPT_LEVELS_3_PLUS, OPT_fstrict_aliasing, NULL, 1 },
@@ -166,7 +166,7 @@
{ 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
-@@ -1405,6 +1405,17 @@ common_handle_option (struct gcc_options
+@@ -1423,6 +1423,17 @@ common_handle_option (struct gcc_options
opts, opts_set, loc, dc);
break;
@@ -186,7 +186,7 @@
opts->x_warn_larger_than = value != -1;
--- a/gcc/doc/cppopts.texi
+++ b/gcc/doc/cppopts.texi
-@@ -164,6 +164,11 @@ in older programs. This warning is on b
+@@ -163,6 +163,11 @@ in older programs. This warning is on b
Make all warnings into hard errors. Source code which triggers warnings
will be rejected.
@@ -209,8 +209,8 @@
-Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol
-Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol
-Wformat-security -Wformat-y2k @gol
-@@ -4498,6 +4498,22 @@ This option is only supported for C and
- @option{-Wall} and by @option{-pedantic}, which can be disabled with
+@@ -4808,6 +4808,22 @@ This option is only supported for C and
+ @option{-Wall} and by @option{-Wpedantic}, which can be disabled with
@option{-Wno-pointer-sign}.
+ at item -Werror-maybe-reset
@@ -232,7 +232,7 @@
@item -Wstack-protector
@opindex Wstack-protector
@opindex Wno-stack-protector
-@@ -6317,7 +6333,7 @@ so, the first branch is redirected to ei
+@@ -6919,7 +6935,7 @@ so, the first branch is redirected to ei
second branch or a point immediately following it, depending on whether
the condition is known to be true or false.
@@ -243,7 +243,7 @@
@opindex fsplit-wide-types
--- a/gcc/java/jvspec.c
+++ b/gcc/java/jvspec.c
-@@ -627,6 +627,7 @@ lang_specific_pre_link (void)
+@@ -626,6 +626,7 @@ lang_specific_pre_link (void)
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));
diff --git a/devel/gcc/patches/920-specs_nonfatal_getenv.patch b/devel/gcc/patches/920-specs_nonfatal_getenv.patch
index 5055ae898..4baa96693 100644
--- a/devel/gcc/patches/920-specs_nonfatal_getenv.patch
+++ b/devel/gcc/patches/920-specs_nonfatal_getenv.patch
@@ -1,6 +1,6 @@
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
-@@ -7772,7 +7772,10 @@ getenv_spec_function (int argc, const ch
+@@ -8003,7 +8003,10 @@ getenv_spec_function (int argc, const ch
value = getenv (argv[0]);
if (!value)
diff --git a/devel/gcc/patches/999-coldfire.patch b/devel/gcc/patches/999-coldfire.patch
deleted file mode 100644
index 0913f3497..000000000
--- a/devel/gcc/patches/999-coldfire.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -1805,7 +1805,7 @@ m68k-*-linux*) # Motorola m68k's runnin
- default_m68k_cpu=68020
- default_cf_cpu=5475
- with_arch=${with_arch:-m68k}
-- tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
-+ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h"
- extra_options="${extra_options} m68k/ieee.opt"
- tm_defines="${tm_defines} MOTOROLA=1"
- tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"