gcc: bump 6.x series to version 6.3.0
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Wed, 21 Dec 2016 15:29:53 +0000 (12:29 -0300)
committerPeter Korsgaard <peter@korsgaard.com>
Wed, 21 Dec 2016 16:19:58 +0000 (17:19 +0100)
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
34 files changed:
package/gcc/6.2.0/100-uclibc-conf.patch [deleted file]
package/gcc/6.2.0/301-missing-execinfo_h.patch [deleted file]
package/gcc/6.2.0/810-arm-softfloat-libgcc.patch [deleted file]
package/gcc/6.2.0/830-arm_unbreak_armv4t.patch [deleted file]
package/gcc/6.2.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch [deleted file]
package/gcc/6.2.0/860-cilk-wchar.patch [deleted file]
package/gcc/6.2.0/870-xtensa-Fix-PR-target-78118.patch [deleted file]
package/gcc/6.2.0/871-xtensa-Fix-PR-target-78603.patch [deleted file]
package/gcc/6.2.0/890-fix-m68k-compile.patch [deleted file]
package/gcc/6.2.0/891-fix-m68k-uclinux.patch [deleted file]
package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch [deleted file]
package/gcc/6.2.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch [deleted file]
package/gcc/6.2.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch [deleted file]
package/gcc/6.2.0/895-bfin-define-REENTRANT.patch [deleted file]
package/gcc/6.2.0/940-uclinux-enable-threads.patch [deleted file]
package/gcc/6.2.0/941-mips-Add-support-for-mips-r6-musl.patch [deleted file]
package/gcc/6.3.0/100-uclibc-conf.patch [new file with mode: 0644]
package/gcc/6.3.0/301-missing-execinfo_h.patch [new file with mode: 0644]
package/gcc/6.3.0/810-arm-softfloat-libgcc.patch [new file with mode: 0644]
package/gcc/6.3.0/830-arm_unbreak_armv4t.patch [new file with mode: 0644]
package/gcc/6.3.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch [new file with mode: 0644]
package/gcc/6.3.0/860-cilk-wchar.patch [new file with mode: 0644]
package/gcc/6.3.0/870-xtensa-Fix-PR-target-78118.patch [new file with mode: 0644]
package/gcc/6.3.0/871-xtensa-Fix-PR-target-78603.patch [new file with mode: 0644]
package/gcc/6.3.0/890-fix-m68k-compile.patch [new file with mode: 0644]
package/gcc/6.3.0/891-fix-m68k-uclinux.patch [new file with mode: 0644]
package/gcc/6.3.0/892-libgcc-mkmap-symver-support-skip_underscore.patch [new file with mode: 0644]
package/gcc/6.3.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch [new file with mode: 0644]
package/gcc/6.3.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch [new file with mode: 0644]
package/gcc/6.3.0/895-bfin-define-REENTRANT.patch [new file with mode: 0644]
package/gcc/6.3.0/940-uclinux-enable-threads.patch [new file with mode: 0644]
package/gcc/6.3.0/941-mips-Add-support-for-mips-r6-musl.patch [new file with mode: 0644]
package/gcc/Config.in.host
package/gcc/gcc.hash

diff --git a/package/gcc/6.2.0/100-uclibc-conf.patch b/package/gcc/6.2.0/100-uclibc-conf.patch
deleted file mode 100644 (file)
index 73d1f0d..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: b/contrib/regression/objs-gcc.sh
-===================================================================
---- a/contrib/regression/objs-gcc.sh
-+++ b/contrib/regression/objs-gcc.sh
-@@ -106,6 +106,10 @@
-  then
-   make all-gdb all-dejagnu all-ld || exit 1
-   make install-gdb install-dejagnu install-ld || exit 1
-+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
-+ then
-+  make all-gdb all-dejagnu all-ld || exit 1
-+  make install-gdb install-dejagnu install-ld || exit 1
- elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
-   make bootstrap || exit 1
-   make install || exit 1
diff --git a/package/gcc/6.2.0/301-missing-execinfo_h.patch b/package/gcc/6.2.0/301-missing-execinfo_h.patch
deleted file mode 100644 (file)
index 2d0e7ba..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: b/boehm-gc/include/gc.h
-===================================================================
---- a/boehm-gc/include/gc.h
-+++ b/boehm-gc/include/gc.h
-@@ -503,7 +503,7 @@
- #if defined(__linux__) || defined(__GLIBC__)
- # include <features.h>
- # 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/package/gcc/6.2.0/810-arm-softfloat-libgcc.patch b/package/gcc/6.2.0/810-arm-softfloat-libgcc.patch
deleted file mode 100644 (file)
index 5efa7fd..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: b/gcc/config/arm/linux-elf.h
-===================================================================
---- a/gcc/config/arm/linux-elf.h
-+++ b/gcc/config/arm/linux-elf.h
-@@ -60,7 +60,7 @@
-    %{shared:-lc} \
-    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
--#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
-+#define LIBGCC_SPEC "-lgcc"
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-Index: b/libgcc/config/arm/t-linux
-===================================================================
---- a/libgcc/config/arm/t-linux
-+++ b/libgcc/config/arm/t-linux
-@@ -1,6 +1,11 @@
- LIB1ASMSRC = arm/lib1funcs.S
- LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
--      _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
-+      _ctzsi2 _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
- # Just for these, we omit the frame pointer since it makes such a big
- # difference.
diff --git a/package/gcc/6.2.0/830-arm_unbreak_armv4t.patch b/package/gcc/6.2.0/830-arm_unbreak_armv4t.patch
deleted file mode 100644 (file)
index b730059..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-http://sourceware.org/ml/crossgcc/2008-05/msg00009.html
-
-Index: b/gcc/config/arm/linux-eabi.h
-===================================================================
---- 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.  */
diff --git a/package/gcc/6.2.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch b/package/gcc/6.2.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch
deleted file mode 100644 (file)
index af9fb1d..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From 07453188b18a2cbe815917dbb893b4ebfdd793b6 Mon Sep 17 00:00:00 2001
-From: ktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Fri, 26 Aug 2016 10:23:20 +0000
-Subject: [PATCH] [ARM] PR target/70473: Reduce size of Cortex-A8 automaton
-
-       PR target/70473
-       * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
-       reservation duration to 15 cycles.
-       (cortex_a8_vfp_macs): Likewise.
-       (cortex_a8_vfp_macd): Likewise.
-       (cortex_a8_vfp_divs): Likewise.
-       (cortex_a8_vfp_divd): Likewise.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239772
-138bc75d-0d04-0410-961f-82ee72b054a4
-
-[Backport from gcc upstream commit 79f5d5e3cd5a668d5ecb2b6b0cce80ef5706ac53.]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- gcc/config/arm/cortex-a8-neon.md | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/gcc/config/arm/cortex-a8-neon.md b/gcc/config/arm/cortex-a8-neon.md
-index 45f861f..b16c299 100644
---- a/gcc/config/arm/cortex-a8-neon.md
-+++ b/gcc/config/arm/cortex-a8-neon.md
-@@ -357,30 +357,34 @@
-        (eq_attr "type" "fmuls"))
-   "cortex_a8_vfp,cortex_a8_vfplite*11")
-+;; Don't model a reservation for more than 15 cycles as this explodes the
-+;; state space of the automaton for little gain.  It is unlikely that the
-+;; scheduler will find enough instructions to hide the full latency of the
-+;; instructions.
- (define_insn_reservation "cortex_a8_vfp_muld" 17
-   (and (eq_attr "tune" "cortexa8")
-        (eq_attr "type" "fmuld"))
--  "cortex_a8_vfp,cortex_a8_vfplite*16")
-+  "cortex_a8_vfp,cortex_a8_vfplite*15")
- (define_insn_reservation "cortex_a8_vfp_macs" 21
-   (and (eq_attr "tune" "cortexa8")
-        (eq_attr "type" "fmacs,ffmas"))
--  "cortex_a8_vfp,cortex_a8_vfplite*20")
-+  "cortex_a8_vfp,cortex_a8_vfplite*15")
- (define_insn_reservation "cortex_a8_vfp_macd" 26
-   (and (eq_attr "tune" "cortexa8")
-        (eq_attr "type" "fmacd,ffmad"))
--  "cortex_a8_vfp,cortex_a8_vfplite*25")
-+  "cortex_a8_vfp,cortex_a8_vfplite*15")
- (define_insn_reservation "cortex_a8_vfp_divs" 37
-   (and (eq_attr "tune" "cortexa8")
-        (eq_attr "type" "fdivs, fsqrts"))
--  "cortex_a8_vfp,cortex_a8_vfplite*36")
-+  "cortex_a8_vfp,cortex_a8_vfplite*15")
- (define_insn_reservation "cortex_a8_vfp_divd" 65
-   (and (eq_attr "tune" "cortexa8")
-        (eq_attr "type" "fdivd, fsqrtd"))
--  "cortex_a8_vfp,cortex_a8_vfplite*64")
-+  "cortex_a8_vfp,cortex_a8_vfplite*15")
- ;; Comparisons can actually take 7 cycles sometimes instead of four,
- ;; but given all the other instructions lumped into type=ffarith that
--- 
-2.7.4
-
diff --git a/package/gcc/6.2.0/860-cilk-wchar.patch b/package/gcc/6.2.0/860-cilk-wchar.patch
deleted file mode 100644 (file)
index 1d9916f..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-[PATCH] cilk: fix build without wchar
-
-When building against uClibc with wchar support disabled, WCHAR_MIN and
-WCHAR_MAX are not defined leading to compilation errors.
-
-Fix it by only including the wchar code if available.
-
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- libcilkrts/include/cilk/reducer_min_max.h |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-Index: b/libcilkrts/include/cilk/reducer_min_max.h
-===================================================================
---- a/libcilkrts/include/cilk/reducer_min_max.h
-+++ b/libcilkrts/include/cilk/reducer_min_max.h
-@@ -3154,7 +3154,9 @@
- CILK_C_REDUCER_MAX_INSTANCE(char,               char,       CHAR_MIN)
- CILK_C_REDUCER_MAX_INSTANCE(unsigned char,      uchar,      0)
- CILK_C_REDUCER_MAX_INSTANCE(signed char,        schar,      SCHAR_MIN)
-+#ifdef WCHAR_MIN
- CILK_C_REDUCER_MAX_INSTANCE(wchar_t,            wchar_t,    WCHAR_MIN)
-+#endif
- CILK_C_REDUCER_MAX_INSTANCE(short,              short,      SHRT_MIN)
- CILK_C_REDUCER_MAX_INSTANCE(unsigned short,     ushort,     0)
- CILK_C_REDUCER_MAX_INSTANCE(int,                int,        INT_MIN)
-@@ -3306,7 +3308,9 @@
- CILK_C_REDUCER_MAX_INDEX_INSTANCE(char,               char,       CHAR_MIN)
- CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned char,      uchar,      0)
- CILK_C_REDUCER_MAX_INDEX_INSTANCE(signed char,        schar,      SCHAR_MIN)
-+#ifdef WCHAR_MIN
- CILK_C_REDUCER_MAX_INDEX_INSTANCE(wchar_t,            wchar_t,    WCHAR_MIN)
-+#endif
- CILK_C_REDUCER_MAX_INDEX_INSTANCE(short,              short,      SHRT_MIN)
- CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned short,     ushort,     0)
- CILK_C_REDUCER_MAX_INDEX_INSTANCE(int,                int,        INT_MIN)
-@@ -3432,7 +3436,9 @@
- CILK_C_REDUCER_MIN_INSTANCE(char,               char,       CHAR_MAX)
- CILK_C_REDUCER_MIN_INSTANCE(unsigned char,      uchar,      CHAR_MAX)
- CILK_C_REDUCER_MIN_INSTANCE(signed char,        schar,      SCHAR_MAX)
-+#ifdef WCHAR_MAX
- CILK_C_REDUCER_MIN_INSTANCE(wchar_t,            wchar_t,    WCHAR_MAX)
-+#endif
- CILK_C_REDUCER_MIN_INSTANCE(short,              short,      SHRT_MAX)
- CILK_C_REDUCER_MIN_INSTANCE(unsigned short,     ushort,     USHRT_MAX)
- CILK_C_REDUCER_MIN_INSTANCE(int,                int,        INT_MAX)
-@@ -3584,7 +3590,9 @@
- CILK_C_REDUCER_MIN_INDEX_INSTANCE(char,               char,       CHAR_MAX)
- CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned char,      uchar,      CHAR_MAX)
- CILK_C_REDUCER_MIN_INDEX_INSTANCE(signed char,        schar,      SCHAR_MAX)
-+#ifdef WCHAR_MAX
- CILK_C_REDUCER_MIN_INDEX_INSTANCE(wchar_t,            wchar_t,    WCHAR_MAX)
-+#endif
- CILK_C_REDUCER_MIN_INDEX_INSTANCE(short,              short,      SHRT_MAX)
- CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned short,     ushort,     USHRT_MAX)
- CILK_C_REDUCER_MIN_INDEX_INSTANCE(int,                int,        INT_MAX)
diff --git a/package/gcc/6.2.0/870-xtensa-Fix-PR-target-78118.patch b/package/gcc/6.2.0/870-xtensa-Fix-PR-target-78118.patch
deleted file mode 100644 (file)
index 0598c76..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-From 0d2556fa652cc85b3d042e862a38dd07d454175a Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Wed, 26 Oct 2016 08:02:51 +0000
-Subject: [PATCH 1/2] xtensa: Fix PR target/78118
-
-It started failing after the following commit: 32e90dc6a0cda45 ("PR
-rtl-optimization/61047").
-
-The change that made xtensa backend go ICE looks completely unrelated,
-and indeed, the issue is caused by the side effect of
-compute_frame_size() function call hidden in the
-INITIAL_ELIMINATION_OFFSET macro. This call updates the value of the
-xtensa_current_frame_size static variable, used in "return" instruction
-predicate. Prior to the change the value of xtensa_current_frame_size was
-set to 0 after the end of epilogue generation, which enabled the "return"
-instruction for the CALL0 ABI, but after the change the additional
-INITIAL_ELIMINATION_OFFSET calls make xtensa_current_frame_size non-zero
-and "return" pattern unavailable.
-
-Get rid of the global xtensa_current_frame_size and
-xtensa_callee_save_size variables by moving them into the
-machine_function structure. Implement predicate for the "return" pattern
-as a function. Don't communicate completion of epilogue generation
-through zeroing of xtensa_current_frame_size, add explicit epilogue_done
-variable to the machine_function structure. Don't update stack frame
-layout after the completion of reload.
-
-2016-10-26  Max Filippov  <jcmvbkbc@gmail.com>
-gcc/
-       * config/xtensa/xtensa-protos.h
-       (xtensa_use_return_instruction_p): New prototype.
-       * config/xtensa/xtensa.c (xtensa_current_frame_size,
-       xtensa_callee_save_size): Remove.
-       (struct machine_function): Add new fields: current_frame_size,
-       callee_save_size, frame_laid_out and epilogue_done.
-       (compute_frame_size, xtensa_expand_prologue,
-       xtensa_expand_epilogue): Replace xtensa_callee_save_size with
-       cfun->machine->callee_save_size and xtensa_current_frame_size
-       with cfun->machine->current_frame_size.
-       (compute_frame_size): Update cfun->machine->frame_laid_out and
-       don't update frame layout after reload completion.
-       (xtensa_expand_epilogue): Set cfun->machine->epilogue_done
-       instead of zeroing xtensa_current_frame_size.
-       (xtensa_use_return_instruction_p): New function.
-       * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove
-       declaration.
-       (INITIAL_ELIMINATION_OFFSET): Use return value of
-       compute_frame_size instead of xtensa_current_frame_size value.
-       * config/xtensa/xtensa.md ("return" pattern): Use new predicate
-       function xtensa_use_return_instruction_p instead of inline code.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: r241748
-
- gcc/config/xtensa/xtensa-protos.h |  1 +
- gcc/config/xtensa/xtensa.c        | 82 ++++++++++++++++++++++++---------------
- gcc/config/xtensa/xtensa.h        |  6 +--
- gcc/config/xtensa/xtensa.md       |  2 +-
- 4 files changed, 55 insertions(+), 36 deletions(-)
-
-diff --git a/gcc/config/xtensa/xtensa-protos.h b/gcc/config/xtensa/xtensa-protos.h
-index f2ca526..873557f 100644
---- a/gcc/config/xtensa/xtensa-protos.h
-+++ b/gcc/config/xtensa/xtensa-protos.h
-@@ -68,6 +68,7 @@ extern rtx xtensa_return_addr (int, rtx);
- extern void xtensa_setup_frame_addresses (void);
- extern int xtensa_dbx_register_number (int);
- extern long compute_frame_size (int);
-+extern bool xtensa_use_return_instruction_p (void);
- extern void xtensa_expand_prologue (void);
- extern void xtensa_expand_epilogue (void);
- extern void order_regs_for_local_alloc (void);
-diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
-index 64d089b..e49f784 100644
---- a/gcc/config/xtensa/xtensa.c
-+++ b/gcc/config/xtensa/xtensa.c
-@@ -78,11 +78,6 @@ enum internal_test
-    can support a given mode.  */
- char xtensa_hard_regno_mode_ok[(int) MAX_MACHINE_MODE][FIRST_PSEUDO_REGISTER];
--/* Current frame size calculated by compute_frame_size.  */
--unsigned xtensa_current_frame_size;
--/* Callee-save area size in the current frame calculated by compute_frame_size. */
--int xtensa_callee_save_size;
--
- /* Largest block move to handle in-line.  */
- #define LARGEST_MOVE_RATIO 15
-@@ -94,6 +89,13 @@ struct GTY(()) machine_function
-   bool vararg_a7;
-   rtx vararg_a7_copy;
-   rtx_insn *set_frame_ptr_insn;
-+  /* Current frame size calculated by compute_frame_size.  */
-+  unsigned current_frame_size;
-+  /* Callee-save area size in the current frame calculated by
-+     compute_frame_size.  */
-+  int callee_save_size;
-+  bool frame_laid_out;
-+  bool epilogue_done;
- };
- /* Vector, indexed by hard register number, which contains 1 for a
-@@ -2628,24 +2630,29 @@ compute_frame_size (int size)
- {
-   int regno;
-+  if (reload_completed && cfun->machine->frame_laid_out)
-+    return cfun->machine->current_frame_size;
-+
-   /* Add space for the incoming static chain value.  */
-   if (cfun->static_chain_decl != NULL)
-     size += (1 * UNITS_PER_WORD);
--  xtensa_callee_save_size = 0;
-+  cfun->machine->callee_save_size = 0;
-   for (regno = 0; regno < FIRST_PSEUDO_REGISTER; ++regno)
-     {
-       if (xtensa_call_save_reg(regno))
--      xtensa_callee_save_size += UNITS_PER_WORD;
-+      cfun->machine->callee_save_size += UNITS_PER_WORD;
-     }
--  xtensa_current_frame_size =
-+  cfun->machine->current_frame_size =
-     XTENSA_STACK_ALIGN (size
--                      + xtensa_callee_save_size
-+                      + cfun->machine->callee_save_size
-                       + crtl->outgoing_args_size
-                       + (WINDOW_SIZE * UNITS_PER_WORD));
--  xtensa_callee_save_size = XTENSA_STACK_ALIGN (xtensa_callee_save_size);
--  return xtensa_current_frame_size;
-+  cfun->machine->callee_save_size =
-+    XTENSA_STACK_ALIGN (cfun->machine->callee_save_size);
-+  cfun->machine->frame_laid_out = true;
-+  return cfun->machine->current_frame_size;
- }
-@@ -2696,6 +2703,7 @@ xtensa_expand_prologue (void)
-     {
-       int regno;
-       HOST_WIDE_INT offset = 0;
-+      int callee_save_size = cfun->machine->callee_save_size;
-       /* -128 is a limit of single addi instruction. */
-       if (total_size > 0 && total_size <= 128)
-@@ -2709,7 +2717,7 @@ xtensa_expand_prologue (void)
-         add_reg_note (insn, REG_FRAME_RELATED_EXPR, note_rtx);
-         offset = total_size - UNITS_PER_WORD;
-       }
--      else if (xtensa_callee_save_size)
-+      else if (callee_save_size)
-       {
-         /* 1020 is maximal s32i offset, if the frame is bigger than that
-          * we move sp to the end of callee-saved save area, save and then
-@@ -2717,13 +2725,13 @@ xtensa_expand_prologue (void)
-         if (total_size > 1024)
-           {
-             insn = emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
--                                          GEN_INT (-xtensa_callee_save_size)));
-+                                          GEN_INT (-callee_save_size)));
-             RTX_FRAME_RELATED_P (insn) = 1;
-             note_rtx = gen_rtx_SET (stack_pointer_rtx,
-                                     plus_constant (Pmode, stack_pointer_rtx,
--                                                   -xtensa_callee_save_size));
-+                                                   -callee_save_size));
-             add_reg_note (insn, REG_FRAME_RELATED_EXPR, note_rtx);
--            offset = xtensa_callee_save_size - UNITS_PER_WORD;
-+            offset = callee_save_size - UNITS_PER_WORD;
-           }
-         else
-           {
-@@ -2759,13 +2767,13 @@ xtensa_expand_prologue (void)
-       {
-         rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
-         emit_move_insn (tmp_reg, GEN_INT (total_size -
--                                          xtensa_callee_save_size));
-+                                          callee_save_size));
-         insn = emit_insn (gen_subsi3 (stack_pointer_rtx,
-                                       stack_pointer_rtx, tmp_reg));
-         RTX_FRAME_RELATED_P (insn) = 1;
-         note_rtx = gen_rtx_SET (stack_pointer_rtx,
-                                 plus_constant (Pmode, stack_pointer_rtx,
--                                               xtensa_callee_save_size -
-+                                               callee_save_size -
-                                                total_size));
-         add_reg_note (insn, REG_FRAME_RELATED_EXPR, note_rtx);
-       }
-@@ -2833,21 +2841,21 @@ xtensa_expand_epilogue (void)
-       int regno;
-       HOST_WIDE_INT offset;
--      if (xtensa_current_frame_size > (frame_pointer_needed ? 127 : 1024))
-+      if (cfun->machine->current_frame_size > (frame_pointer_needed ? 127 : 1024))
-       {
-         rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
--        emit_move_insn (tmp_reg, GEN_INT (xtensa_current_frame_size -
--                                          xtensa_callee_save_size));
-+        emit_move_insn (tmp_reg, GEN_INT (cfun->machine->current_frame_size -
-+                                          cfun->machine->callee_save_size));
-         emit_insn (gen_addsi3 (stack_pointer_rtx, frame_pointer_needed ?
-                                hard_frame_pointer_rtx : stack_pointer_rtx,
-                                tmp_reg));
--        offset = xtensa_callee_save_size - UNITS_PER_WORD;
-+        offset = cfun->machine->callee_save_size - UNITS_PER_WORD;
-       }
-       else
-       {
-         if (frame_pointer_needed)
-           emit_move_insn (stack_pointer_rtx, hard_frame_pointer_rtx);
--        offset = xtensa_current_frame_size - UNITS_PER_WORD;
-+        offset = cfun->machine->current_frame_size - UNITS_PER_WORD;
-       }
-       /* Prevent reordering of saved a0 update and loading it back from
-@@ -2867,16 +2875,16 @@ xtensa_expand_epilogue (void)
-           }
-       }
--      if (xtensa_current_frame_size > 0)
-+      if (cfun->machine->current_frame_size > 0)
-       {
-         if (frame_pointer_needed || /* always reachable with addi */
--            xtensa_current_frame_size > 1024 ||
--            xtensa_current_frame_size <= 127)
-+            cfun->machine->current_frame_size > 1024 ||
-+            cfun->machine->current_frame_size <= 127)
-           {
--            if (xtensa_current_frame_size <= 127)
--              offset = xtensa_current_frame_size;
-+            if (cfun->machine->current_frame_size <= 127)
-+              offset = cfun->machine->current_frame_size;
-             else
--              offset = xtensa_callee_save_size;
-+              offset = cfun->machine->callee_save_size;
-             emit_insn (gen_addsi3 (stack_pointer_rtx,
-                                    stack_pointer_rtx,
-@@ -2885,7 +2893,8 @@ xtensa_expand_epilogue (void)
-         else
-           {
-             rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
--            emit_move_insn (tmp_reg, GEN_INT (xtensa_current_frame_size));
-+            emit_move_insn (tmp_reg,
-+                            GEN_INT (cfun->machine->current_frame_size));
-             emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
-                                    tmp_reg));
-           }
-@@ -2896,11 +2905,22 @@ xtensa_expand_epilogue (void)
-                                 stack_pointer_rtx,
-                                 EH_RETURN_STACKADJ_RTX));
-     }
--  xtensa_current_frame_size = 0;
--  xtensa_callee_save_size = 0;
-+  cfun->machine->epilogue_done = true;
-   emit_jump_insn (gen_return ());
- }
-+bool
-+xtensa_use_return_instruction_p (void)
-+{
-+  if (!reload_completed)
-+    return false;
-+  if (TARGET_WINDOWED_ABI)
-+    return true;
-+  if (compute_frame_size (get_frame_size ()) == 0)
-+    return true;
-+  return cfun->machine->epilogue_done;
-+}
-+
- void
- xtensa_set_return_address (rtx address, rtx scratch)
- {
-diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
-index 82e9900..58eb1b2 100644
---- a/gcc/config/xtensa/xtensa.h
-+++ b/gcc/config/xtensa/xtensa.h
-@@ -23,8 +23,6 @@ along with GCC; see the file COPYING3.  If not see
- /* External variables defined in xtensa.c.  */
--extern unsigned xtensa_current_frame_size;
--
- /* Macros used in the machine description to select various Xtensa
-    configuration options.  */
- #ifndef XCHAL_HAVE_MUL32_HIGH
-@@ -477,14 +475,14 @@ enum reg_class
- /* Specify the initial difference between the specified pair of registers.  */
- #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)                  \
-   do {                                                                        \
--    compute_frame_size (get_frame_size ());                           \
-+    long frame_size = compute_frame_size (get_frame_size ());         \
-     switch (FROM)                                                     \
-       {                                                                       \
-       case FRAME_POINTER_REGNUM:                                      \
-         (OFFSET) = 0;                                                 \
-       break;                                                          \
-       case ARG_POINTER_REGNUM:                                                \
--        (OFFSET) = xtensa_current_frame_size;                         \
-+        (OFFSET) = frame_size;                                                \
-       break;                                                          \
-       default:                                                                \
-       gcc_unreachable ();                                             \
-diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
-index db54a12..fcdb6c8 100644
---- a/gcc/config/xtensa/xtensa.md
-+++ b/gcc/config/xtensa/xtensa.md
-@@ -1663,7 +1663,7 @@
- (define_insn "return"
-   [(return)
-    (use (reg:SI A0_REG))]
--  "(TARGET_WINDOWED_ABI || !xtensa_current_frame_size) && reload_completed"
-+  "xtensa_use_return_instruction_p ()"
- {
-   return TARGET_WINDOWED_ABI ?
-       (TARGET_DENSITY ? "retw.n" : "retw") :
--- 
-2.1.4
-
diff --git a/package/gcc/6.2.0/871-xtensa-Fix-PR-target-78603.patch b/package/gcc/6.2.0/871-xtensa-Fix-PR-target-78603.patch
deleted file mode 100644 (file)
index 0331814..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From 59cce7b304a8cbbb508ba21ab2f9052d3ee9a9e3 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 29 Nov 2016 13:09:17 -0800
-Subject: [PATCH 2/2] xtensa: Fix PR target/78603
-
-2016-11-29  Max Filippov  <jcmvbkbc@gmail.com>
-gcc/
-       * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
-       overhead loop start between a call and its CALL_ARG_LOCATION
-       note.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: r242979
-
- gcc/config/xtensa/xtensa.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
-index e49f784..70f698a 100644
---- a/gcc/config/xtensa/xtensa.c
-+++ b/gcc/config/xtensa/xtensa.c
-@@ -4158,7 +4158,10 @@ hwloop_optimize (hwloop_info loop)
-       entry_after = BB_END (entry_bb);
-       while (DEBUG_INSN_P (entry_after)
-              || (NOTE_P (entry_after)
--                 && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK))
-+                 && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK
-+               /* Make sure we don't split a call and its corresponding
-+                  CALL_ARG_LOCATION note.  */
-+                 && NOTE_KIND (entry_after) != NOTE_INSN_CALL_ARG_LOCATION))
-         entry_after = PREV_INSN (entry_after);
-       emit_insn_after (seq, entry_after);
--- 
-2.1.4
-
diff --git a/package/gcc/6.2.0/890-fix-m68k-compile.patch b/package/gcc/6.2.0/890-fix-m68k-compile.patch
deleted file mode 100644 (file)
index 6e63de0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-remove unused header, which breaks the toolchain building
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c gcc-5.3.0/libgcc/config/m68k/linux-atomic.c
---- gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c   2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libgcc/config/m68k/linux-atomic.c        2016-03-19 09:25:07.000000000 +0100
-@@ -33,7 +33,6 @@
-    using the kernel helper defined below.  There is no support for
-    64-bit operations yet.  */
--#include <asm/unistd.h>
- #include <stdbool.h>
- #ifndef __NR_atomic_cmpxchg_32
diff --git a/package/gcc/6.2.0/891-fix-m68k-uclinux.patch b/package/gcc/6.2.0/891-fix-m68k-uclinux.patch
deleted file mode 100644 (file)
index 754aa74..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-avoids internal compiler error while compiling linux-atomic.c
-See here:
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur gcc-6.1.0.orig/libgcc/config.host gcc-6.1.0/libgcc/config.host
---- gcc-6.1.0.orig/libgcc/config.host  2016-02-26 21:02:28.000000000 +0100
-+++ gcc-6.1.0/libgcc/config.host       2016-04-29 09:18:40.377989160 +0200
-@@ -812,7 +812,7 @@
- m68k*-*-openbsd*)
-       ;;
- m68k-*-uclinux*)      # Motorola m68k/ColdFire running uClinux with uClibc
--      tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
-+      tmake_file="$tmake_file m68k/t-floatlib"
-       md_unwind_header=m68k/linux-unwind.h
-       ;;
- m68k-*-linux*)                        # Motorola m68k's running GNU/Linux
diff --git a/package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch b/package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch
deleted file mode 100644 (file)
index 73ee6c5..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From ae9c3e354440c4a0f105a9eabfb2f77be085ebc1 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Thu, 18 Aug 2016 17:59:16 +0200
-Subject: [PATCH] libgcc/mkmap-symver: support skip_underscore
-
-Some platforms, such as Blackfin, have a special prefix for assembly
-symbols as opposed to C symbols. For this reason, a function named
-"foo()" in C will in fact be visible as a symbol called "_foo" in the
-ELF binary.
-
-The current linker version script logic in libgcc doesn't take into
-account this situation properly. The Blackfin specific
-libgcc/config/bfin/libgcc-glibc.ver has an additional "_" in front of
-every symbol so that it matches the output of "nm" (which gets parsed to
-produce the final linker version script). But due to this additional
-"_", ld no longer matches with the symbols since "ld" does the matching
-with the original symbol name, not the one prefixed with "_".
-
-Due to this, none of the symbols in libgcc/config/bfin/libgcc-glibc.ver
-are actually matched with symbols in libgcc. This causes all libgcc
-symbols to be left as "LOCAL", which causes lots of "undefined
-reference" whenever some C or C++ code that calls a function of libgcc
-is compiled.
-
-To address this, this commit introduces a "skip_underscore" variable to
-the mkmap-symver script. It tells mkmap-symver to ignore the leading
-underscore from the "nm" output.
-
-Note that this new argument is different from the existing
-"leading_underscore" argument, which *adds* an additional underscore to
-the generated linker version script.
-
-Having this functionality paves the way to using the generic linker
-version information for Blackfin, instead of using a custom one.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- libgcc/mkmap-symver.awk | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/libgcc/mkmap-symver.awk b/libgcc/mkmap-symver.awk
-index 266832a..30bb179 100644
---- a/libgcc/mkmap-symver.awk
-+++ b/libgcc/mkmap-symver.awk
-@@ -47,7 +47,11 @@ state == "nm" && ($1 == "U" || $2 == "U") {
- state == "nm" && NF == 3 {
-   split ($3, s, "@")
--  def[s[1]] = 1;
-+  if (skip_underscore)
-+      symname = substr(s[1], 2);
-+  else
-+      symname = s[1];
-+  def[symname] = 1;
-   sawsymbol = 1;
-   next;
- }
--- 
-2.7.4
-
diff --git a/package/gcc/6.2.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch b/package/gcc/6.2.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch
deleted file mode 100644 (file)
index 454295d..0000000
+++ /dev/null
@@ -1,1944 +0,0 @@
-From 56d606931716de30a89a40dc69a9282c1b4e2880 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Thu, 18 Aug 2016 18:04:06 +0200
-Subject: [PATCH] libgcc/config/bfin: use the generic linker version
- information
-
-This commit makes the Blackfin platform use the generic linker version
-information, rather than a completely duplicated file, specific for the
-Blackfin architecture.
-
-This is made possible using the newly introduced skip_underscore
-variable of the mkmap-symver script.
-
-This also allows to get a correct linker version file, with symbol names
-matching the ones found in libgcc. Thanks to this, the necessary symbols
-are marked "GLOBAL" instead of "LOCAL", which makes them visible at link
-time, and solves a large number of "undefined reference"
-issues. Indeed, the Blackfin specific linker version script had an extra
-underscore in front of all symbols, which meant none of them matched the
-symbols in libgcc, and therefore all libgcc symbols were marked as
-"LOCAL", making them invisible for linking.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- libgcc/config/bfin/libgcc-glibc.ver | 1894 +----------------------------------
- libgcc/config/bfin/t-linux          |    3 +-
- 2 files changed, 4 insertions(+), 1893 deletions(-)
-
-diff --git a/libgcc/config/bfin/libgcc-glibc.ver b/libgcc/config/bfin/libgcc-glibc.ver
-index b1bd2df..2af3df7 100644
---- a/libgcc/config/bfin/libgcc-glibc.ver
-+++ b/libgcc/config/bfin/libgcc-glibc.ver
-@@ -16,1898 +16,8 @@
- # along with GCC; see the file COPYING3.  If not see
- # <http://www.gnu.org/licenses/>.
--GCC_3.0 {
--  # libgcc1 integer symbols
--  ___absvsi2
--  ___addvsi3
--  ___ashlsi3
--  ___ashrsi3
--  ___divsi3
--  ___lshrsi3
--  ___modsi3
--  ___mulsi3
--  ___mulvsi3
--  ___negvsi2
--  ___subvsi3
--  ___udivsi3
--  ___umodsi3
--
--  # libgcc1 floating point symbols
--  ___addsf3
--  ___adddf3
--  ___addxf3
--  ___addtf3
--  ___divsf3
--  ___divdf3
--  ___divxf3
--  ___divtf3
--  ___eqsf2
--  ___eqdf2
--  ___eqxf2
--  ___eqtf2
--  ___extenddfxf2
--  ___extenddftf2
--  ___extendsfdf2
--  ___extendsfxf2
--  ___extendsftf2
--  ___fixsfsi
--  ___fixdfsi
--  ___fixxfsi
--  ___fixtfsi
--  ___floatsisf
--  ___floatsidf
--  ___floatsixf
--  ___floatsitf
--  ___gesf2
--  ___gedf2
--  ___gexf2
--  ___getf2
--  ___gtsf2
--  ___gtdf2
--  ___gtxf2
--  ___gttf2
--  ___lesf2
--  ___ledf2
--  ___lexf2
--  ___letf2
--  ___ltsf2
--  ___ltdf2
--  ___ltxf2
--  ___lttf2
--  ___mulsf3
--  ___muldf3
--  ___mulxf3
--  ___multf3
--  ___negsf2
--  ___negdf2
--  ___negxf2
--  ___negtf2
--  ___nesf2
--  ___nedf2
--  ___nexf2
--  ___netf2
--  ___subsf3
--  ___subdf3
--  ___subxf3
--  ___subtf3
--  ___truncdfsf2
--  ___truncxfsf2
--  ___trunctfsf2
--  ___truncxfdf2
--  ___trunctfdf2
--
--  # libgcc2 DImode arithmetic (for 32-bit targets).
--  ___absvdi2
--  ___addvdi3
--  ___ashldi3
--  ___ashrdi3
--  ___cmpdi2
--  ___divdi3
--  ___ffsdi2
--  ___fixdfdi
--  ___fixsfdi
--  ___fixtfdi
--  ___fixxfdi
--  ___fixunsdfdi
--  ___fixunsdfsi
--  ___fixunssfsi
--  ___fixunssfdi
--  ___fixunstfdi
--  ___fixunstfsi
--  ___fixunsxfdi
--  ___fixunsxfsi
--  ___floatdidf
--  ___floatdisf
--  ___floatdixf
--  ___floatditf
--  ___lshrdi3
--  ___moddi3
--  ___muldi3
--  ___mulvdi3
--  ___negdi2
--  ___negvdi2
--  ___subvdi3
--  ___ucmpdi2
--  ___udivdi3
--  ___udivmoddi4
--  ___umoddi3
--
--  # libgcc2 TImode arithmetic (for 64-bit targets).
--  ___ashlti3
--  ___ashrti3
--  ___cmpti2
--  ___divti3
--  ___ffsti2
--  ___fixdfti
--  ___fixsfti
--  ___fixtfti
--  ___fixxfti
--  ___lshrti3
--  ___modti3
--  ___multi3
--  ___negti2
--  ___ucmpti2
--  ___udivmodti4
--  ___udivti3
--  ___umodti3
--  ___fixunsdfti
--  ___fixunssfti
--  ___fixunstfti
--  ___fixunsxfti
--  ___floattidf
--  ___floattisf
--  ___floattixf
--  ___floattitf
--
--  # Used to deal with trampoline initialization on some platforms
--  ___clear_cache
--
--  # EH symbols
--  __Unwind_DeleteException
--  __Unwind_Find_FDE
--  __Unwind_ForcedUnwind
--  __Unwind_GetGR
--  __Unwind_GetIP
--  __Unwind_GetLanguageSpecificData
--  __Unwind_GetRegionStart
--  __Unwind_GetTextRelBase
--  __Unwind_GetDataRelBase
--  __Unwind_RaiseException
--  __Unwind_Resume
--  __Unwind_SetGR
--  __Unwind_SetIP
--  ___deregister_frame
--  ___deregister_frame_info
--  ___deregister_frame_info_bases
--  ___register_frame
--  ___register_frame_info
--  ___register_frame_info_bases
--  ___register_frame_info_table
--  ___register_frame_info_table_bases
--  ___register_frame_table
--
--  # SjLj EH symbols
--  __Unwind_SjLj_Register
--  __Unwind_SjLj_Unregister
--  __Unwind_SjLj_RaiseException
--  __Unwind_SjLj_ForcedUnwind
--  __Unwind_SjLj_Resume
--}
--
--%inherit GCC_3.3 GCC_3.0
--GCC_3.3 {
--  __Unwind_FindEnclosingFunction
--  __Unwind_GetCFA
--  __Unwind_Backtrace
--  __Unwind_Resume_or_Rethrow
--  __Unwind_SjLj_Resume_or_Rethrow
--}
--
--%inherit GCC_3.3.1 GCC_3.3
--GCC_3.3.1 {
--  ___gcc_personality_sj0
--  ___gcc_personality_v0
--}
--
--%inherit GCC_3.3.2 GCC_3.3.1
--GCC_3.3.2 {
--}
--%inherit GCC_3.3.4 GCC_3.3.2
--GCC_3.3.4 {
--  ___unorddf2
--  ___unordsf2
--}
--
--%inherit GCC_3.4 GCC_3.3.4
--GCC_3.4 {
--  # bit scanning and counting built-ins
--  ___clzsi2
--  ___clzdi2
--  ___clzti2
--  ___ctzsi2
--  ___ctzdi2
--  ___ctzti2
--  ___popcountsi2
--  ___popcountdi2
--  ___popcountti2
--  ___paritysi2
--  ___paritydi2
--  ___parityti2
--}
--
--%inherit GCC_3.4.2 GCC_3.4
--GCC_3.4.2 {
--  # Used to deal with trampoline initialization on some platforms
--  ___enable_execute_stack
--  ___trampoline_setup
--}
--
--%inherit GCC_3.4.4 GCC_3.4.2
--GCC_3.4.4 {
--  # libgcc2 TImode arithmetic (for 64-bit targets).
--  ___absvti2
--  ___addvti3
--  ___mulvti3
--  ___negvti2
--  ___subvti3
--}
--
--%inherit GCC_4.0.0 GCC_3.4.4
--GCC_4.0.0 {
--  # libgcc2 __builtin_powi helpers.
--  ___powisf2
--  ___powidf2
--  ___powixf2
--  ___powitf2
--
--  # c99 compliant complex arithmetic
--  ___divsc3
--  ___divdc3
--  ___divxc3
--  ___divtc3
--  ___mulsc3
--  ___muldc3
--  ___mulxc3
--  ___multc3
--}
--
- %inherit GCC_4.1.0 GCC_4.0.0
- GCC_4.1.0 {
--  ___smulsi3_highpart
--  ___umulsi3_highpart
--}
--
--%inherit GCC_4.2.0 GCC_4.1.0
--GCC_4.2.0 {
--  # unsigned-to-floating conversions
--  ___floatunsisf
--  ___floatunsidf
--  ___floatunsixf
--  ___floatunsitf
--  ___floatundidf
--  ___floatundisf
--  ___floatundixf
--  ___floatunditf
--  ___floatuntidf
--  ___floatuntisf
--  ___floatuntixf
--  ___floatuntitf
--  __Unwind_GetIPInfo
--}
--
--%inherit GCC_4.3.0 GCC_4.2.0
--GCC_4.3.0 {
--  # byte swapping routines
--  ___bswapsi2
--  ___bswapdi2
--  ___emutls_get_address
--  ___emutls_register_common
--  ___ffssi2
--  ___extendxftf2
--  ___trunctfxf2
--
--  # fixed-point routines
--  ___addqq3
--  ___addhq3
--  ___addsq3
--  ___adddq3
--  ___addtq3
--  ___adduqq3
--  ___adduhq3
--  ___addusq3
--  ___addudq3
--  ___addutq3
--  ___addha3
--  ___addsa3
--  ___addda3
--  ___addta3
--  ___adduha3
--  ___addusa3
--  ___adduda3
--  ___adduta3
--  ___ssaddqq3
--  ___ssaddhq3
--  ___ssaddsq3
--  ___ssadddq3
--  ___ssaddtq3
--  ___ssaddha3
--  ___ssaddsa3
--  ___ssaddda3
--  ___ssaddta3
--  ___usadduqq3
--  ___usadduhq3
--  ___usaddusq3
--  ___usaddudq3
--  ___usaddutq3
--  ___usadduha3
--  ___usaddusa3
--  ___usadduda3
--  ___usadduta3
--  ___subqq3
--  ___subhq3
--  ___subsq3
--  ___subdq3
--  ___subtq3
--  ___subuqq3
--  ___subuhq3
--  ___subusq3
--  ___subudq3
--  ___subutq3
--  ___subha3
--  ___subsa3
--  ___subda3
--  ___subta3
--  ___subuha3
--  ___subusa3
--  ___subuda3
--  ___subuta3
--  ___sssubqq3
--  ___sssubhq3
--  ___sssubsq3
--  ___sssubdq3
--  ___sssubtq3
--  ___sssubha3
--  ___sssubsa3
--  ___sssubda3
--  ___sssubta3
--  ___ussubuqq3
--  ___ussubuhq3
--  ___ussubusq3
--  ___ussubudq3
--  ___ussubutq3
--  ___ussubuha3
--  ___ussubusa3
--  ___ussubuda3
--  ___ussubuta3
--  ___mulqq3
--  ___mulhq3
--  ___mulsq3
--  ___muldq3
--  ___multq3
--  ___muluqq3
--  ___muluhq3
--  ___mulusq3
--  ___muludq3
--  ___mulutq3
--  ___mulha3
--  ___mulsa3
--  ___mulda3
--  ___multa3
--  ___muluha3
--  ___mulusa3
--  ___muluda3
--  ___muluta3
--  ___ssmulqq3
--  ___ssmulhq3
--  ___ssmulsq3
--  ___ssmuldq3
--  ___ssmultq3
--  ___ssmulha3
--  ___ssmulsa3
--  ___ssmulda3
--  ___ssmulta3
--  ___usmuluqq3
--  ___usmuluhq3
--  ___usmulusq3
--  ___usmuludq3
--  ___usmulutq3
--  ___usmuluha3
--  ___usmulusa3
--  ___usmuluda3
--  ___usmuluta3
--  ___divqq3
--  ___divhq3
--  ___divsq3
--  ___divdq3
--  ___divtq3
--  ___divha3
--  ___divsa3
--  ___divda3
--  ___divta3
--  ___udivuqq3
--  ___udivuhq3
--  ___udivusq3
--  ___udivudq3
--  ___udivutq3
--  ___udivuha3
--  ___udivusa3
--  ___udivuda3
--  ___udivuta3
--  ___ssdivqq3
--  ___ssdivhq3
--  ___ssdivsq3
--  ___ssdivdq3
--  ___ssdivtq3
--  ___ssdivha3
--  ___ssdivsa3
--  ___ssdivda3
--  ___ssdivta3
--  ___usdivuqq3
--  ___usdivuhq3
--  ___usdivusq3
--  ___usdivudq3
--  ___usdivutq3
--  ___usdivuha3
--  ___usdivusa3
--  ___usdivuda3
--  ___usdivuta3
--  ___negqq2
--  ___neghq2
--  ___negsq2
--  ___negdq2
--  ___negtq2
--  ___neguqq2
--  ___neguhq2
--  ___negusq2
--  ___negudq2
--  ___negutq2
--  ___negha2
--  ___negsa2
--  ___negda2
--  ___negta2
--  ___neguha2
--  ___negusa2
--  ___neguda2
--  ___neguta2
--  ___ssnegqq2
--  ___ssneghq2
--  ___ssnegsq2
--  ___ssnegdq2
--  ___ssnegtq2
--  ___ssnegha2
--  ___ssnegsa2
--  ___ssnegda2
--  ___ssnegta2
--  ___usneguqq2
--  ___usneguhq2
--  ___usnegusq2
--  ___usnegudq2
--  ___usnegutq2
--  ___usneguha2
--  ___usnegusa2
--  ___usneguda2
--  ___usneguta2
--  ___ashlqq3
--  ___ashlhq3
--  ___ashlsq3
--  ___ashldq3
--  ___ashltq3
--  ___ashluqq3
--  ___ashluhq3
--  ___ashlusq3
--  ___ashludq3
--  ___ashlutq3
--  ___ashlha3
--  ___ashlsa3
--  ___ashlda3
--  ___ashlta3
--  ___ashluha3
--  ___ashlusa3
--  ___ashluda3
--  ___ashluta3
--  ___ashrqq3
--  ___ashrhq3
--  ___ashrsq3
--  ___ashrdq3
--  ___ashrtq3
--  ___ashrha3
--  ___ashrsa3
--  ___ashrda3
--  ___ashrta3
--  ___lshruqq3
--  ___lshruhq3
--  ___lshrusq3
--  ___lshrudq3
--  ___lshrutq3
--  ___lshruha3
--  ___lshrusa3
--  ___lshruda3
--  ___lshruta3
--  ___ssashlqq3
--  ___ssashlhq3
--  ___ssashlsq3
--  ___ssashldq3
--  ___ssashltq3
--  ___ssashlha3
--  ___ssashlsa3
--  ___ssashlda3
--  ___ssashlta3
--  ___usashluqq3
--  ___usashluhq3
--  ___usashlusq3
--  ___usashludq3
--  ___usashlutq3
--  ___usashluha3
--  ___usashlusa3
--  ___usashluda3
--  ___usashluta3
--  ___cmpqq2
--  ___cmphq2
--  ___cmpsq2
--  ___cmpdq2
--  ___cmptq2
--  ___cmpuqq2
--  ___cmpuhq2
--  ___cmpusq2
--  ___cmpudq2
--  ___cmputq2
--  ___cmpha2
--  ___cmpsa2
--  ___cmpda2
--  ___cmpta2
--  ___cmpuha2
--  ___cmpusa2
--  ___cmpuda2
--  ___cmputa2
--  ___fractqqhq2
--  ___fractqqsq2
--  ___fractqqdq2
--  ___fractqqtq2
--  ___fractqqha
--  ___fractqqsa
--  ___fractqqda
--  ___fractqqta
--  ___fractqquqq
--  ___fractqquhq
--  ___fractqqusq
--  ___fractqqudq
--  ___fractqqutq
--  ___fractqquha
--  ___fractqqusa
--  ___fractqquda
--  ___fractqquta
--  ___fractqqqi
--  ___fractqqhi
--  ___fractqqsi
--  ___fractqqdi
--  ___fractqqti
--  ___fractqqsf
--  ___fractqqdf
--  ___fracthqqq2
--  ___fracthqsq2
--  ___fracthqdq2
--  ___fracthqtq2
--  ___fracthqha
--  ___fracthqsa
--  ___fracthqda
--  ___fracthqta
--  ___fracthquqq
--  ___fracthquhq
--  ___fracthqusq
--  ___fracthqudq
--  ___fracthqutq
--  ___fracthquha
--  ___fracthqusa
--  ___fracthquda
--  ___fracthquta
--  ___fracthqqi
--  ___fracthqhi
--  ___fracthqsi
--  ___fracthqdi
--  ___fracthqti
--  ___fracthqsf
--  ___fracthqdf
--  ___fractsqqq2
--  ___fractsqhq2
--  ___fractsqdq2
--  ___fractsqtq2
--  ___fractsqha
--  ___fractsqsa
--  ___fractsqda
--  ___fractsqta
--  ___fractsquqq
--  ___fractsquhq
--  ___fractsqusq
--  ___fractsqudq
--  ___fractsqutq
--  ___fractsquha
--  ___fractsqusa
--  ___fractsquda
--  ___fractsquta
--  ___fractsqqi
--  ___fractsqhi
--  ___fractsqsi
--  ___fractsqdi
--  ___fractsqti
--  ___fractsqsf
--  ___fractsqdf
--  ___fractdqqq2
--  ___fractdqhq2
--  ___fractdqsq2
--  ___fractdqtq2
--  ___fractdqha
--  ___fractdqsa
--  ___fractdqda
--  ___fractdqta
--  ___fractdquqq
--  ___fractdquhq
--  ___fractdqusq
--  ___fractdqudq
--  ___fractdqutq
--  ___fractdquha
--  ___fractdqusa
--  ___fractdquda
--  ___fractdquta
--  ___fractdqqi
--  ___fractdqhi
--  ___fractdqsi
--  ___fractdqdi
--  ___fractdqti
--  ___fractdqsf
--  ___fractdqdf
--  ___fracttqqq2
--  ___fracttqhq2
--  ___fracttqsq2
--  ___fracttqdq2
--  ___fracttqha
--  ___fracttqsa
--  ___fracttqda
--  ___fracttqta
--  ___fracttquqq
--  ___fracttquhq
--  ___fracttqusq
--  ___fracttqudq
--  ___fracttqutq
--  ___fracttquha
--  ___fracttqusa
--  ___fracttquda
--  ___fracttquta
--  ___fracttqqi
--  ___fracttqhi
--  ___fracttqsi
--  ___fracttqdi
--  ___fracttqti
--  ___fracttqsf
--  ___fracttqdf
--  ___fracthaqq
--  ___fracthahq
--  ___fracthasq
--  ___fracthadq
--  ___fracthatq
--  ___fracthasa2
--  ___fracthada2
--  ___fracthata2
--  ___fracthauqq
--  ___fracthauhq
--  ___fracthausq
--  ___fracthaudq
--  ___fracthautq
--  ___fracthauha
--  ___fracthausa
--  ___fracthauda
--  ___fracthauta
--  ___fracthaqi
--  ___fracthahi
--  ___fracthasi
--  ___fracthadi
--  ___fracthati
--  ___fracthasf
--  ___fracthadf
--  ___fractsaqq
--  ___fractsahq
--  ___fractsasq
--  ___fractsadq
--  ___fractsatq
--  ___fractsaha2
--  ___fractsada2
--  ___fractsata2
--  ___fractsauqq
--  ___fractsauhq
--  ___fractsausq
--  ___fractsaudq
--  ___fractsautq
--  ___fractsauha
--  ___fractsausa
--  ___fractsauda
--  ___fractsauta
--  ___fractsaqi
--  ___fractsahi
--  ___fractsasi
--  ___fractsadi
--  ___fractsati
--  ___fractsasf
--  ___fractsadf
--  ___fractdaqq
--  ___fractdahq
--  ___fractdasq
--  ___fractdadq
--  ___fractdatq
--  ___fractdaha2
--  ___fractdasa2
--  ___fractdata2
--  ___fractdauqq
--  ___fractdauhq
--  ___fractdausq
--  ___fractdaudq
--  ___fractdautq
--  ___fractdauha
--  ___fractdausa
--  ___fractdauda
--  ___fractdauta
--  ___fractdaqi
--  ___fractdahi
--  ___fractdasi
--  ___fractdadi
--  ___fractdati
--  ___fractdasf
--  ___fractdadf
--  ___fracttaqq
--  ___fracttahq
--  ___fracttasq
--  ___fracttadq
--  ___fracttatq
--  ___fracttaha2
--  ___fracttasa2
--  ___fracttada2
--  ___fracttauqq
--  ___fracttauhq
--  ___fracttausq
--  ___fracttaudq
--  ___fracttautq
--  ___fracttauha
--  ___fracttausa
--  ___fracttauda
--  ___fracttauta
--  ___fracttaqi
--  ___fracttahi
--  ___fracttasi
--  ___fracttadi
--  ___fracttati
--  ___fracttasf
--  ___fracttadf
--  ___fractuqqqq
--  ___fractuqqhq
--  ___fractuqqsq
--  ___fractuqqdq
--  ___fractuqqtq
--  ___fractuqqha
--  ___fractuqqsa
--  ___fractuqqda
--  ___fractuqqta
--  ___fractuqquhq2
--  ___fractuqqusq2
--  ___fractuqqudq2
--  ___fractuqqutq2
--  ___fractuqquha
--  ___fractuqqusa
--  ___fractuqquda
--  ___fractuqquta
--  ___fractuqqqi
--  ___fractuqqhi
--  ___fractuqqsi
--  ___fractuqqdi
--  ___fractuqqti
--  ___fractuqqsf
--  ___fractuqqdf
--  ___fractuhqqq
--  ___fractuhqhq
--  ___fractuhqsq
--  ___fractuhqdq
--  ___fractuhqtq
--  ___fractuhqha
--  ___fractuhqsa
--  ___fractuhqda
--  ___fractuhqta
--  ___fractuhquqq2
--  ___fractuhqusq2
--  ___fractuhqudq2
--  ___fractuhqutq2
--  ___fractuhquha
--  ___fractuhqusa
--  ___fractuhquda
--  ___fractuhquta
--  ___fractuhqqi
--  ___fractuhqhi
--  ___fractuhqsi
--  ___fractuhqdi
--  ___fractuhqti
--  ___fractuhqsf
--  ___fractuhqdf
--  ___fractusqqq
--  ___fractusqhq
--  ___fractusqsq
--  ___fractusqdq
--  ___fractusqtq
--  ___fractusqha
--  ___fractusqsa
--  ___fractusqda
--  ___fractusqta
--  ___fractusquqq2
--  ___fractusquhq2
--  ___fractusqudq2
--  ___fractusqutq2
--  ___fractusquha
--  ___fractusqusa
--  ___fractusquda
--  ___fractusquta
--  ___fractusqqi
--  ___fractusqhi
--  ___fractusqsi
--  ___fractusqdi
--  ___fractusqti
--  ___fractusqsf
--  ___fractusqdf
--  ___fractudqqq
--  ___fractudqhq
--  ___fractudqsq
--  ___fractudqdq
--  ___fractudqtq
--  ___fractudqha
--  ___fractudqsa
--  ___fractudqda
--  ___fractudqta
--  ___fractudquqq2
--  ___fractudquhq2
--  ___fractudqusq2
--  ___fractudqutq2
--  ___fractudquha
--  ___fractudqusa
--  ___fractudquda
--  ___fractudquta
--  ___fractudqqi
--  ___fractudqhi
--  ___fractudqsi
--  ___fractudqdi
--  ___fractudqti
--  ___fractudqsf
--  ___fractudqdf
--  ___fractutqqq
--  ___fractutqhq
--  ___fractutqsq
--  ___fractutqdq
--  ___fractutqtq
--  ___fractutqha
--  ___fractutqsa
--  ___fractutqda
--  ___fractutqta
--  ___fractutquqq2
--  ___fractutquhq2
--  ___fractutqusq2
--  ___fractutqudq2
--  ___fractutquha
--  ___fractutqusa
--  ___fractutquda
--  ___fractutquta
--  ___fractutqqi
--  ___fractutqhi
--  ___fractutqsi
--  ___fractutqdi
--  ___fractutqti
--  ___fractutqsf
--  ___fractutqdf
--  ___fractuhaqq
--  ___fractuhahq
--  ___fractuhasq
--  ___fractuhadq
--  ___fractuhatq
--  ___fractuhaha
--  ___fractuhasa
--  ___fractuhada
--  ___fractuhata
--  ___fractuhauqq
--  ___fractuhauhq
--  ___fractuhausq
--  ___fractuhaudq
--  ___fractuhautq
--  ___fractuhausa2
--  ___fractuhauda2
--  ___fractuhauta2
--  ___fractuhaqi
--  ___fractuhahi
--  ___fractuhasi
--  ___fractuhadi
--  ___fractuhati
--  ___fractuhasf
--  ___fractuhadf
--  ___fractusaqq
--  ___fractusahq
--  ___fractusasq
--  ___fractusadq
--  ___fractusatq
--  ___fractusaha
--  ___fractusasa
--  ___fractusada
--  ___fractusata
--  ___fractusauqq
--  ___fractusauhq
--  ___fractusausq
--  ___fractusaudq
--  ___fractusautq
--  ___fractusauha2
--  ___fractusauda2
--  ___fractusauta2
--  ___fractusaqi
--  ___fractusahi
--  ___fractusasi
--  ___fractusadi
--  ___fractusati
--  ___fractusasf
--  ___fractusadf
--  ___fractudaqq
--  ___fractudahq
--  ___fractudasq
--  ___fractudadq
--  ___fractudatq
--  ___fractudaha
--  ___fractudasa
--  ___fractudada
--  ___fractudata
--  ___fractudauqq
--  ___fractudauhq
--  ___fractudausq
--  ___fractudaudq
--  ___fractudautq
--  ___fractudauha2
--  ___fractudausa2
--  ___fractudauta2
--  ___fractudaqi
--  ___fractudahi
--  ___fractudasi
--  ___fractudadi
--  ___fractudati
--  ___fractudasf
--  ___fractudadf
--  ___fractutaqq
--  ___fractutahq
--  ___fractutasq
--  ___fractutadq
--  ___fractutatq
--  ___fractutaha
--  ___fractutasa
--  ___fractutada
--  ___fractutata
--  ___fractutauqq
--  ___fractutauhq
--  ___fractutausq
--  ___fractutaudq
--  ___fractutautq
--  ___fractutauha2
--  ___fractutausa2
--  ___fractutauda2
--  ___fractutaqi
--  ___fractutahi
--  ___fractutasi
--  ___fractutadi
--  ___fractutati
--  ___fractutasf
--  ___fractutadf
--  ___fractqiqq
--  ___fractqihq
--  ___fractqisq
--  ___fractqidq
--  ___fractqitq
--  ___fractqiha
--  ___fractqisa
--  ___fractqida
--  ___fractqita
--  ___fractqiuqq
--  ___fractqiuhq
--  ___fractqiusq
--  ___fractqiudq
--  ___fractqiutq
--  ___fractqiuha
--  ___fractqiusa
--  ___fractqiuda
--  ___fractqiuta
--  ___fracthiqq
--  ___fracthihq
--  ___fracthisq
--  ___fracthidq
--  ___fracthitq
--  ___fracthiha
--  ___fracthisa
--  ___fracthida
--  ___fracthita
--  ___fracthiuqq
--  ___fracthiuhq
--  ___fracthiusq
--  ___fracthiudq
--  ___fracthiutq
--  ___fracthiuha
--  ___fracthiusa
--  ___fracthiuda
--  ___fracthiuta
--  ___fractsiqq
--  ___fractsihq
--  ___fractsisq
--  ___fractsidq
--  ___fractsitq
--  ___fractsiha
--  ___fractsisa
--  ___fractsida
--  ___fractsita
--  ___fractsiuqq
--  ___fractsiuhq
--  ___fractsiusq
--  ___fractsiudq
--  ___fractsiutq
--  ___fractsiuha
--  ___fractsiusa
--  ___fractsiuda
--  ___fractsiuta
--  ___fractdiqq
--  ___fractdihq
--  ___fractdisq
--  ___fractdidq
--  ___fractditq
--  ___fractdiha
--  ___fractdisa
--  ___fractdida
--  ___fractdita
--  ___fractdiuqq
--  ___fractdiuhq
--  ___fractdiusq
--  ___fractdiudq
--  ___fractdiutq
--  ___fractdiuha
--  ___fractdiusa
--  ___fractdiuda
--  ___fractdiuta
--  ___fracttiqq
--  ___fracttihq
--  ___fracttisq
--  ___fracttidq
--  ___fracttitq
--  ___fracttiha
--  ___fracttisa
--  ___fracttida
--  ___fracttita
--  ___fracttiuqq
--  ___fracttiuhq
--  ___fracttiusq
--  ___fracttiudq
--  ___fracttiutq
--  ___fracttiuha
--  ___fracttiusa
--  ___fracttiuda
--  ___fracttiuta
--  ___fractsfqq
--  ___fractsfhq
--  ___fractsfsq
--  ___fractsfdq
--  ___fractsftq
--  ___fractsfha
--  ___fractsfsa
--  ___fractsfda
--  ___fractsfta
--  ___fractsfuqq
--  ___fractsfuhq
--  ___fractsfusq
--  ___fractsfudq
--  ___fractsfutq
--  ___fractsfuha
--  ___fractsfusa
--  ___fractsfuda
--  ___fractsfuta
--  ___fractdfqq
--  ___fractdfhq
--  ___fractdfsq
--  ___fractdfdq
--  ___fractdftq
--  ___fractdfha
--  ___fractdfsa
--  ___fractdfda
--  ___fractdfta
--  ___fractdfuqq
--  ___fractdfuhq
--  ___fractdfusq
--  ___fractdfudq
--  ___fractdfutq
--  ___fractdfuha
--  ___fractdfusa
--  ___fractdfuda
--  ___fractdfuta
--  ___satfractqqhq2
--  ___satfractqqsq2
--  ___satfractqqdq2
--  ___satfractqqtq2
--  ___satfractqqha
--  ___satfractqqsa
--  ___satfractqqda
--  ___satfractqqta
--  ___satfractqquqq
--  ___satfractqquhq
--  ___satfractqqusq
--  ___satfractqqudq
--  ___satfractqqutq
--  ___satfractqquha
--  ___satfractqqusa
--  ___satfractqquda
--  ___satfractqquta
--  ___satfracthqqq2
--  ___satfracthqsq2
--  ___satfracthqdq2
--  ___satfracthqtq2
--  ___satfracthqha
--  ___satfracthqsa
--  ___satfracthqda
--  ___satfracthqta
--  ___satfracthquqq
--  ___satfracthquhq
--  ___satfracthqusq
--  ___satfracthqudq
--  ___satfracthqutq
--  ___satfracthquha
--  ___satfracthqusa
--  ___satfracthquda
--  ___satfracthquta
--  ___satfractsqqq2
--  ___satfractsqhq2
--  ___satfractsqdq2
--  ___satfractsqtq2
--  ___satfractsqha
--  ___satfractsqsa
--  ___satfractsqda
--  ___satfractsqta
--  ___satfractsquqq
--  ___satfractsquhq
--  ___satfractsqusq
--  ___satfractsqudq
--  ___satfractsqutq
--  ___satfractsquha
--  ___satfractsqusa
--  ___satfractsquda
--  ___satfractsquta
--  ___satfractdqqq2
--  ___satfractdqhq2
--  ___satfractdqsq2
--  ___satfractdqtq2
--  ___satfractdqha
--  ___satfractdqsa
--  ___satfractdqda
--  ___satfractdqta
--  ___satfractdquqq
--  ___satfractdquhq
--  ___satfractdqusq
--  ___satfractdqudq
--  ___satfractdqutq
--  ___satfractdquha
--  ___satfractdqusa
--  ___satfractdquda
--  ___satfractdquta
--  ___satfracttqqq2
--  ___satfracttqhq2
--  ___satfracttqsq2
--  ___satfracttqdq2
--  ___satfracttqha
--  ___satfracttqsa
--  ___satfracttqda
--  ___satfracttqta
--  ___satfracttquqq
--  ___satfracttquhq
--  ___satfracttqusq
--  ___satfracttqudq
--  ___satfracttqutq
--  ___satfracttquha
--  ___satfracttqusa
--  ___satfracttquda
--  ___satfracttquta
--  ___satfracthaqq
--  ___satfracthahq
--  ___satfracthasq
--  ___satfracthadq
--  ___satfracthatq
--  ___satfracthasa2
--  ___satfracthada2
--  ___satfracthata2
--  ___satfracthauqq
--  ___satfracthauhq
--  ___satfracthausq
--  ___satfracthaudq
--  ___satfracthautq
--  ___satfracthauha
--  ___satfracthausa
--  ___satfracthauda
--  ___satfracthauta
--  ___satfractsaqq
--  ___satfractsahq
--  ___satfractsasq
--  ___satfractsadq
--  ___satfractsatq
--  ___satfractsaha2
--  ___satfractsada2
--  ___satfractsata2
--  ___satfractsauqq
--  ___satfractsauhq
--  ___satfractsausq
--  ___satfractsaudq
--  ___satfractsautq
--  ___satfractsauha
--  ___satfractsausa
--  ___satfractsauda
--  ___satfractsauta
--  ___satfractdaqq
--  ___satfractdahq
--  ___satfractdasq
--  ___satfractdadq
--  ___satfractdatq
--  ___satfractdaha2
--  ___satfractdasa2
--  ___satfractdata2
--  ___satfractdauqq
--  ___satfractdauhq
--  ___satfractdausq
--  ___satfractdaudq
--  ___satfractdautq
--  ___satfractdauha
--  ___satfractdausa
--  ___satfractdauda
--  ___satfractdauta
--  ___satfracttaqq
--  ___satfracttahq
--  ___satfracttasq
--  ___satfracttadq
--  ___satfracttatq
--  ___satfracttaha2
--  ___satfracttasa2
--  ___satfracttada2
--  ___satfracttauqq
--  ___satfracttauhq
--  ___satfracttausq
--  ___satfracttaudq
--  ___satfracttautq
--  ___satfracttauha
--  ___satfracttausa
--  ___satfracttauda
--  ___satfracttauta
--  ___satfractuqqqq
--  ___satfractuqqhq
--  ___satfractuqqsq
--  ___satfractuqqdq
--  ___satfractuqqtq
--  ___satfractuqqha
--  ___satfractuqqsa
--  ___satfractuqqda
--  ___satfractuqqta
--  ___satfractuqquhq2
--  ___satfractuqqusq2
--  ___satfractuqqudq2
--  ___satfractuqqutq2
--  ___satfractuqquha
--  ___satfractuqqusa
--  ___satfractuqquda
--  ___satfractuqquta
--  ___satfractuhqqq
--  ___satfractuhqhq
--  ___satfractuhqsq
--  ___satfractuhqdq
--  ___satfractuhqtq
--  ___satfractuhqha
--  ___satfractuhqsa
--  ___satfractuhqda
--  ___satfractuhqta
--  ___satfractuhquqq2
--  ___satfractuhqusq2
--  ___satfractuhqudq2
--  ___satfractuhqutq2
--  ___satfractuhquha
--  ___satfractuhqusa
--  ___satfractuhquda
--  ___satfractuhquta
--  ___satfractusqqq
--  ___satfractusqhq
--  ___satfractusqsq
--  ___satfractusqdq
--  ___satfractusqtq
--  ___satfractusqha
--  ___satfractusqsa
--  ___satfractusqda
--  ___satfractusqta
--  ___satfractusquqq2
--  ___satfractusquhq2
--  ___satfractusqudq2
--  ___satfractusqutq2
--  ___satfractusquha
--  ___satfractusqusa
--  ___satfractusquda
--  ___satfractusquta
--  ___satfractudqqq
--  ___satfractudqhq
--  ___satfractudqsq
--  ___satfractudqdq
--  ___satfractudqtq
--  ___satfractudqha
--  ___satfractudqsa
--  ___satfractudqda
--  ___satfractudqta
--  ___satfractudquqq2
--  ___satfractudquhq2
--  ___satfractudqusq2
--  ___satfractudqutq2
--  ___satfractudquha
--  ___satfractudqusa
--  ___satfractudquda
--  ___satfractudquta
--  ___satfractutqqq
--  ___satfractutqhq
--  ___satfractutqsq
--  ___satfractutqdq
--  ___satfractutqtq
--  ___satfractutqha
--  ___satfractutqsa
--  ___satfractutqda
--  ___satfractutqta
--  ___satfractutquqq2
--  ___satfractutquhq2
--  ___satfractutqusq2
--  ___satfractutqudq2
--  ___satfractutquha
--  ___satfractutqusa
--  ___satfractutquda
--  ___satfractutquta
--  ___satfractuhaqq
--  ___satfractuhahq
--  ___satfractuhasq
--  ___satfractuhadq
--  ___satfractuhatq
--  ___satfractuhaha
--  ___satfractuhasa
--  ___satfractuhada
--  ___satfractuhata
--  ___satfractuhauqq
--  ___satfractuhauhq
--  ___satfractuhausq
--  ___satfractuhaudq
--  ___satfractuhautq
--  ___satfractuhausa2
--  ___satfractuhauda2
--  ___satfractuhauta2
--  ___satfractusaqq
--  ___satfractusahq
--  ___satfractusasq
--  ___satfractusadq
--  ___satfractusatq
--  ___satfractusaha
--  ___satfractusasa
--  ___satfractusada
--  ___satfractusata
--  ___satfractusauqq
--  ___satfractusauhq
--  ___satfractusausq
--  ___satfractusaudq
--  ___satfractusautq
--  ___satfractusauha2
--  ___satfractusauda2
--  ___satfractusauta2
--  ___satfractudaqq
--  ___satfractudahq
--  ___satfractudasq
--  ___satfractudadq
--  ___satfractudatq
--  ___satfractudaha
--  ___satfractudasa
--  ___satfractudada
--  ___satfractudata
--  ___satfractudauqq
--  ___satfractudauhq
--  ___satfractudausq
--  ___satfractudaudq
--  ___satfractudautq
--  ___satfractudauha2
--  ___satfractudausa2
--  ___satfractudauta2
--  ___satfractutaqq
--  ___satfractutahq
--  ___satfractutasq
--  ___satfractutadq
--  ___satfractutatq
--  ___satfractutaha
--  ___satfractutasa
--  ___satfractutada
--  ___satfractutata
--  ___satfractutauqq
--  ___satfractutauhq
--  ___satfractutausq
--  ___satfractutaudq
--  ___satfractutautq
--  ___satfractutauha2
--  ___satfractutausa2
--  ___satfractutauda2
--  ___satfractqiqq
--  ___satfractqihq
--  ___satfractqisq
--  ___satfractqidq
--  ___satfractqitq
--  ___satfractqiha
--  ___satfractqisa
--  ___satfractqida
--  ___satfractqita
--  ___satfractqiuqq
--  ___satfractqiuhq
--  ___satfractqiusq
--  ___satfractqiudq
--  ___satfractqiutq
--  ___satfractqiuha
--  ___satfractqiusa
--  ___satfractqiuda
--  ___satfractqiuta
--  ___satfracthiqq
--  ___satfracthihq
--  ___satfracthisq
--  ___satfracthidq
--  ___satfracthitq
--  ___satfracthiha
--  ___satfracthisa
--  ___satfracthida
--  ___satfracthita
--  ___satfracthiuqq
--  ___satfracthiuhq
--  ___satfracthiusq
--  ___satfracthiudq
--  ___satfracthiutq
--  ___satfracthiuha
--  ___satfracthiusa
--  ___satfracthiuda
--  ___satfracthiuta
--  ___satfractsiqq
--  ___satfractsihq
--  ___satfractsisq
--  ___satfractsidq
--  ___satfractsitq
--  ___satfractsiha
--  ___satfractsisa
--  ___satfractsida
--  ___satfractsita
--  ___satfractsiuqq
--  ___satfractsiuhq
--  ___satfractsiusq
--  ___satfractsiudq
--  ___satfractsiutq
--  ___satfractsiuha
--  ___satfractsiusa
--  ___satfractsiuda
--  ___satfractsiuta
--  ___satfractdiqq
--  ___satfractdihq
--  ___satfractdisq
--  ___satfractdidq
--  ___satfractditq
--  ___satfractdiha
--  ___satfractdisa
--  ___satfractdida
--  ___satfractdita
--  ___satfractdiuqq
--  ___satfractdiuhq
--  ___satfractdiusq
--  ___satfractdiudq
--  ___satfractdiutq
--  ___satfractdiuha
--  ___satfractdiusa
--  ___satfractdiuda
--  ___satfractdiuta
--  ___satfracttiqq
--  ___satfracttihq
--  ___satfracttisq
--  ___satfracttidq
--  ___satfracttitq
--  ___satfracttiha
--  ___satfracttisa
--  ___satfracttida
--  ___satfracttita
--  ___satfracttiuqq
--  ___satfracttiuhq
--  ___satfracttiusq
--  ___satfracttiudq
--  ___satfracttiutq
--  ___satfracttiuha
--  ___satfracttiusa
--  ___satfracttiuda
--  ___satfracttiuta
--  ___satfractsfqq
--  ___satfractsfhq
--  ___satfractsfsq
--  ___satfractsfdq
--  ___satfractsftq
--  ___satfractsfha
--  ___satfractsfsa
--  ___satfractsfda
--  ___satfractsfta
--  ___satfractsfuqq
--  ___satfractsfuhq
--  ___satfractsfusq
--  ___satfractsfudq
--  ___satfractsfutq
--  ___satfractsfuha
--  ___satfractsfusa
--  ___satfractsfuda
--  ___satfractsfuta
--  ___satfractdfqq
--  ___satfractdfhq
--  ___satfractdfsq
--  ___satfractdfdq
--  ___satfractdftq
--  ___satfractdfha
--  ___satfractdfsa
--  ___satfractdfda
--  ___satfractdfta
--  ___satfractdfuqq
--  ___satfractdfuhq
--  ___satfractdfusq
--  ___satfractdfudq
--  ___satfractdfutq
--  ___satfractdfuha
--  ___satfractdfusa
--  ___satfractdfuda
--  ___satfractdfuta
--  ___fractunsqqqi
--  ___fractunsqqhi
--  ___fractunsqqsi
--  ___fractunsqqdi
--  ___fractunsqqti
--  ___fractunshqqi
--  ___fractunshqhi
--  ___fractunshqsi
--  ___fractunshqdi
--  ___fractunshqti
--  ___fractunssqqi
--  ___fractunssqhi
--  ___fractunssqsi
--  ___fractunssqdi
--  ___fractunssqti
--  ___fractunsdqqi
--  ___fractunsdqhi
--  ___fractunsdqsi
--  ___fractunsdqdi
--  ___fractunsdqti
--  ___fractunstqqi
--  ___fractunstqhi
--  ___fractunstqsi
--  ___fractunstqdi
--  ___fractunstqti
--  ___fractunshaqi
--  ___fractunshahi
--  ___fractunshasi
--  ___fractunshadi
--  ___fractunshati
--  ___fractunssaqi
--  ___fractunssahi
--  ___fractunssasi
--  ___fractunssadi
--  ___fractunssati
--  ___fractunsdaqi
--  ___fractunsdahi
--  ___fractunsdasi
--  ___fractunsdadi
--  ___fractunsdati
--  ___fractunstaqi
--  ___fractunstahi
--  ___fractunstasi
--  ___fractunstadi
--  ___fractunstati
--  ___fractunsuqqqi
--  ___fractunsuqqhi
--  ___fractunsuqqsi
--  ___fractunsuqqdi
--  ___fractunsuqqti
--  ___fractunsuhqqi
--  ___fractunsuhqhi
--  ___fractunsuhqsi
--  ___fractunsuhqdi
--  ___fractunsuhqti
--  ___fractunsusqqi
--  ___fractunsusqhi
--  ___fractunsusqsi
--  ___fractunsusqdi
--  ___fractunsusqti
--  ___fractunsudqqi
--  ___fractunsudqhi
--  ___fractunsudqsi
--  ___fractunsudqdi
--  ___fractunsudqti
--  ___fractunsutqqi
--  ___fractunsutqhi
--  ___fractunsutqsi
--  ___fractunsutqdi
--  ___fractunsutqti
--  ___fractunsuhaqi
--  ___fractunsuhahi
--  ___fractunsuhasi
--  ___fractunsuhadi
--  ___fractunsuhati
--  ___fractunsusaqi
--  ___fractunsusahi
--  ___fractunsusasi
--  ___fractunsusadi
--  ___fractunsusati
--  ___fractunsudaqi
--  ___fractunsudahi
--  ___fractunsudasi
--  ___fractunsudadi
--  ___fractunsudati
--  ___fractunsutaqi
--  ___fractunsutahi
--  ___fractunsutasi
--  ___fractunsutadi
--  ___fractunsutati
--  ___fractunsqiqq
--  ___fractunsqihq
--  ___fractunsqisq
--  ___fractunsqidq
--  ___fractunsqitq
--  ___fractunsqiha
--  ___fractunsqisa
--  ___fractunsqida
--  ___fractunsqita
--  ___fractunsqiuqq
--  ___fractunsqiuhq
--  ___fractunsqiusq
--  ___fractunsqiudq
--  ___fractunsqiutq
--  ___fractunsqiuha
--  ___fractunsqiusa
--  ___fractunsqiuda
--  ___fractunsqiuta
--  ___fractunshiqq
--  ___fractunshihq
--  ___fractunshisq
--  ___fractunshidq
--  ___fractunshitq
--  ___fractunshiha
--  ___fractunshisa
--  ___fractunshida
--  ___fractunshita
--  ___fractunshiuqq
--  ___fractunshiuhq
--  ___fractunshiusq
--  ___fractunshiudq
--  ___fractunshiutq
--  ___fractunshiuha
--  ___fractunshiusa
--  ___fractunshiuda
--  ___fractunshiuta
--  ___fractunssiqq
--  ___fractunssihq
--  ___fractunssisq
--  ___fractunssidq
--  ___fractunssitq
--  ___fractunssiha
--  ___fractunssisa
--  ___fractunssida
--  ___fractunssita
--  ___fractunssiuqq
--  ___fractunssiuhq
--  ___fractunssiusq
--  ___fractunssiudq
--  ___fractunssiutq
--  ___fractunssiuha
--  ___fractunssiusa
--  ___fractunssiuda
--  ___fractunssiuta
--  ___fractunsdiqq
--  ___fractunsdihq
--  ___fractunsdisq
--  ___fractunsdidq
--  ___fractunsditq
--  ___fractunsdiha
--  ___fractunsdisa
--  ___fractunsdida
--  ___fractunsdita
--  ___fractunsdiuqq
--  ___fractunsdiuhq
--  ___fractunsdiusq
--  ___fractunsdiudq
--  ___fractunsdiutq
--  ___fractunsdiuha
--  ___fractunsdiusa
--  ___fractunsdiuda
--  ___fractunsdiuta
--  ___fractunstiqq
--  ___fractunstihq
--  ___fractunstisq
--  ___fractunstidq
--  ___fractunstitq
--  ___fractunstiha
--  ___fractunstisa
--  ___fractunstida
--  ___fractunstita
--  ___fractunstiuqq
--  ___fractunstiuhq
--  ___fractunstiusq
--  ___fractunstiudq
--  ___fractunstiutq
--  ___fractunstiuha
--  ___fractunstiusa
--  ___fractunstiuda
--  ___fractunstiuta
--  ___satfractunsqiqq
--  ___satfractunsqihq
--  ___satfractunsqisq
--  ___satfractunsqidq
--  ___satfractunsqitq
--  ___satfractunsqiha
--  ___satfractunsqisa
--  ___satfractunsqida
--  ___satfractunsqita
--  ___satfractunsqiuqq
--  ___satfractunsqiuhq
--  ___satfractunsqiusq
--  ___satfractunsqiudq
--  ___satfractunsqiutq
--  ___satfractunsqiuha
--  ___satfractunsqiusa
--  ___satfractunsqiuda
--  ___satfractunsqiuta
--  ___satfractunshiqq
--  ___satfractunshihq
--  ___satfractunshisq
--  ___satfractunshidq
--  ___satfractunshitq
--  ___satfractunshiha
--  ___satfractunshisa
--  ___satfractunshida
--  ___satfractunshita
--  ___satfractunshiuqq
--  ___satfractunshiuhq
--  ___satfractunshiusq
--  ___satfractunshiudq
--  ___satfractunshiutq
--  ___satfractunshiuha
--  ___satfractunshiusa
--  ___satfractunshiuda
--  ___satfractunshiuta
--  ___satfractunssiqq
--  ___satfractunssihq
--  ___satfractunssisq
--  ___satfractunssidq
--  ___satfractunssitq
--  ___satfractunssiha
--  ___satfractunssisa
--  ___satfractunssida
--  ___satfractunssita
--  ___satfractunssiuqq
--  ___satfractunssiuhq
--  ___satfractunssiusq
--  ___satfractunssiudq
--  ___satfractunssiutq
--  ___satfractunssiuha
--  ___satfractunssiusa
--  ___satfractunssiuda
--  ___satfractunssiuta
--  ___satfractunsdiqq
--  ___satfractunsdihq
--  ___satfractunsdisq
--  ___satfractunsdidq
--  ___satfractunsditq
--  ___satfractunsdiha
--  ___satfractunsdisa
--  ___satfractunsdida
--  ___satfractunsdita
--  ___satfractunsdiuqq
--  ___satfractunsdiuhq
--  ___satfractunsdiusq
--  ___satfractunsdiudq
--  ___satfractunsdiutq
--  ___satfractunsdiuha
--  ___satfractunsdiusa
--  ___satfractunsdiuda
--  ___satfractunsdiuta
--  ___satfractunstiqq
--  ___satfractunstihq
--  ___satfractunstisq
--  ___satfractunstidq
--  ___satfractunstitq
--  ___satfractunstiha
--  ___satfractunstisa
--  ___satfractunstida
--  ___satfractunstita
--  ___satfractunstiuqq
--  ___satfractunstiuhq
--  ___satfractunstiusq
--  ___satfractunstiudq
--  ___satfractunstiutq
--  ___satfractunstiuha
--  ___satfractunstiusa
--  ___satfractunstiuda
--  ___satfractunstiuta
--}
--
--%inherit GCC_4.4.0 GCC_4.3.0
--GCC_4.4.0 {
--  ___sync_fetch_and_add_1
--  ___sync_fetch_and_sub_1
--  ___sync_fetch_and_or_1
--  ___sync_fetch_and_and_1
--  ___sync_fetch_and_xor_1
--  ___sync_fetch_and_nand_1
--  ___sync_add_and_fetch_1
--  ___sync_sub_and_fetch_1
--  ___sync_or_and_fetch_1
--  ___sync_and_and_fetch_1
--  ___sync_xor_and_fetch_1
--  ___sync_nand_and_fetch_1
--  ___sync_bool_compare_and_swap_1
--  ___sync_val_compare_and_swap_1
--  ___sync_lock_test_and_set_1
--
--  ___sync_fetch_and_add_2
--  ___sync_fetch_and_sub_2
--  ___sync_fetch_and_or_2
--  ___sync_fetch_and_and_2
--  ___sync_fetch_and_xor_2
--  ___sync_fetch_and_nand_2
--  ___sync_add_and_fetch_2
--  ___sync_sub_and_fetch_2
--  ___sync_or_and_fetch_2
--  ___sync_and_and_fetch_2
--  ___sync_xor_and_fetch_2
--  ___sync_nand_and_fetch_2
--  ___sync_bool_compare_and_swap_2
--  ___sync_val_compare_and_swap_2
--  ___sync_lock_test_and_set_2
--
--  ___sync_fetch_and_add_4
--  ___sync_fetch_and_sub_4
--  ___sync_fetch_and_or_4
--  ___sync_fetch_and_and_4
--  ___sync_fetch_and_xor_4
--  ___sync_fetch_and_nand_4
--  ___sync_add_and_fetch_4
--  ___sync_sub_and_fetch_4
--  ___sync_or_and_fetch_4
--  ___sync_and_and_fetch_4
--  ___sync_xor_and_fetch_4
--  ___sync_nand_and_fetch_4
--  ___sync_bool_compare_and_swap_4
--  ___sync_val_compare_and_swap_4
--  ___sync_lock_test_and_set_4
--
--  ___sync_fetch_and_add_8
--  ___sync_fetch_and_sub_8
--  ___sync_fetch_and_or_8
--  ___sync_fetch_and_and_8
--  ___sync_fetch_and_xor_8
--  ___sync_fetch_and_nand_8
--  ___sync_add_and_fetch_8
--  ___sync_sub_and_fetch_8
--  ___sync_or_and_fetch_8
--  ___sync_and_and_fetch_8
--  ___sync_xor_and_fetch_8
--  ___sync_nand_and_fetch_8
--  ___sync_bool_compare_and_swap_8
--  ___sync_val_compare_and_swap_8
--  ___sync_lock_test_and_set_8
--
--  ___sync_fetch_and_add_16
--  ___sync_fetch_and_sub_16
--  ___sync_fetch_and_or_16
--  ___sync_fetch_and_and_16
--  ___sync_fetch_and_xor_16
--  ___sync_fetch_and_nand_16
--  ___sync_add_and_fetch_16
--  ___sync_sub_and_fetch_16
--  ___sync_or_and_fetch_16
--  ___sync_and_and_fetch_16
--  ___sync_xor_and_fetch_16
--  ___sync_nand_and_fetch_16
--  ___sync_bool_compare_and_swap_16
--  ___sync_val_compare_and_swap_16
--  ___sync_lock_test_and_set_16
--
--  ___sync_synchronize
--}
--
--%inherit GCC_4.5.0 GCC_4.4.0
--GCC_4.5.0 {
--  ___unordxf2
--  ___unordtf2
-+  __smulsi3_highpart
-+  __umulsi3_highpart
- }
-diff --git a/libgcc/config/bfin/t-linux b/libgcc/config/bfin/t-linux
-index 1c42e48..8898157 100644
---- a/libgcc/config/bfin/t-linux
-+++ b/libgcc/config/bfin/t-linux
-@@ -1 +1,2 @@
--SHLIB_MAPFILES = $(srcdir)/config/bfin/libgcc-glibc.ver
-+SHLIB_MAPFILES += $(srcdir)/config/bfin/libgcc-glibc.ver
-+SHLIB_MKMAP_OPTS = -v skip_underscore=1
--- 
-2.7.4
-
diff --git a/package/gcc/6.2.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch b/package/gcc/6.2.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch
deleted file mode 100644 (file)
index ce49de7..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From 9d9f97ca5d1ceba66677bf406c9b31027dc1f22e Mon Sep 17 00:00:00 2001
-From: Waldemar Brodkorb <wbx@openadk.org>
-Date: Fri, 19 Aug 2016 13:54:46 +0200
-Subject: [PATCH] libgcc: fix DWARF compilation with FDPIC targets
-
-The build of unwind-dw2-fde-dip.c currently fails for FDPIC targets with
-the following error:
-
-libgcc/unwind-dw2-fde-dip.c:167:31: error: storage size of 'load_base' isn't known
-   struct elf32_fdpic_loadaddr load_base;
-
-This patch addresses that by defining load_base with the appropriate
-type on FDPIC targets. It has been tested on FRV and Blackfin.
-
-Fixes PR gcc/68468.
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- libgcc/unwind-dw2-fde-dip.c | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c
-index f7a1c3f..801bce8 100644
---- a/libgcc/unwind-dw2-fde-dip.c
-+++ b/libgcc/unwind-dw2-fde-dip.c
-@@ -124,7 +124,11 @@ static struct frame_hdr_cache_element
- {
-   _Unwind_Ptr pc_low;
-   _Unwind_Ptr pc_high;
-+#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
-+  struct elf32_fdpic_loadaddr load_base;
-+#else
-   _Unwind_Ptr load_base;
-+#endif
-   const ElfW(Phdr) *p_eh_frame_hdr;
-   const ElfW(Phdr) *p_dynamic;
-   struct frame_hdr_cache_element *link;
-@@ -163,7 +167,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
-   struct unw_eh_callback_data *data = (struct unw_eh_callback_data *) ptr;
-   const ElfW(Phdr) *phdr, *p_eh_frame_hdr, *p_dynamic;
-   long n, match;
--#ifdef __FRV_FDPIC__
-+#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
-   struct elf32_fdpic_loadaddr load_base;
- #else
-   _Unwind_Ptr load_base;
-@@ -347,7 +351,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
-           break;
-         }
-     }
--# elif defined __FRV_FDPIC__ && defined __linux__
-+# elif (defined __FRV_FDPIC__ || defined __BFIN_FDPIC__) && defined __linux__
-   data->dbase = load_base.got_value;
- # else
- #  error What is DW_EH_PE_datarel base on this platform?
--- 
-2.7.4
-
diff --git a/package/gcc/6.2.0/895-bfin-define-REENTRANT.patch b/package/gcc/6.2.0/895-bfin-define-REENTRANT.patch
deleted file mode 100644 (file)
index e2828a5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-enable _REENTRANT when -lpthread is used
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur gcc-6.2.0.orig/gcc/config/bfin/linux.h gcc-6.2.0/gcc/config/bfin/linux.h
---- gcc-6.2.0.orig/gcc/config/bfin/linux.h     2016-01-04 15:30:50.000000000 +0100
-+++ gcc-6.2.0/gcc/config/bfin/linux.h  2016-09-30 20:48:17.446636819 +0200
-@@ -38,6 +38,9 @@
-   "%{static:--start-group} %{mfast-fp:-lbffastfp} %G %L %{static:--end-group} \
-    %{!static:%{mfast-fp:-lbffastfp} %G}"
-+#undef CPP_SPEC
-+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-+
- #undef LINK_SPEC
- #define LINK_SPEC "\
-   %{mfdpic: -m elf32bfinfd -z text} %{shared} %{pie} \
diff --git a/package/gcc/6.2.0/940-uclinux-enable-threads.patch b/package/gcc/6.2.0/940-uclinux-enable-threads.patch
deleted file mode 100644 (file)
index 5532656..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Enable POSIX threads for uClinux targets
-Reported upstream:
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur gcc-6.1.0.orig/gcc/config.gcc gcc-6.1.0/gcc/config.gcc
---- gcc-6.1.0.orig/gcc/config.gcc      2016-04-11 12:14:59.000000000 +0200
-+++ gcc-6.1.0/gcc/config.gcc   2016-07-02 20:04:25.732169982 +0200
-@@ -833,6 +833,9 @@
- *-*-uclinux*)
-   extra_options="$extra_options gnu-user.opt"
-   use_gcc_stdint=wrap
-+  case ${enable_threads} in
-+    "" | yes | posix) thread_file='posix' ;;
-+  esac
-   tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
-   ;;
- *-*-rdos*)
diff --git a/package/gcc/6.2.0/941-mips-Add-support-for-mips-r6-musl.patch b/package/gcc/6.2.0/941-mips-Add-support-for-mips-r6-musl.patch
deleted file mode 100644 (file)
index 337d376..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From 83717065090bb8b954556d1216dd9dc397dc0243 Mon Sep 17 00:00:00 2001
-From: nsz <nsz@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Thu, 25 Aug 2016 14:13:02 +0000
-Subject: [PATCH] [mips] Add support for mips*r6-*-musl
-
-gcc/
-       * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
-       (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239760 138bc75d-0d04-0410-961f-82ee72b054a4
-
-[Vincent: tweak to not patch ChangeLog]
-
-Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
----
- gcc/config/mips/linux.h | 9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
-index fa253b6..dc51c45 100644
---- a/gcc/config/mips/linux.h
-+++ b/gcc/config/mips/linux.h
-@@ -38,10 +38,13 @@ along with GCC; see the file COPYING3.  If not see
-   "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
- #undef MUSL_DYNAMIC_LINKER32
--#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1"
-+#define MUSL_DYNAMIC_LINKER32 \
-+  "/lib/ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
- #undef MUSL_DYNAMIC_LINKER64
--#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips64%{EL:el}%{msoft-float:-sf}.so.1"
--#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mipsn32%{EL:el}%{msoft-float:-sf}.so.1"
-+#define MUSL_DYNAMIC_LINKER64 \
-+  "/lib/ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
-+#define MUSL_DYNAMIC_LINKERN32 \
-+  "/lib/ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
- #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
- #define GNU_USER_DYNAMIC_LINKERN32 \
--- 
-2.10.0
-
diff --git a/package/gcc/6.3.0/100-uclibc-conf.patch b/package/gcc/6.3.0/100-uclibc-conf.patch
new file mode 100644 (file)
index 0000000..73d1f0d
--- /dev/null
@@ -0,0 +1,15 @@
+Index: b/contrib/regression/objs-gcc.sh
+===================================================================
+--- a/contrib/regression/objs-gcc.sh
++++ b/contrib/regression/objs-gcc.sh
+@@ -106,6 +106,10 @@
+  then
+   make all-gdb all-dejagnu all-ld || exit 1
+   make install-gdb install-dejagnu install-ld || exit 1
++elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
++ then
++  make all-gdb all-dejagnu all-ld || exit 1
++  make install-gdb install-dejagnu install-ld || exit 1
+ elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
+   make bootstrap || exit 1
+   make install || exit 1
diff --git a/package/gcc/6.3.0/301-missing-execinfo_h.patch b/package/gcc/6.3.0/301-missing-execinfo_h.patch
new file mode 100644 (file)
index 0000000..2d0e7ba
--- /dev/null
@@ -0,0 +1,13 @@
+Index: b/boehm-gc/include/gc.h
+===================================================================
+--- a/boehm-gc/include/gc.h
++++ b/boehm-gc/include/gc.h
+@@ -503,7 +503,7 @@
+ #if defined(__linux__) || defined(__GLIBC__)
+ # include <features.h>
+ # 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/package/gcc/6.3.0/810-arm-softfloat-libgcc.patch b/package/gcc/6.3.0/810-arm-softfloat-libgcc.patch
new file mode 100644 (file)
index 0000000..5efa7fd
--- /dev/null
@@ -0,0 +1,30 @@
+Index: b/gcc/config/arm/linux-elf.h
+===================================================================
+--- a/gcc/config/arm/linux-elf.h
++++ b/gcc/config/arm/linux-elf.h
+@@ -60,7 +60,7 @@
+    %{shared:-lc} \
+    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+Index: b/libgcc/config/arm/t-linux
+===================================================================
+--- a/libgcc/config/arm/t-linux
++++ b/libgcc/config/arm/t-linux
+@@ -1,6 +1,11 @@
+ LIB1ASMSRC = arm/lib1funcs.S
+ LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
+-      _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
++      _ctzsi2 _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
+ # Just for these, we omit the frame pointer since it makes such a big
+ # difference.
diff --git a/package/gcc/6.3.0/830-arm_unbreak_armv4t.patch b/package/gcc/6.3.0/830-arm_unbreak_armv4t.patch
new file mode 100644 (file)
index 0000000..b730059
--- /dev/null
@@ -0,0 +1,15 @@
+http://sourceware.org/ml/crossgcc/2008-05/msg00009.html
+
+Index: b/gcc/config/arm/linux-eabi.h
+===================================================================
+--- 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.  */
diff --git a/package/gcc/6.3.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch b/package/gcc/6.3.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch
new file mode 100644 (file)
index 0000000..af9fb1d
--- /dev/null
@@ -0,0 +1,69 @@
+From 07453188b18a2cbe815917dbb893b4ebfdd793b6 Mon Sep 17 00:00:00 2001
+From: ktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Fri, 26 Aug 2016 10:23:20 +0000
+Subject: [PATCH] [ARM] PR target/70473: Reduce size of Cortex-A8 automaton
+
+       PR target/70473
+       * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
+       reservation duration to 15 cycles.
+       (cortex_a8_vfp_macs): Likewise.
+       (cortex_a8_vfp_macd): Likewise.
+       (cortex_a8_vfp_divs): Likewise.
+       (cortex_a8_vfp_divd): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239772
+138bc75d-0d04-0410-961f-82ee72b054a4
+
+[Backport from gcc upstream commit 79f5d5e3cd5a668d5ecb2b6b0cce80ef5706ac53.]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ gcc/config/arm/cortex-a8-neon.md | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/gcc/config/arm/cortex-a8-neon.md b/gcc/config/arm/cortex-a8-neon.md
+index 45f861f..b16c299 100644
+--- a/gcc/config/arm/cortex-a8-neon.md
++++ b/gcc/config/arm/cortex-a8-neon.md
+@@ -357,30 +357,34 @@
+        (eq_attr "type" "fmuls"))
+   "cortex_a8_vfp,cortex_a8_vfplite*11")
++;; Don't model a reservation for more than 15 cycles as this explodes the
++;; state space of the automaton for little gain.  It is unlikely that the
++;; scheduler will find enough instructions to hide the full latency of the
++;; instructions.
+ (define_insn_reservation "cortex_a8_vfp_muld" 17
+   (and (eq_attr "tune" "cortexa8")
+        (eq_attr "type" "fmuld"))
+-  "cortex_a8_vfp,cortex_a8_vfplite*16")
++  "cortex_a8_vfp,cortex_a8_vfplite*15")
+ (define_insn_reservation "cortex_a8_vfp_macs" 21
+   (and (eq_attr "tune" "cortexa8")
+        (eq_attr "type" "fmacs,ffmas"))
+-  "cortex_a8_vfp,cortex_a8_vfplite*20")
++  "cortex_a8_vfp,cortex_a8_vfplite*15")
+ (define_insn_reservation "cortex_a8_vfp_macd" 26
+   (and (eq_attr "tune" "cortexa8")
+        (eq_attr "type" "fmacd,ffmad"))
+-  "cortex_a8_vfp,cortex_a8_vfplite*25")
++  "cortex_a8_vfp,cortex_a8_vfplite*15")
+ (define_insn_reservation "cortex_a8_vfp_divs" 37
+   (and (eq_attr "tune" "cortexa8")
+        (eq_attr "type" "fdivs, fsqrts"))
+-  "cortex_a8_vfp,cortex_a8_vfplite*36")
++  "cortex_a8_vfp,cortex_a8_vfplite*15")
+ (define_insn_reservation "cortex_a8_vfp_divd" 65
+   (and (eq_attr "tune" "cortexa8")
+        (eq_attr "type" "fdivd, fsqrtd"))
+-  "cortex_a8_vfp,cortex_a8_vfplite*64")
++  "cortex_a8_vfp,cortex_a8_vfplite*15")
+ ;; Comparisons can actually take 7 cycles sometimes instead of four,
+ ;; but given all the other instructions lumped into type=ffarith that
+-- 
+2.7.4
+
diff --git a/package/gcc/6.3.0/860-cilk-wchar.patch b/package/gcc/6.3.0/860-cilk-wchar.patch
new file mode 100644 (file)
index 0000000..1d9916f
--- /dev/null
@@ -0,0 +1,56 @@
+[PATCH] cilk: fix build without wchar
+
+When building against uClibc with wchar support disabled, WCHAR_MIN and
+WCHAR_MAX are not defined leading to compilation errors.
+
+Fix it by only including the wchar code if available.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ libcilkrts/include/cilk/reducer_min_max.h |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+Index: b/libcilkrts/include/cilk/reducer_min_max.h
+===================================================================
+--- a/libcilkrts/include/cilk/reducer_min_max.h
++++ b/libcilkrts/include/cilk/reducer_min_max.h
+@@ -3154,7 +3154,9 @@
+ CILK_C_REDUCER_MAX_INSTANCE(char,               char,       CHAR_MIN)
+ CILK_C_REDUCER_MAX_INSTANCE(unsigned char,      uchar,      0)
+ CILK_C_REDUCER_MAX_INSTANCE(signed char,        schar,      SCHAR_MIN)
++#ifdef WCHAR_MIN
+ CILK_C_REDUCER_MAX_INSTANCE(wchar_t,            wchar_t,    WCHAR_MIN)
++#endif
+ CILK_C_REDUCER_MAX_INSTANCE(short,              short,      SHRT_MIN)
+ CILK_C_REDUCER_MAX_INSTANCE(unsigned short,     ushort,     0)
+ CILK_C_REDUCER_MAX_INSTANCE(int,                int,        INT_MIN)
+@@ -3306,7 +3308,9 @@
+ CILK_C_REDUCER_MAX_INDEX_INSTANCE(char,               char,       CHAR_MIN)
+ CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned char,      uchar,      0)
+ CILK_C_REDUCER_MAX_INDEX_INSTANCE(signed char,        schar,      SCHAR_MIN)
++#ifdef WCHAR_MIN
+ CILK_C_REDUCER_MAX_INDEX_INSTANCE(wchar_t,            wchar_t,    WCHAR_MIN)
++#endif
+ CILK_C_REDUCER_MAX_INDEX_INSTANCE(short,              short,      SHRT_MIN)
+ CILK_C_REDUCER_MAX_INDEX_INSTANCE(unsigned short,     ushort,     0)
+ CILK_C_REDUCER_MAX_INDEX_INSTANCE(int,                int,        INT_MIN)
+@@ -3432,7 +3436,9 @@
+ CILK_C_REDUCER_MIN_INSTANCE(char,               char,       CHAR_MAX)
+ CILK_C_REDUCER_MIN_INSTANCE(unsigned char,      uchar,      CHAR_MAX)
+ CILK_C_REDUCER_MIN_INSTANCE(signed char,        schar,      SCHAR_MAX)
++#ifdef WCHAR_MAX
+ CILK_C_REDUCER_MIN_INSTANCE(wchar_t,            wchar_t,    WCHAR_MAX)
++#endif
+ CILK_C_REDUCER_MIN_INSTANCE(short,              short,      SHRT_MAX)
+ CILK_C_REDUCER_MIN_INSTANCE(unsigned short,     ushort,     USHRT_MAX)
+ CILK_C_REDUCER_MIN_INSTANCE(int,                int,        INT_MAX)
+@@ -3584,7 +3590,9 @@
+ CILK_C_REDUCER_MIN_INDEX_INSTANCE(char,               char,       CHAR_MAX)
+ CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned char,      uchar,      CHAR_MAX)
+ CILK_C_REDUCER_MIN_INDEX_INSTANCE(signed char,        schar,      SCHAR_MAX)
++#ifdef WCHAR_MAX
+ CILK_C_REDUCER_MIN_INDEX_INSTANCE(wchar_t,            wchar_t,    WCHAR_MAX)
++#endif
+ CILK_C_REDUCER_MIN_INDEX_INSTANCE(short,              short,      SHRT_MAX)
+ CILK_C_REDUCER_MIN_INDEX_INSTANCE(unsigned short,     ushort,     USHRT_MAX)
+ CILK_C_REDUCER_MIN_INDEX_INSTANCE(int,                int,        INT_MAX)
diff --git a/package/gcc/6.3.0/870-xtensa-Fix-PR-target-78118.patch b/package/gcc/6.3.0/870-xtensa-Fix-PR-target-78118.patch
new file mode 100644 (file)
index 0000000..0598c76
--- /dev/null
@@ -0,0 +1,320 @@
+From 0d2556fa652cc85b3d042e862a38dd07d454175a Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Wed, 26 Oct 2016 08:02:51 +0000
+Subject: [PATCH 1/2] xtensa: Fix PR target/78118
+
+It started failing after the following commit: 32e90dc6a0cda45 ("PR
+rtl-optimization/61047").
+
+The change that made xtensa backend go ICE looks completely unrelated,
+and indeed, the issue is caused by the side effect of
+compute_frame_size() function call hidden in the
+INITIAL_ELIMINATION_OFFSET macro. This call updates the value of the
+xtensa_current_frame_size static variable, used in "return" instruction
+predicate. Prior to the change the value of xtensa_current_frame_size was
+set to 0 after the end of epilogue generation, which enabled the "return"
+instruction for the CALL0 ABI, but after the change the additional
+INITIAL_ELIMINATION_OFFSET calls make xtensa_current_frame_size non-zero
+and "return" pattern unavailable.
+
+Get rid of the global xtensa_current_frame_size and
+xtensa_callee_save_size variables by moving them into the
+machine_function structure. Implement predicate for the "return" pattern
+as a function. Don't communicate completion of epilogue generation
+through zeroing of xtensa_current_frame_size, add explicit epilogue_done
+variable to the machine_function structure. Don't update stack frame
+layout after the completion of reload.
+
+2016-10-26  Max Filippov  <jcmvbkbc@gmail.com>
+gcc/
+       * config/xtensa/xtensa-protos.h
+       (xtensa_use_return_instruction_p): New prototype.
+       * config/xtensa/xtensa.c (xtensa_current_frame_size,
+       xtensa_callee_save_size): Remove.
+       (struct machine_function): Add new fields: current_frame_size,
+       callee_save_size, frame_laid_out and epilogue_done.
+       (compute_frame_size, xtensa_expand_prologue,
+       xtensa_expand_epilogue): Replace xtensa_callee_save_size with
+       cfun->machine->callee_save_size and xtensa_current_frame_size
+       with cfun->machine->current_frame_size.
+       (compute_frame_size): Update cfun->machine->frame_laid_out and
+       don't update frame layout after reload completion.
+       (xtensa_expand_epilogue): Set cfun->machine->epilogue_done
+       instead of zeroing xtensa_current_frame_size.
+       (xtensa_use_return_instruction_p): New function.
+       * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove
+       declaration.
+       (INITIAL_ELIMINATION_OFFSET): Use return value of
+       compute_frame_size instead of xtensa_current_frame_size value.
+       * config/xtensa/xtensa.md ("return" pattern): Use new predicate
+       function xtensa_use_return_instruction_p instead of inline code.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+Backported from: r241748
+
+ gcc/config/xtensa/xtensa-protos.h |  1 +
+ gcc/config/xtensa/xtensa.c        | 82 ++++++++++++++++++++++++---------------
+ gcc/config/xtensa/xtensa.h        |  6 +--
+ gcc/config/xtensa/xtensa.md       |  2 +-
+ 4 files changed, 55 insertions(+), 36 deletions(-)
+
+diff --git a/gcc/config/xtensa/xtensa-protos.h b/gcc/config/xtensa/xtensa-protos.h
+index f2ca526..873557f 100644
+--- a/gcc/config/xtensa/xtensa-protos.h
++++ b/gcc/config/xtensa/xtensa-protos.h
+@@ -68,6 +68,7 @@ extern rtx xtensa_return_addr (int, rtx);
+ extern void xtensa_setup_frame_addresses (void);
+ extern int xtensa_dbx_register_number (int);
+ extern long compute_frame_size (int);
++extern bool xtensa_use_return_instruction_p (void);
+ extern void xtensa_expand_prologue (void);
+ extern void xtensa_expand_epilogue (void);
+ extern void order_regs_for_local_alloc (void);
+diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
+index 64d089b..e49f784 100644
+--- a/gcc/config/xtensa/xtensa.c
++++ b/gcc/config/xtensa/xtensa.c
+@@ -78,11 +78,6 @@ enum internal_test
+    can support a given mode.  */
+ char xtensa_hard_regno_mode_ok[(int) MAX_MACHINE_MODE][FIRST_PSEUDO_REGISTER];
+-/* Current frame size calculated by compute_frame_size.  */
+-unsigned xtensa_current_frame_size;
+-/* Callee-save area size in the current frame calculated by compute_frame_size. */
+-int xtensa_callee_save_size;
+-
+ /* Largest block move to handle in-line.  */
+ #define LARGEST_MOVE_RATIO 15
+@@ -94,6 +89,13 @@ struct GTY(()) machine_function
+   bool vararg_a7;
+   rtx vararg_a7_copy;
+   rtx_insn *set_frame_ptr_insn;
++  /* Current frame size calculated by compute_frame_size.  */
++  unsigned current_frame_size;
++  /* Callee-save area size in the current frame calculated by
++     compute_frame_size.  */
++  int callee_save_size;
++  bool frame_laid_out;
++  bool epilogue_done;
+ };
+ /* Vector, indexed by hard register number, which contains 1 for a
+@@ -2628,24 +2630,29 @@ compute_frame_size (int size)
+ {
+   int regno;
++  if (reload_completed && cfun->machine->frame_laid_out)
++    return cfun->machine->current_frame_size;
++
+   /* Add space for the incoming static chain value.  */
+   if (cfun->static_chain_decl != NULL)
+     size += (1 * UNITS_PER_WORD);
+-  xtensa_callee_save_size = 0;
++  cfun->machine->callee_save_size = 0;
+   for (regno = 0; regno < FIRST_PSEUDO_REGISTER; ++regno)
+     {
+       if (xtensa_call_save_reg(regno))
+-      xtensa_callee_save_size += UNITS_PER_WORD;
++      cfun->machine->callee_save_size += UNITS_PER_WORD;
+     }
+-  xtensa_current_frame_size =
++  cfun->machine->current_frame_size =
+     XTENSA_STACK_ALIGN (size
+-                      + xtensa_callee_save_size
++                      + cfun->machine->callee_save_size
+                       + crtl->outgoing_args_size
+                       + (WINDOW_SIZE * UNITS_PER_WORD));
+-  xtensa_callee_save_size = XTENSA_STACK_ALIGN (xtensa_callee_save_size);
+-  return xtensa_current_frame_size;
++  cfun->machine->callee_save_size =
++    XTENSA_STACK_ALIGN (cfun->machine->callee_save_size);
++  cfun->machine->frame_laid_out = true;
++  return cfun->machine->current_frame_size;
+ }
+@@ -2696,6 +2703,7 @@ xtensa_expand_prologue (void)
+     {
+       int regno;
+       HOST_WIDE_INT offset = 0;
++      int callee_save_size = cfun->machine->callee_save_size;
+       /* -128 is a limit of single addi instruction. */
+       if (total_size > 0 && total_size <= 128)
+@@ -2709,7 +2717,7 @@ xtensa_expand_prologue (void)
+         add_reg_note (insn, REG_FRAME_RELATED_EXPR, note_rtx);
+         offset = total_size - UNITS_PER_WORD;
+       }
+-      else if (xtensa_callee_save_size)
++      else if (callee_save_size)
+       {
+         /* 1020 is maximal s32i offset, if the frame is bigger than that
+          * we move sp to the end of callee-saved save area, save and then
+@@ -2717,13 +2725,13 @@ xtensa_expand_prologue (void)
+         if (total_size > 1024)
+           {
+             insn = emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
+-                                          GEN_INT (-xtensa_callee_save_size)));
++                                          GEN_INT (-callee_save_size)));
+             RTX_FRAME_RELATED_P (insn) = 1;
+             note_rtx = gen_rtx_SET (stack_pointer_rtx,
+                                     plus_constant (Pmode, stack_pointer_rtx,
+-                                                   -xtensa_callee_save_size));
++                                                   -callee_save_size));
+             add_reg_note (insn, REG_FRAME_RELATED_EXPR, note_rtx);
+-            offset = xtensa_callee_save_size - UNITS_PER_WORD;
++            offset = callee_save_size - UNITS_PER_WORD;
+           }
+         else
+           {
+@@ -2759,13 +2767,13 @@ xtensa_expand_prologue (void)
+       {
+         rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
+         emit_move_insn (tmp_reg, GEN_INT (total_size -
+-                                          xtensa_callee_save_size));
++                                          callee_save_size));
+         insn = emit_insn (gen_subsi3 (stack_pointer_rtx,
+                                       stack_pointer_rtx, tmp_reg));
+         RTX_FRAME_RELATED_P (insn) = 1;
+         note_rtx = gen_rtx_SET (stack_pointer_rtx,
+                                 plus_constant (Pmode, stack_pointer_rtx,
+-                                               xtensa_callee_save_size -
++                                               callee_save_size -
+                                                total_size));
+         add_reg_note (insn, REG_FRAME_RELATED_EXPR, note_rtx);
+       }
+@@ -2833,21 +2841,21 @@ xtensa_expand_epilogue (void)
+       int regno;
+       HOST_WIDE_INT offset;
+-      if (xtensa_current_frame_size > (frame_pointer_needed ? 127 : 1024))
++      if (cfun->machine->current_frame_size > (frame_pointer_needed ? 127 : 1024))
+       {
+         rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
+-        emit_move_insn (tmp_reg, GEN_INT (xtensa_current_frame_size -
+-                                          xtensa_callee_save_size));
++        emit_move_insn (tmp_reg, GEN_INT (cfun->machine->current_frame_size -
++                                          cfun->machine->callee_save_size));
+         emit_insn (gen_addsi3 (stack_pointer_rtx, frame_pointer_needed ?
+                                hard_frame_pointer_rtx : stack_pointer_rtx,
+                                tmp_reg));
+-        offset = xtensa_callee_save_size - UNITS_PER_WORD;
++        offset = cfun->machine->callee_save_size - UNITS_PER_WORD;
+       }
+       else
+       {
+         if (frame_pointer_needed)
+           emit_move_insn (stack_pointer_rtx, hard_frame_pointer_rtx);
+-        offset = xtensa_current_frame_size - UNITS_PER_WORD;
++        offset = cfun->machine->current_frame_size - UNITS_PER_WORD;
+       }
+       /* Prevent reordering of saved a0 update and loading it back from
+@@ -2867,16 +2875,16 @@ xtensa_expand_epilogue (void)
+           }
+       }
+-      if (xtensa_current_frame_size > 0)
++      if (cfun->machine->current_frame_size > 0)
+       {
+         if (frame_pointer_needed || /* always reachable with addi */
+-            xtensa_current_frame_size > 1024 ||
+-            xtensa_current_frame_size <= 127)
++            cfun->machine->current_frame_size > 1024 ||
++            cfun->machine->current_frame_size <= 127)
+           {
+-            if (xtensa_current_frame_size <= 127)
+-              offset = xtensa_current_frame_size;
++            if (cfun->machine->current_frame_size <= 127)
++              offset = cfun->machine->current_frame_size;
+             else
+-              offset = xtensa_callee_save_size;
++              offset = cfun->machine->callee_save_size;
+             emit_insn (gen_addsi3 (stack_pointer_rtx,
+                                    stack_pointer_rtx,
+@@ -2885,7 +2893,8 @@ xtensa_expand_epilogue (void)
+         else
+           {
+             rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
+-            emit_move_insn (tmp_reg, GEN_INT (xtensa_current_frame_size));
++            emit_move_insn (tmp_reg,
++                            GEN_INT (cfun->machine->current_frame_size));
+             emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
+                                    tmp_reg));
+           }
+@@ -2896,11 +2905,22 @@ xtensa_expand_epilogue (void)
+                                 stack_pointer_rtx,
+                                 EH_RETURN_STACKADJ_RTX));
+     }
+-  xtensa_current_frame_size = 0;
+-  xtensa_callee_save_size = 0;
++  cfun->machine->epilogue_done = true;
+   emit_jump_insn (gen_return ());
+ }
++bool
++xtensa_use_return_instruction_p (void)
++{
++  if (!reload_completed)
++    return false;
++  if (TARGET_WINDOWED_ABI)
++    return true;
++  if (compute_frame_size (get_frame_size ()) == 0)
++    return true;
++  return cfun->machine->epilogue_done;
++}
++
+ void
+ xtensa_set_return_address (rtx address, rtx scratch)
+ {
+diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
+index 82e9900..58eb1b2 100644
+--- a/gcc/config/xtensa/xtensa.h
++++ b/gcc/config/xtensa/xtensa.h
+@@ -23,8 +23,6 @@ along with GCC; see the file COPYING3.  If not see
+ /* External variables defined in xtensa.c.  */
+-extern unsigned xtensa_current_frame_size;
+-
+ /* Macros used in the machine description to select various Xtensa
+    configuration options.  */
+ #ifndef XCHAL_HAVE_MUL32_HIGH
+@@ -477,14 +475,14 @@ enum reg_class
+ /* Specify the initial difference between the specified pair of registers.  */
+ #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET)                  \
+   do {                                                                        \
+-    compute_frame_size (get_frame_size ());                           \
++    long frame_size = compute_frame_size (get_frame_size ());         \
+     switch (FROM)                                                     \
+       {                                                                       \
+       case FRAME_POINTER_REGNUM:                                      \
+         (OFFSET) = 0;                                                 \
+       break;                                                          \
+       case ARG_POINTER_REGNUM:                                                \
+-        (OFFSET) = xtensa_current_frame_size;                         \
++        (OFFSET) = frame_size;                                                \
+       break;                                                          \
+       default:                                                                \
+       gcc_unreachable ();                                             \
+diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
+index db54a12..fcdb6c8 100644
+--- a/gcc/config/xtensa/xtensa.md
++++ b/gcc/config/xtensa/xtensa.md
+@@ -1663,7 +1663,7 @@
+ (define_insn "return"
+   [(return)
+    (use (reg:SI A0_REG))]
+-  "(TARGET_WINDOWED_ABI || !xtensa_current_frame_size) && reload_completed"
++  "xtensa_use_return_instruction_p ()"
+ {
+   return TARGET_WINDOWED_ABI ?
+       (TARGET_DENSITY ? "retw.n" : "retw") :
+-- 
+2.1.4
+
diff --git a/package/gcc/6.3.0/871-xtensa-Fix-PR-target-78603.patch b/package/gcc/6.3.0/871-xtensa-Fix-PR-target-78603.patch
new file mode 100644 (file)
index 0000000..0331814
--- /dev/null
@@ -0,0 +1,37 @@
+From 59cce7b304a8cbbb508ba21ab2f9052d3ee9a9e3 Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Tue, 29 Nov 2016 13:09:17 -0800
+Subject: [PATCH 2/2] xtensa: Fix PR target/78603
+
+2016-11-29  Max Filippov  <jcmvbkbc@gmail.com>
+gcc/
+       * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
+       overhead loop start between a call and its CALL_ARG_LOCATION
+       note.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+Backported from: r242979
+
+ gcc/config/xtensa/xtensa.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
+index e49f784..70f698a 100644
+--- a/gcc/config/xtensa/xtensa.c
++++ b/gcc/config/xtensa/xtensa.c
+@@ -4158,7 +4158,10 @@ hwloop_optimize (hwloop_info loop)
+       entry_after = BB_END (entry_bb);
+       while (DEBUG_INSN_P (entry_after)
+              || (NOTE_P (entry_after)
+-                 && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK))
++                 && NOTE_KIND (entry_after) != NOTE_INSN_BASIC_BLOCK
++               /* Make sure we don't split a call and its corresponding
++                  CALL_ARG_LOCATION note.  */
++                 && NOTE_KIND (entry_after) != NOTE_INSN_CALL_ARG_LOCATION))
+         entry_after = PREV_INSN (entry_after);
+       emit_insn_after (seq, entry_after);
+-- 
+2.1.4
+
diff --git a/package/gcc/6.3.0/890-fix-m68k-compile.patch b/package/gcc/6.3.0/890-fix-m68k-compile.patch
new file mode 100644 (file)
index 0000000..6e63de0
--- /dev/null
@@ -0,0 +1,15 @@
+remove unused header, which breaks the toolchain building
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+diff -Nur gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c gcc-5.3.0/libgcc/config/m68k/linux-atomic.c
+--- gcc-5.3.0.orig/libgcc/config/m68k/linux-atomic.c   2015-01-05 13:33:28.000000000 +0100
++++ gcc-5.3.0/libgcc/config/m68k/linux-atomic.c        2016-03-19 09:25:07.000000000 +0100
+@@ -33,7 +33,6 @@
+    using the kernel helper defined below.  There is no support for
+    64-bit operations yet.  */
+-#include <asm/unistd.h>
+ #include <stdbool.h>
+ #ifndef __NR_atomic_cmpxchg_32
diff --git a/package/gcc/6.3.0/891-fix-m68k-uclinux.patch b/package/gcc/6.3.0/891-fix-m68k-uclinux.patch
new file mode 100644 (file)
index 0000000..754aa74
--- /dev/null
@@ -0,0 +1,18 @@
+avoids internal compiler error while compiling linux-atomic.c
+See here:
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+diff -Nur gcc-6.1.0.orig/libgcc/config.host gcc-6.1.0/libgcc/config.host
+--- gcc-6.1.0.orig/libgcc/config.host  2016-02-26 21:02:28.000000000 +0100
++++ gcc-6.1.0/libgcc/config.host       2016-04-29 09:18:40.377989160 +0200
+@@ -812,7 +812,7 @@
+ m68k*-*-openbsd*)
+       ;;
+ m68k-*-uclinux*)      # Motorola m68k/ColdFire running uClinux with uClibc
+-      tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
++      tmake_file="$tmake_file m68k/t-floatlib"
+       md_unwind_header=m68k/linux-unwind.h
+       ;;
+ m68k-*-linux*)                        # Motorola m68k's running GNU/Linux
diff --git a/package/gcc/6.3.0/892-libgcc-mkmap-symver-support-skip_underscore.patch b/package/gcc/6.3.0/892-libgcc-mkmap-symver-support-skip_underscore.patch
new file mode 100644 (file)
index 0000000..73ee6c5
--- /dev/null
@@ -0,0 +1,60 @@
+From ae9c3e354440c4a0f105a9eabfb2f77be085ebc1 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Thu, 18 Aug 2016 17:59:16 +0200
+Subject: [PATCH] libgcc/mkmap-symver: support skip_underscore
+
+Some platforms, such as Blackfin, have a special prefix for assembly
+symbols as opposed to C symbols. For this reason, a function named
+"foo()" in C will in fact be visible as a symbol called "_foo" in the
+ELF binary.
+
+The current linker version script logic in libgcc doesn't take into
+account this situation properly. The Blackfin specific
+libgcc/config/bfin/libgcc-glibc.ver has an additional "_" in front of
+every symbol so that it matches the output of "nm" (which gets parsed to
+produce the final linker version script). But due to this additional
+"_", ld no longer matches with the symbols since "ld" does the matching
+with the original symbol name, not the one prefixed with "_".
+
+Due to this, none of the symbols in libgcc/config/bfin/libgcc-glibc.ver
+are actually matched with symbols in libgcc. This causes all libgcc
+symbols to be left as "LOCAL", which causes lots of "undefined
+reference" whenever some C or C++ code that calls a function of libgcc
+is compiled.
+
+To address this, this commit introduces a "skip_underscore" variable to
+the mkmap-symver script. It tells mkmap-symver to ignore the leading
+underscore from the "nm" output.
+
+Note that this new argument is different from the existing
+"leading_underscore" argument, which *adds* an additional underscore to
+the generated linker version script.
+
+Having this functionality paves the way to using the generic linker
+version information for Blackfin, instead of using a custom one.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ libgcc/mkmap-symver.awk | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/libgcc/mkmap-symver.awk b/libgcc/mkmap-symver.awk
+index 266832a..30bb179 100644
+--- a/libgcc/mkmap-symver.awk
++++ b/libgcc/mkmap-symver.awk
+@@ -47,7 +47,11 @@ state == "nm" && ($1 == "U" || $2 == "U") {
+ state == "nm" && NF == 3 {
+   split ($3, s, "@")
+-  def[s[1]] = 1;
++  if (skip_underscore)
++      symname = substr(s[1], 2);
++  else
++      symname = s[1];
++  def[symname] = 1;
+   sawsymbol = 1;
+   next;
+ }
+-- 
+2.7.4
+
diff --git a/package/gcc/6.3.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch b/package/gcc/6.3.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch
new file mode 100644 (file)
index 0000000..454295d
--- /dev/null
@@ -0,0 +1,1944 @@
+From 56d606931716de30a89a40dc69a9282c1b4e2880 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Thu, 18 Aug 2016 18:04:06 +0200
+Subject: [PATCH] libgcc/config/bfin: use the generic linker version
+ information
+
+This commit makes the Blackfin platform use the generic linker version
+information, rather than a completely duplicated file, specific for the
+Blackfin architecture.
+
+This is made possible using the newly introduced skip_underscore
+variable of the mkmap-symver script.
+
+This also allows to get a correct linker version file, with symbol names
+matching the ones found in libgcc. Thanks to this, the necessary symbols
+are marked "GLOBAL" instead of "LOCAL", which makes them visible at link
+time, and solves a large number of "undefined reference"
+issues. Indeed, the Blackfin specific linker version script had an extra
+underscore in front of all symbols, which meant none of them matched the
+symbols in libgcc, and therefore all libgcc symbols were marked as
+"LOCAL", making them invisible for linking.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ libgcc/config/bfin/libgcc-glibc.ver | 1894 +----------------------------------
+ libgcc/config/bfin/t-linux          |    3 +-
+ 2 files changed, 4 insertions(+), 1893 deletions(-)
+
+diff --git a/libgcc/config/bfin/libgcc-glibc.ver b/libgcc/config/bfin/libgcc-glibc.ver
+index b1bd2df..2af3df7 100644
+--- a/libgcc/config/bfin/libgcc-glibc.ver
++++ b/libgcc/config/bfin/libgcc-glibc.ver
+@@ -16,1898 +16,8 @@
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+-GCC_3.0 {
+-  # libgcc1 integer symbols
+-  ___absvsi2
+-  ___addvsi3
+-  ___ashlsi3
+-  ___ashrsi3
+-  ___divsi3
+-  ___lshrsi3
+-  ___modsi3
+-  ___mulsi3
+-  ___mulvsi3
+-  ___negvsi2
+-  ___subvsi3
+-  ___udivsi3
+-  ___umodsi3
+-
+-  # libgcc1 floating point symbols
+-  ___addsf3
+-  ___adddf3
+-  ___addxf3
+-  ___addtf3
+-  ___divsf3
+-  ___divdf3
+-  ___divxf3
+-  ___divtf3
+-  ___eqsf2
+-  ___eqdf2
+-  ___eqxf2
+-  ___eqtf2
+-  ___extenddfxf2
+-  ___extenddftf2
+-  ___extendsfdf2
+-  ___extendsfxf2
+-  ___extendsftf2
+-  ___fixsfsi
+-  ___fixdfsi
+-  ___fixxfsi
+-  ___fixtfsi
+-  ___floatsisf
+-  ___floatsidf
+-  ___floatsixf
+-  ___floatsitf
+-  ___gesf2
+-  ___gedf2
+-  ___gexf2
+-  ___getf2
+-  ___gtsf2
+-  ___gtdf2
+-  ___gtxf2
+-  ___gttf2
+-  ___lesf2
+-  ___ledf2
+-  ___lexf2
+-  ___letf2
+-  ___ltsf2
+-  ___ltdf2
+-  ___ltxf2
+-  ___lttf2
+-  ___mulsf3
+-  ___muldf3
+-  ___mulxf3
+-  ___multf3
+-  ___negsf2
+-  ___negdf2
+-  ___negxf2
+-  ___negtf2
+-  ___nesf2
+-  ___nedf2
+-  ___nexf2
+-  ___netf2
+-  ___subsf3
+-  ___subdf3
+-  ___subxf3
+-  ___subtf3
+-  ___truncdfsf2
+-  ___truncxfsf2
+-  ___trunctfsf2
+-  ___truncxfdf2
+-  ___trunctfdf2
+-
+-  # libgcc2 DImode arithmetic (for 32-bit targets).
+-  ___absvdi2
+-  ___addvdi3
+-  ___ashldi3
+-  ___ashrdi3
+-  ___cmpdi2
+-  ___divdi3
+-  ___ffsdi2
+-  ___fixdfdi
+-  ___fixsfdi
+-  ___fixtfdi
+-  ___fixxfdi
+-  ___fixunsdfdi
+-  ___fixunsdfsi
+-  ___fixunssfsi
+-  ___fixunssfdi
+-  ___fixunstfdi
+-  ___fixunstfsi
+-  ___fixunsxfdi
+-  ___fixunsxfsi
+-  ___floatdidf
+-  ___floatdisf
+-  ___floatdixf
+-  ___floatditf
+-  ___lshrdi3
+-  ___moddi3
+-  ___muldi3
+-  ___mulvdi3
+-  ___negdi2
+-  ___negvdi2
+-  ___subvdi3
+-  ___ucmpdi2
+-  ___udivdi3
+-  ___udivmoddi4
+-  ___umoddi3
+-
+-  # libgcc2 TImode arithmetic (for 64-bit targets).
+-  ___ashlti3
+-  ___ashrti3
+-  ___cmpti2
+-  ___divti3
+-  ___ffsti2
+-  ___fixdfti
+-  ___fixsfti
+-  ___fixtfti
+-  ___fixxfti
+-  ___lshrti3
+-  ___modti3
+-  ___multi3
+-  ___negti2
+-  ___ucmpti2
+-  ___udivmodti4
+-  ___udivti3
+-  ___umodti3
+-  ___fixunsdfti
+-  ___fixunssfti
+-  ___fixunstfti
+-  ___fixunsxfti
+-  ___floattidf
+-  ___floattisf
+-  ___floattixf
+-  ___floattitf
+-
+-  # Used to deal with trampoline initialization on some platforms
+-  ___clear_cache
+-
+-  # EH symbols
+-  __Unwind_DeleteException
+-  __Unwind_Find_FDE
+-  __Unwind_ForcedUnwind
+-  __Unwind_GetGR
+-  __Unwind_GetIP
+-  __Unwind_GetLanguageSpecificData
+-  __Unwind_GetRegionStart
+-  __Unwind_GetTextRelBase
+-  __Unwind_GetDataRelBase
+-  __Unwind_RaiseException
+-  __Unwind_Resume
+-  __Unwind_SetGR
+-  __Unwind_SetIP
+-  ___deregister_frame
+-  ___deregister_frame_info
+-  ___deregister_frame_info_bases
+-  ___register_frame
+-  ___register_frame_info
+-  ___register_frame_info_bases
+-  ___register_frame_info_table
+-  ___register_frame_info_table_bases
+-  ___register_frame_table
+-
+-  # SjLj EH symbols
+-  __Unwind_SjLj_Register
+-  __Unwind_SjLj_Unregister
+-  __Unwind_SjLj_RaiseException
+-  __Unwind_SjLj_ForcedUnwind
+-  __Unwind_SjLj_Resume
+-}
+-
+-%inherit GCC_3.3 GCC_3.0
+-GCC_3.3 {
+-  __Unwind_FindEnclosingFunction
+-  __Unwind_GetCFA
+-  __Unwind_Backtrace
+-  __Unwind_Resume_or_Rethrow
+-  __Unwind_SjLj_Resume_or_Rethrow
+-}
+-
+-%inherit GCC_3.3.1 GCC_3.3
+-GCC_3.3.1 {
+-  ___gcc_personality_sj0
+-  ___gcc_personality_v0
+-}
+-
+-%inherit GCC_3.3.2 GCC_3.3.1
+-GCC_3.3.2 {
+-}
+-%inherit GCC_3.3.4 GCC_3.3.2
+-GCC_3.3.4 {
+-  ___unorddf2
+-  ___unordsf2
+-}
+-
+-%inherit GCC_3.4 GCC_3.3.4
+-GCC_3.4 {
+-  # bit scanning and counting built-ins
+-  ___clzsi2
+-  ___clzdi2
+-  ___clzti2
+-  ___ctzsi2
+-  ___ctzdi2
+-  ___ctzti2
+-  ___popcountsi2
+-  ___popcountdi2
+-  ___popcountti2
+-  ___paritysi2
+-  ___paritydi2
+-  ___parityti2
+-}
+-
+-%inherit GCC_3.4.2 GCC_3.4
+-GCC_3.4.2 {
+-  # Used to deal with trampoline initialization on some platforms
+-  ___enable_execute_stack
+-  ___trampoline_setup
+-}
+-
+-%inherit GCC_3.4.4 GCC_3.4.2
+-GCC_3.4.4 {
+-  # libgcc2 TImode arithmetic (for 64-bit targets).
+-  ___absvti2
+-  ___addvti3
+-  ___mulvti3
+-  ___negvti2
+-  ___subvti3
+-}
+-
+-%inherit GCC_4.0.0 GCC_3.4.4
+-GCC_4.0.0 {
+-  # libgcc2 __builtin_powi helpers.
+-  ___powisf2
+-  ___powidf2
+-  ___powixf2
+-  ___powitf2
+-
+-  # c99 compliant complex arithmetic
+-  ___divsc3
+-  ___divdc3
+-  ___divxc3
+-  ___divtc3
+-  ___mulsc3
+-  ___muldc3
+-  ___mulxc3
+-  ___multc3
+-}
+-
+ %inherit GCC_4.1.0 GCC_4.0.0
+ GCC_4.1.0 {
+-  ___smulsi3_highpart
+-  ___umulsi3_highpart
+-}
+-
+-%inherit GCC_4.2.0 GCC_4.1.0
+-GCC_4.2.0 {
+-  # unsigned-to-floating conversions
+-  ___floatunsisf
+-  ___floatunsidf
+-  ___floatunsixf
+-  ___floatunsitf
+-  ___floatundidf
+-  ___floatundisf
+-  ___floatundixf
+-  ___floatunditf
+-  ___floatuntidf
+-  ___floatuntisf
+-  ___floatuntixf
+-  ___floatuntitf
+-  __Unwind_GetIPInfo
+-}
+-
+-%inherit GCC_4.3.0 GCC_4.2.0
+-GCC_4.3.0 {
+-  # byte swapping routines
+-  ___bswapsi2
+-  ___bswapdi2
+-  ___emutls_get_address
+-  ___emutls_register_common
+-  ___ffssi2
+-  ___extendxftf2
+-  ___trunctfxf2
+-
+-  # fixed-point routines
+-  ___addqq3
+-  ___addhq3
+-  ___addsq3
+-  ___adddq3
+-  ___addtq3
+-  ___adduqq3
+-  ___adduhq3
+-  ___addusq3
+-  ___addudq3
+-  ___addutq3
+-  ___addha3
+-  ___addsa3
+-  ___addda3
+-  ___addta3
+-  ___adduha3
+-  ___addusa3
+-  ___adduda3
+-  ___adduta3
+-  ___ssaddqq3
+-  ___ssaddhq3
+-  ___ssaddsq3
+-  ___ssadddq3
+-  ___ssaddtq3
+-  ___ssaddha3
+-  ___ssaddsa3
+-  ___ssaddda3
+-  ___ssaddta3
+-  ___usadduqq3
+-  ___usadduhq3
+-  ___usaddusq3
+-  ___usaddudq3
+-  ___usaddutq3
+-  ___usadduha3
+-  ___usaddusa3
+-  ___usadduda3
+-  ___usadduta3
+-  ___subqq3
+-  ___subhq3
+-  ___subsq3
+-  ___subdq3
+-  ___subtq3
+-  ___subuqq3
+-  ___subuhq3
+-  ___subusq3
+-  ___subudq3
+-  ___subutq3
+-  ___subha3
+-  ___subsa3
+-  ___subda3
+-  ___subta3
+-  ___subuha3
+-  ___subusa3
+-  ___subuda3
+-  ___subuta3
+-  ___sssubqq3
+-  ___sssubhq3
+-  ___sssubsq3
+-  ___sssubdq3
+-  ___sssubtq3
+-  ___sssubha3
+-  ___sssubsa3
+-  ___sssubda3
+-  ___sssubta3
+-  ___ussubuqq3
+-  ___ussubuhq3
+-  ___ussubusq3
+-  ___ussubudq3
+-  ___ussubutq3
+-  ___ussubuha3
+-  ___ussubusa3
+-  ___ussubuda3
+-  ___ussubuta3
+-  ___mulqq3
+-  ___mulhq3
+-  ___mulsq3
+-  ___muldq3
+-  ___multq3
+-  ___muluqq3
+-  ___muluhq3
+-  ___mulusq3
+-  ___muludq3
+-  ___mulutq3
+-  ___mulha3
+-  ___mulsa3
+-  ___mulda3
+-  ___multa3
+-  ___muluha3
+-  ___mulusa3
+-  ___muluda3
+-  ___muluta3
+-  ___ssmulqq3
+-  ___ssmulhq3
+-  ___ssmulsq3
+-  ___ssmuldq3
+-  ___ssmultq3
+-  ___ssmulha3
+-  ___ssmulsa3
+-  ___ssmulda3
+-  ___ssmulta3
+-  ___usmuluqq3
+-  ___usmuluhq3
+-  ___usmulusq3
+-  ___usmuludq3
+-  ___usmulutq3
+-  ___usmuluha3
+-  ___usmulusa3
+-  ___usmuluda3
+-  ___usmuluta3
+-  ___divqq3
+-  ___divhq3
+-  ___divsq3
+-  ___divdq3
+-  ___divtq3
+-  ___divha3
+-  ___divsa3
+-  ___divda3
+-  ___divta3
+-  ___udivuqq3
+-  ___udivuhq3
+-  ___udivusq3
+-  ___udivudq3
+-  ___udivutq3
+-  ___udivuha3
+-  ___udivusa3
+-  ___udivuda3
+-  ___udivuta3
+-  ___ssdivqq3
+-  ___ssdivhq3
+-  ___ssdivsq3
+-  ___ssdivdq3
+-  ___ssdivtq3
+-  ___ssdivha3
+-  ___ssdivsa3
+-  ___ssdivda3
+-  ___ssdivta3
+-  ___usdivuqq3
+-  ___usdivuhq3
+-  ___usdivusq3
+-  ___usdivudq3
+-  ___usdivutq3
+-  ___usdivuha3
+-  ___usdivusa3
+-  ___usdivuda3
+-  ___usdivuta3
+-  ___negqq2
+-  ___neghq2
+-  ___negsq2
+-  ___negdq2
+-  ___negtq2
+-  ___neguqq2
+-  ___neguhq2
+-  ___negusq2
+-  ___negudq2
+-  ___negutq2
+-  ___negha2
+-  ___negsa2
+-  ___negda2
+-  ___negta2
+-  ___neguha2
+-  ___negusa2
+-  ___neguda2
+-  ___neguta2
+-  ___ssnegqq2
+-  ___ssneghq2
+-  ___ssnegsq2
+-  ___ssnegdq2
+-  ___ssnegtq2
+-  ___ssnegha2
+-  ___ssnegsa2
+-  ___ssnegda2
+-  ___ssnegta2
+-  ___usneguqq2
+-  ___usneguhq2
+-  ___usnegusq2
+-  ___usnegudq2
+-  ___usnegutq2
+-  ___usneguha2
+-  ___usnegusa2
+-  ___usneguda2
+-  ___usneguta2
+-  ___ashlqq3
+-  ___ashlhq3
+-  ___ashlsq3
+-  ___ashldq3
+-  ___ashltq3
+-  ___ashluqq3
+-  ___ashluhq3
+-  ___ashlusq3
+-  ___ashludq3
+-  ___ashlutq3
+-  ___ashlha3
+-  ___ashlsa3
+-  ___ashlda3
+-  ___ashlta3
+-  ___ashluha3
+-  ___ashlusa3
+-  ___ashluda3
+-  ___ashluta3
+-  ___ashrqq3
+-  ___ashrhq3
+-  ___ashrsq3
+-  ___ashrdq3
+-  ___ashrtq3
+-  ___ashrha3
+-  ___ashrsa3
+-  ___ashrda3
+-  ___ashrta3
+-  ___lshruqq3
+-  ___lshruhq3
+-  ___lshrusq3
+-  ___lshrudq3
+-  ___lshrutq3
+-  ___lshruha3
+-  ___lshrusa3
+-  ___lshruda3
+-  ___lshruta3
+-  ___ssashlqq3
+-  ___ssashlhq3
+-  ___ssashlsq3
+-  ___ssashldq3
+-  ___ssashltq3
+-  ___ssashlha3
+-  ___ssashlsa3
+-  ___ssashlda3
+-  ___ssashlta3
+-  ___usashluqq3
+-  ___usashluhq3
+-  ___usashlusq3
+-  ___usashludq3
+-  ___usashlutq3
+-  ___usashluha3
+-  ___usashlusa3
+-  ___usashluda3
+-  ___usashluta3
+-  ___cmpqq2
+-  ___cmphq2
+-  ___cmpsq2
+-  ___cmpdq2
+-  ___cmptq2
+-  ___cmpuqq2
+-  ___cmpuhq2
+-  ___cmpusq2
+-  ___cmpudq2
+-  ___cmputq2
+-  ___cmpha2
+-  ___cmpsa2
+-  ___cmpda2
+-  ___cmpta2
+-  ___cmpuha2
+-  ___cmpusa2
+-  ___cmpuda2
+-  ___cmputa2
+-  ___fractqqhq2
+-  ___fractqqsq2
+-  ___fractqqdq2
+-  ___fractqqtq2
+-  ___fractqqha
+-  ___fractqqsa
+-  ___fractqqda
+-  ___fractqqta
+-  ___fractqquqq
+-  ___fractqquhq
+-  ___fractqqusq
+-  ___fractqqudq
+-  ___fractqqutq
+-  ___fractqquha
+-  ___fractqqusa
+-  ___fractqquda
+-  ___fractqquta
+-  ___fractqqqi
+-  ___fractqqhi
+-  ___fractqqsi
+-  ___fractqqdi
+-  ___fractqqti
+-  ___fractqqsf
+-  ___fractqqdf
+-  ___fracthqqq2
+-  ___fracthqsq2
+-  ___fracthqdq2
+-  ___fracthqtq2
+-  ___fracthqha
+-  ___fracthqsa
+-  ___fracthqda
+-  ___fracthqta
+-  ___fracthquqq
+-  ___fracthquhq
+-  ___fracthqusq
+-  ___fracthqudq
+-  ___fracthqutq
+-  ___fracthquha
+-  ___fracthqusa
+-  ___fracthquda
+-  ___fracthquta
+-  ___fracthqqi
+-  ___fracthqhi
+-  ___fracthqsi
+-  ___fracthqdi
+-  ___fracthqti
+-  ___fracthqsf
+-  ___fracthqdf
+-  ___fractsqqq2
+-  ___fractsqhq2
+-  ___fractsqdq2
+-  ___fractsqtq2
+-  ___fractsqha
+-  ___fractsqsa
+-  ___fractsqda
+-  ___fractsqta
+-  ___fractsquqq
+-  ___fractsquhq
+-  ___fractsqusq
+-  ___fractsqudq
+-  ___fractsqutq
+-  ___fractsquha
+-  ___fractsqusa
+-  ___fractsquda
+-  ___fractsquta
+-  ___fractsqqi
+-  ___fractsqhi
+-  ___fractsqsi
+-  ___fractsqdi
+-  ___fractsqti
+-  ___fractsqsf
+-  ___fractsqdf
+-  ___fractdqqq2
+-  ___fractdqhq2
+-  ___fractdqsq2
+-  ___fractdqtq2
+-  ___fractdqha
+-  ___fractdqsa
+-  ___fractdqda
+-  ___fractdqta
+-  ___fractdquqq
+-  ___fractdquhq
+-  ___fractdqusq
+-  ___fractdqudq
+-  ___fractdqutq
+-  ___fractdquha
+-  ___fractdqusa
+-  ___fractdquda
+-  ___fractdquta
+-  ___fractdqqi
+-  ___fractdqhi
+-  ___fractdqsi
+-  ___fractdqdi
+-  ___fractdqti
+-  ___fractdqsf
+-  ___fractdqdf
+-  ___fracttqqq2
+-  ___fracttqhq2
+-  ___fracttqsq2
+-  ___fracttqdq2
+-  ___fracttqha
+-  ___fracttqsa
+-  ___fracttqda
+-  ___fracttqta
+-  ___fracttquqq
+-  ___fracttquhq
+-  ___fracttqusq
+-  ___fracttqudq
+-  ___fracttqutq
+-  ___fracttquha
+-  ___fracttqusa
+-  ___fracttquda
+-  ___fracttquta
+-  ___fracttqqi
+-  ___fracttqhi
+-  ___fracttqsi
+-  ___fracttqdi
+-  ___fracttqti
+-  ___fracttqsf
+-  ___fracttqdf
+-  ___fracthaqq
+-  ___fracthahq
+-  ___fracthasq
+-  ___fracthadq
+-  ___fracthatq
+-  ___fracthasa2
+-  ___fracthada2
+-  ___fracthata2
+-  ___fracthauqq
+-  ___fracthauhq
+-  ___fracthausq
+-  ___fracthaudq
+-  ___fracthautq
+-  ___fracthauha
+-  ___fracthausa
+-  ___fracthauda
+-  ___fracthauta
+-  ___fracthaqi
+-  ___fracthahi
+-  ___fracthasi
+-  ___fracthadi
+-  ___fracthati
+-  ___fracthasf
+-  ___fracthadf
+-  ___fractsaqq
+-  ___fractsahq
+-  ___fractsasq
+-  ___fractsadq
+-  ___fractsatq
+-  ___fractsaha2
+-  ___fractsada2
+-  ___fractsata2
+-  ___fractsauqq
+-  ___fractsauhq
+-  ___fractsausq
+-  ___fractsaudq
+-  ___fractsautq
+-  ___fractsauha
+-  ___fractsausa
+-  ___fractsauda
+-  ___fractsauta
+-  ___fractsaqi
+-  ___fractsahi
+-  ___fractsasi
+-  ___fractsadi
+-  ___fractsati
+-  ___fractsasf
+-  ___fractsadf
+-  ___fractdaqq
+-  ___fractdahq
+-  ___fractdasq
+-  ___fractdadq
+-  ___fractdatq
+-  ___fractdaha2
+-  ___fractdasa2
+-  ___fractdata2
+-  ___fractdauqq
+-  ___fractdauhq
+-  ___fractdausq
+-  ___fractdaudq
+-  ___fractdautq
+-  ___fractdauha
+-  ___fractdausa
+-  ___fractdauda
+-  ___fractdauta
+-  ___fractdaqi
+-  ___fractdahi
+-  ___fractdasi
+-  ___fractdadi
+-  ___fractdati
+-  ___fractdasf
+-  ___fractdadf
+-  ___fracttaqq
+-  ___fracttahq
+-  ___fracttasq
+-  ___fracttadq
+-  ___fracttatq
+-  ___fracttaha2
+-  ___fracttasa2
+-  ___fracttada2
+-  ___fracttauqq
+-  ___fracttauhq
+-  ___fracttausq
+-  ___fracttaudq
+-  ___fracttautq
+-  ___fracttauha
+-  ___fracttausa
+-  ___fracttauda
+-  ___fracttauta
+-  ___fracttaqi
+-  ___fracttahi
+-  ___fracttasi
+-  ___fracttadi
+-  ___fracttati
+-  ___fracttasf
+-  ___fracttadf
+-  ___fractuqqqq
+-  ___fractuqqhq
+-  ___fractuqqsq
+-  ___fractuqqdq
+-  ___fractuqqtq
+-  ___fractuqqha
+-  ___fractuqqsa
+-  ___fractuqqda
+-  ___fractuqqta
+-  ___fractuqquhq2
+-  ___fractuqqusq2
+-  ___fractuqqudq2
+-  ___fractuqqutq2
+-  ___fractuqquha
+-  ___fractuqqusa
+-  ___fractuqquda
+-  ___fractuqquta
+-  ___fractuqqqi
+-  ___fractuqqhi
+-  ___fractuqqsi
+-  ___fractuqqdi
+-  ___fractuqqti
+-  ___fractuqqsf
+-  ___fractuqqdf
+-  ___fractuhqqq
+-  ___fractuhqhq
+-  ___fractuhqsq
+-  ___fractuhqdq
+-  ___fractuhqtq
+-  ___fractuhqha
+-  ___fractuhqsa
+-  ___fractuhqda
+-  ___fractuhqta
+-  ___fractuhquqq2
+-  ___fractuhqusq2
+-  ___fractuhqudq2
+-  ___fractuhqutq2
+-  ___fractuhquha
+-  ___fractuhqusa
+-  ___fractuhquda
+-  ___fractuhquta
+-  ___fractuhqqi
+-  ___fractuhqhi
+-  ___fractuhqsi
+-  ___fractuhqdi
+-  ___fractuhqti
+-  ___fractuhqsf
+-  ___fractuhqdf
+-  ___fractusqqq
+-  ___fractusqhq
+-  ___fractusqsq
+-  ___fractusqdq
+-  ___fractusqtq
+-  ___fractusqha
+-  ___fractusqsa
+-  ___fractusqda
+-  ___fractusqta
+-  ___fractusquqq2
+-  ___fractusquhq2
+-  ___fractusqudq2
+-  ___fractusqutq2
+-  ___fractusquha
+-  ___fractusqusa
+-  ___fractusquda
+-  ___fractusquta
+-  ___fractusqqi
+-  ___fractusqhi
+-  ___fractusqsi
+-  ___fractusqdi
+-  ___fractusqti
+-  ___fractusqsf
+-  ___fractusqdf
+-  ___fractudqqq
+-  ___fractudqhq
+-  ___fractudqsq
+-  ___fractudqdq
+-  ___fractudqtq
+-  ___fractudqha
+-  ___fractudqsa
+-  ___fractudqda
+-  ___fractudqta
+-  ___fractudquqq2
+-  ___fractudquhq2
+-  ___fractudqusq2
+-  ___fractudqutq2
+-  ___fractudquha
+-  ___fractudqusa
+-  ___fractudquda
+-  ___fractudquta
+-  ___fractudqqi
+-  ___fractudqhi
+-  ___fractudqsi
+-  ___fractudqdi
+-  ___fractudqti
+-  ___fractudqsf
+-  ___fractudqdf
+-  ___fractutqqq
+-  ___fractutqhq
+-  ___fractutqsq
+-  ___fractutqdq
+-  ___fractutqtq
+-  ___fractutqha
+-  ___fractutqsa
+-  ___fractutqda
+-  ___fractutqta
+-  ___fractutquqq2
+-  ___fractutquhq2
+-  ___fractutqusq2
+-  ___fractutqudq2
+-  ___fractutquha
+-  ___fractutqusa
+-  ___fractutquda
+-  ___fractutquta
+-  ___fractutqqi
+-  ___fractutqhi
+-  ___fractutqsi
+-  ___fractutqdi
+-  ___fractutqti
+-  ___fractutqsf
+-  ___fractutqdf
+-  ___fractuhaqq
+-  ___fractuhahq
+-  ___fractuhasq
+-  ___fractuhadq
+-  ___fractuhatq
+-  ___fractuhaha
+-  ___fractuhasa
+-  ___fractuhada
+-  ___fractuhata
+-  ___fractuhauqq
+-  ___fractuhauhq
+-  ___fractuhausq
+-  ___fractuhaudq
+-  ___fractuhautq
+-  ___fractuhausa2
+-  ___fractuhauda2
+-  ___fractuhauta2
+-  ___fractuhaqi
+-  ___fractuhahi
+-  ___fractuhasi
+-  ___fractuhadi
+-  ___fractuhati
+-  ___fractuhasf
+-  ___fractuhadf
+-  ___fractusaqq
+-  ___fractusahq
+-  ___fractusasq
+-  ___fractusadq
+-  ___fractusatq
+-  ___fractusaha
+-  ___fractusasa
+-  ___fractusada
+-  ___fractusata
+-  ___fractusauqq
+-  ___fractusauhq
+-  ___fractusausq
+-  ___fractusaudq
+-  ___fractusautq
+-  ___fractusauha2
+-  ___fractusauda2
+-  ___fractusauta2
+-  ___fractusaqi
+-  ___fractusahi
+-  ___fractusasi
+-  ___fractusadi
+-  ___fractusati
+-  ___fractusasf
+-  ___fractusadf
+-  ___fractudaqq
+-  ___fractudahq
+-  ___fractudasq
+-  ___fractudadq
+-  ___fractudatq
+-  ___fractudaha
+-  ___fractudasa
+-  ___fractudada
+-  ___fractudata
+-  ___fractudauqq
+-  ___fractudauhq
+-  ___fractudausq
+-  ___fractudaudq
+-  ___fractudautq
+-  ___fractudauha2
+-  ___fractudausa2
+-  ___fractudauta2
+-  ___fractudaqi
+-  ___fractudahi
+-  ___fractudasi
+-  ___fractudadi
+-  ___fractudati
+-  ___fractudasf
+-  ___fractudadf
+-  ___fractutaqq
+-  ___fractutahq
+-  ___fractutasq
+-  ___fractutadq
+-  ___fractutatq
+-  ___fractutaha
+-  ___fractutasa
+-  ___fractutada
+-  ___fractutata
+-  ___fractutauqq
+-  ___fractutauhq
+-  ___fractutausq
+-  ___fractutaudq
+-  ___fractutautq
+-  ___fractutauha2
+-  ___fractutausa2
+-  ___fractutauda2
+-  ___fractutaqi
+-  ___fractutahi
+-  ___fractutasi
+-  ___fractutadi
+-  ___fractutati
+-  ___fractutasf
+-  ___fractutadf
+-  ___fractqiqq
+-  ___fractqihq
+-  ___fractqisq
+-  ___fractqidq
+-  ___fractqitq
+-  ___fractqiha
+-  ___fractqisa
+-  ___fractqida
+-  ___fractqita
+-  ___fractqiuqq
+-  ___fractqiuhq
+-  ___fractqiusq
+-  ___fractqiudq
+-  ___fractqiutq
+-  ___fractqiuha
+-  ___fractqiusa
+-  ___fractqiuda
+-  ___fractqiuta
+-  ___fracthiqq
+-  ___fracthihq
+-  ___fracthisq
+-  ___fracthidq
+-  ___fracthitq
+-  ___fracthiha
+-  ___fracthisa
+-  ___fracthida
+-  ___fracthita
+-  ___fracthiuqq
+-  ___fracthiuhq
+-  ___fracthiusq
+-  ___fracthiudq
+-  ___fracthiutq
+-  ___fracthiuha
+-  ___fracthiusa
+-  ___fracthiuda
+-  ___fracthiuta
+-  ___fractsiqq
+-  ___fractsihq
+-  ___fractsisq
+-  ___fractsidq
+-  ___fractsitq
+-  ___fractsiha
+-  ___fractsisa
+-  ___fractsida
+-  ___fractsita
+-  ___fractsiuqq
+-  ___fractsiuhq
+-  ___fractsiusq
+-  ___fractsiudq
+-  ___fractsiutq
+-  ___fractsiuha
+-  ___fractsiusa
+-  ___fractsiuda
+-  ___fractsiuta
+-  ___fractdiqq
+-  ___fractdihq
+-  ___fractdisq
+-  ___fractdidq
+-  ___fractditq
+-  ___fractdiha
+-  ___fractdisa
+-  ___fractdida
+-  ___fractdita
+-  ___fractdiuqq
+-  ___fractdiuhq
+-  ___fractdiusq
+-  ___fractdiudq
+-  ___fractdiutq
+-  ___fractdiuha
+-  ___fractdiusa
+-  ___fractdiuda
+-  ___fractdiuta
+-  ___fracttiqq
+-  ___fracttihq
+-  ___fracttisq
+-  ___fracttidq
+-  ___fracttitq
+-  ___fracttiha
+-  ___fracttisa
+-  ___fracttida
+-  ___fracttita
+-  ___fracttiuqq
+-  ___fracttiuhq
+-  ___fracttiusq
+-  ___fracttiudq
+-  ___fracttiutq
+-  ___fracttiuha
+-  ___fracttiusa
+-  ___fracttiuda
+-  ___fracttiuta
+-  ___fractsfqq
+-  ___fractsfhq
+-  ___fractsfsq
+-  ___fractsfdq
+-  ___fractsftq
+-  ___fractsfha
+-  ___fractsfsa
+-  ___fractsfda
+-  ___fractsfta
+-  ___fractsfuqq
+-  ___fractsfuhq
+-  ___fractsfusq
+-  ___fractsfudq
+-  ___fractsfutq
+-  ___fractsfuha
+-  ___fractsfusa
+-  ___fractsfuda
+-  ___fractsfuta
+-  ___fractdfqq
+-  ___fractdfhq
+-  ___fractdfsq
+-  ___fractdfdq
+-  ___fractdftq
+-  ___fractdfha
+-  ___fractdfsa
+-  ___fractdfda
+-  ___fractdfta
+-  ___fractdfuqq
+-  ___fractdfuhq
+-  ___fractdfusq
+-  ___fractdfudq
+-  ___fractdfutq
+-  ___fractdfuha
+-  ___fractdfusa
+-  ___fractdfuda
+-  ___fractdfuta
+-  ___satfractqqhq2
+-  ___satfractqqsq2
+-  ___satfractqqdq2
+-  ___satfractqqtq2
+-  ___satfractqqha
+-  ___satfractqqsa
+-  ___satfractqqda
+-  ___satfractqqta
+-  ___satfractqquqq
+-  ___satfractqquhq
+-  ___satfractqqusq
+-  ___satfractqqudq
+-  ___satfractqqutq
+-  ___satfractqquha
+-  ___satfractqqusa
+-  ___satfractqquda
+-  ___satfractqquta
+-  ___satfracthqqq2
+-  ___satfracthqsq2
+-  ___satfracthqdq2
+-  ___satfracthqtq2
+-  ___satfracthqha
+-  ___satfracthqsa
+-  ___satfracthqda
+-  ___satfracthqta
+-  ___satfracthquqq
+-  ___satfracthquhq
+-  ___satfracthqusq
+-  ___satfracthqudq
+-  ___satfracthqutq
+-  ___satfracthquha
+-  ___satfracthqusa
+-  ___satfracthquda
+-  ___satfracthquta
+-  ___satfractsqqq2
+-  ___satfractsqhq2
+-  ___satfractsqdq2
+-  ___satfractsqtq2
+-  ___satfractsqha
+-  ___satfractsqsa
+-  ___satfractsqda
+-  ___satfractsqta
+-  ___satfractsquqq
+-  ___satfractsquhq
+-  ___satfractsqusq
+-  ___satfractsqudq
+-  ___satfractsqutq
+-  ___satfractsquha
+-  ___satfractsqusa
+-  ___satfractsquda
+-  ___satfractsquta
+-  ___satfractdqqq2
+-  ___satfractdqhq2
+-  ___satfractdqsq2
+-  ___satfractdqtq2
+-  ___satfractdqha
+-  ___satfractdqsa
+-  ___satfractdqda
+-  ___satfractdqta
+-  ___satfractdquqq
+-  ___satfractdquhq
+-  ___satfractdqusq
+-  ___satfractdqudq
+-  ___satfractdqutq
+-  ___satfractdquha
+-  ___satfractdqusa
+-  ___satfractdquda
+-  ___satfractdquta
+-  ___satfracttqqq2
+-  ___satfracttqhq2
+-  ___satfracttqsq2
+-  ___satfracttqdq2
+-  ___satfracttqha
+-  ___satfracttqsa
+-  ___satfracttqda
+-  ___satfracttqta
+-  ___satfracttquqq
+-  ___satfracttquhq
+-  ___satfracttqusq
+-  ___satfracttqudq
+-  ___satfracttqutq
+-  ___satfracttquha
+-  ___satfracttqusa
+-  ___satfracttquda
+-  ___satfracttquta
+-  ___satfracthaqq
+-  ___satfracthahq
+-  ___satfracthasq
+-  ___satfracthadq
+-  ___satfracthatq
+-  ___satfracthasa2
+-  ___satfracthada2
+-  ___satfracthata2
+-  ___satfracthauqq
+-  ___satfracthauhq
+-  ___satfracthausq
+-  ___satfracthaudq
+-  ___satfracthautq
+-  ___satfracthauha
+-  ___satfracthausa
+-  ___satfracthauda
+-  ___satfracthauta
+-  ___satfractsaqq
+-  ___satfractsahq
+-  ___satfractsasq
+-  ___satfractsadq
+-  ___satfractsatq
+-  ___satfractsaha2
+-  ___satfractsada2
+-  ___satfractsata2
+-  ___satfractsauqq
+-  ___satfractsauhq
+-  ___satfractsausq
+-  ___satfractsaudq
+-  ___satfractsautq
+-  ___satfractsauha
+-  ___satfractsausa
+-  ___satfractsauda
+-  ___satfractsauta
+-  ___satfractdaqq
+-  ___satfractdahq
+-  ___satfractdasq
+-  ___satfractdadq
+-  ___satfractdatq
+-  ___satfractdaha2
+-  ___satfractdasa2
+-  ___satfractdata2
+-  ___satfractdauqq
+-  ___satfractdauhq
+-  ___satfractdausq
+-  ___satfractdaudq
+-  ___satfractdautq
+-  ___satfractdauha
+-  ___satfractdausa
+-  ___satfractdauda
+-  ___satfractdauta
+-  ___satfracttaqq
+-  ___satfracttahq
+-  ___satfracttasq
+-  ___satfracttadq
+-  ___satfracttatq
+-  ___satfracttaha2
+-  ___satfracttasa2
+-  ___satfracttada2
+-  ___satfracttauqq
+-  ___satfracttauhq
+-  ___satfracttausq
+-  ___satfracttaudq
+-  ___satfracttautq
+-  ___satfracttauha
+-  ___satfracttausa
+-  ___satfracttauda
+-  ___satfracttauta
+-  ___satfractuqqqq
+-  ___satfractuqqhq
+-  ___satfractuqqsq
+-  ___satfractuqqdq
+-  ___satfractuqqtq
+-  ___satfractuqqha
+-  ___satfractuqqsa
+-  ___satfractuqqda
+-  ___satfractuqqta
+-  ___satfractuqquhq2
+-  ___satfractuqqusq2
+-  ___satfractuqqudq2
+-  ___satfractuqqutq2
+-  ___satfractuqquha
+-  ___satfractuqqusa
+-  ___satfractuqquda
+-  ___satfractuqquta
+-  ___satfractuhqqq
+-  ___satfractuhqhq
+-  ___satfractuhqsq
+-  ___satfractuhqdq
+-  ___satfractuhqtq
+-  ___satfractuhqha
+-  ___satfractuhqsa
+-  ___satfractuhqda
+-  ___satfractuhqta
+-  ___satfractuhquqq2
+-  ___satfractuhqusq2
+-  ___satfractuhqudq2
+-  ___satfractuhqutq2
+-  ___satfractuhquha
+-  ___satfractuhqusa
+-  ___satfractuhquda
+-  ___satfractuhquta
+-  ___satfractusqqq
+-  ___satfractusqhq
+-  ___satfractusqsq
+-  ___satfractusqdq
+-  ___satfractusqtq
+-  ___satfractusqha
+-  ___satfractusqsa
+-  ___satfractusqda
+-  ___satfractusqta
+-  ___satfractusquqq2
+-  ___satfractusquhq2
+-  ___satfractusqudq2
+-  ___satfractusqutq2
+-  ___satfractusquha
+-  ___satfractusqusa
+-  ___satfractusquda
+-  ___satfractusquta
+-  ___satfractudqqq
+-  ___satfractudqhq
+-  ___satfractudqsq
+-  ___satfractudqdq
+-  ___satfractudqtq
+-  ___satfractudqha
+-  ___satfractudqsa
+-  ___satfractudqda
+-  ___satfractudqta
+-  ___satfractudquqq2
+-  ___satfractudquhq2
+-  ___satfractudqusq2
+-  ___satfractudqutq2
+-  ___satfractudquha
+-  ___satfractudqusa
+-  ___satfractudquda
+-  ___satfractudquta
+-  ___satfractutqqq
+-  ___satfractutqhq
+-  ___satfractutqsq
+-  ___satfractutqdq
+-  ___satfractutqtq
+-  ___satfractutqha
+-  ___satfractutqsa
+-  ___satfractutqda
+-  ___satfractutqta
+-  ___satfractutquqq2
+-  ___satfractutquhq2
+-  ___satfractutqusq2
+-  ___satfractutqudq2
+-  ___satfractutquha
+-  ___satfractutqusa
+-  ___satfractutquda
+-  ___satfractutquta
+-  ___satfractuhaqq
+-  ___satfractuhahq
+-  ___satfractuhasq
+-  ___satfractuhadq
+-  ___satfractuhatq
+-  ___satfractuhaha
+-  ___satfractuhasa
+-  ___satfractuhada
+-  ___satfractuhata
+-  ___satfractuhauqq
+-  ___satfractuhauhq
+-  ___satfractuhausq
+-  ___satfractuhaudq
+-  ___satfractuhautq
+-  ___satfractuhausa2
+-  ___satfractuhauda2
+-  ___satfractuhauta2
+-  ___satfractusaqq
+-  ___satfractusahq
+-  ___satfractusasq
+-  ___satfractusadq
+-  ___satfractusatq
+-  ___satfractusaha
+-  ___satfractusasa
+-  ___satfractusada
+-  ___satfractusata
+-  ___satfractusauqq
+-  ___satfractusauhq
+-  ___satfractusausq
+-  ___satfractusaudq
+-  ___satfractusautq
+-  ___satfractusauha2
+-  ___satfractusauda2
+-  ___satfractusauta2
+-  ___satfractudaqq
+-  ___satfractudahq
+-  ___satfractudasq
+-  ___satfractudadq
+-  ___satfractudatq
+-  ___satfractudaha
+-  ___satfractudasa
+-  ___satfractudada
+-  ___satfractudata
+-  ___satfractudauqq
+-  ___satfractudauhq
+-  ___satfractudausq
+-  ___satfractudaudq
+-  ___satfractudautq
+-  ___satfractudauha2
+-  ___satfractudausa2
+-  ___satfractudauta2
+-  ___satfractutaqq
+-  ___satfractutahq
+-  ___satfractutasq
+-  ___satfractutadq
+-  ___satfractutatq
+-  ___satfractutaha
+-  ___satfractutasa
+-  ___satfractutada
+-  ___satfractutata
+-  ___satfractutauqq
+-  ___satfractutauhq
+-  ___satfractutausq
+-  ___satfractutaudq
+-  ___satfractutautq
+-  ___satfractutauha2
+-  ___satfractutausa2
+-  ___satfractutauda2
+-  ___satfractqiqq
+-  ___satfractqihq
+-  ___satfractqisq
+-  ___satfractqidq
+-  ___satfractqitq
+-  ___satfractqiha
+-  ___satfractqisa
+-  ___satfractqida
+-  ___satfractqita
+-  ___satfractqiuqq
+-  ___satfractqiuhq
+-  ___satfractqiusq
+-  ___satfractqiudq
+-  ___satfractqiutq
+-  ___satfractqiuha
+-  ___satfractqiusa
+-  ___satfractqiuda
+-  ___satfractqiuta
+-  ___satfracthiqq
+-  ___satfracthihq
+-  ___satfracthisq
+-  ___satfracthidq
+-  ___satfracthitq
+-  ___satfracthiha
+-  ___satfracthisa
+-  ___satfracthida
+-  ___satfracthita
+-  ___satfracthiuqq
+-  ___satfracthiuhq
+-  ___satfracthiusq
+-  ___satfracthiudq
+-  ___satfracthiutq
+-  ___satfracthiuha
+-  ___satfracthiusa
+-  ___satfracthiuda
+-  ___satfracthiuta
+-  ___satfractsiqq
+-  ___satfractsihq
+-  ___satfractsisq
+-  ___satfractsidq
+-  ___satfractsitq
+-  ___satfractsiha
+-  ___satfractsisa
+-  ___satfractsida
+-  ___satfractsita
+-  ___satfractsiuqq
+-  ___satfractsiuhq
+-  ___satfractsiusq
+-  ___satfractsiudq
+-  ___satfractsiutq
+-  ___satfractsiuha
+-  ___satfractsiusa
+-  ___satfractsiuda
+-  ___satfractsiuta
+-  ___satfractdiqq
+-  ___satfractdihq
+-  ___satfractdisq
+-  ___satfractdidq
+-  ___satfractditq
+-  ___satfractdiha
+-  ___satfractdisa
+-  ___satfractdida
+-  ___satfractdita
+-  ___satfractdiuqq
+-  ___satfractdiuhq
+-  ___satfractdiusq
+-  ___satfractdiudq
+-  ___satfractdiutq
+-  ___satfractdiuha
+-  ___satfractdiusa
+-  ___satfractdiuda
+-  ___satfractdiuta
+-  ___satfracttiqq
+-  ___satfracttihq
+-  ___satfracttisq
+-  ___satfracttidq
+-  ___satfracttitq
+-  ___satfracttiha
+-  ___satfracttisa
+-  ___satfracttida
+-  ___satfracttita
+-  ___satfracttiuqq
+-  ___satfracttiuhq
+-  ___satfracttiusq
+-  ___satfracttiudq
+-  ___satfracttiutq
+-  ___satfracttiuha
+-  ___satfracttiusa
+-  ___satfracttiuda
+-  ___satfracttiuta
+-  ___satfractsfqq
+-  ___satfractsfhq
+-  ___satfractsfsq
+-  ___satfractsfdq
+-  ___satfractsftq
+-  ___satfractsfha
+-  ___satfractsfsa
+-  ___satfractsfda
+-  ___satfractsfta
+-  ___satfractsfuqq
+-  ___satfractsfuhq
+-  ___satfractsfusq
+-  ___satfractsfudq
+-  ___satfractsfutq
+-  ___satfractsfuha
+-  ___satfractsfusa
+-  ___satfractsfuda
+-  ___satfractsfuta
+-  ___satfractdfqq
+-  ___satfractdfhq
+-  ___satfractdfsq
+-  ___satfractdfdq
+-  ___satfractdftq
+-  ___satfractdfha
+-  ___satfractdfsa
+-  ___satfractdfda
+-  ___satfractdfta
+-  ___satfractdfuqq
+-  ___satfractdfuhq
+-  ___satfractdfusq
+-  ___satfractdfudq
+-  ___satfractdfutq
+-  ___satfractdfuha
+-  ___satfractdfusa
+-  ___satfractdfuda
+-  ___satfractdfuta
+-  ___fractunsqqqi
+-  ___fractunsqqhi
+-  ___fractunsqqsi
+-  ___fractunsqqdi
+-  ___fractunsqqti
+-  ___fractunshqqi
+-  ___fractunshqhi
+-  ___fractunshqsi
+-  ___fractunshqdi
+-  ___fractunshqti
+-  ___fractunssqqi
+-  ___fractunssqhi
+-  ___fractunssqsi
+-  ___fractunssqdi
+-  ___fractunssqti
+-  ___fractunsdqqi
+-  ___fractunsdqhi
+-  ___fractunsdqsi
+-  ___fractunsdqdi
+-  ___fractunsdqti
+-  ___fractunstqqi
+-  ___fractunstqhi
+-  ___fractunstqsi
+-  ___fractunstqdi
+-  ___fractunstqti
+-  ___fractunshaqi
+-  ___fractunshahi
+-  ___fractunshasi
+-  ___fractunshadi
+-  ___fractunshati
+-  ___fractunssaqi
+-  ___fractunssahi
+-  ___fractunssasi
+-  ___fractunssadi
+-  ___fractunssati
+-  ___fractunsdaqi
+-  ___fractunsdahi
+-  ___fractunsdasi
+-  ___fractunsdadi
+-  ___fractunsdati
+-  ___fractunstaqi
+-  ___fractunstahi
+-  ___fractunstasi
+-  ___fractunstadi
+-  ___fractunstati
+-  ___fractunsuqqqi
+-  ___fractunsuqqhi
+-  ___fractunsuqqsi
+-  ___fractunsuqqdi
+-  ___fractunsuqqti
+-  ___fractunsuhqqi
+-  ___fractunsuhqhi
+-  ___fractunsuhqsi
+-  ___fractunsuhqdi
+-  ___fractunsuhqti
+-  ___fractunsusqqi
+-  ___fractunsusqhi
+-  ___fractunsusqsi
+-  ___fractunsusqdi
+-  ___fractunsusqti
+-  ___fractunsudqqi
+-  ___fractunsudqhi
+-  ___fractunsudqsi
+-  ___fractunsudqdi
+-  ___fractunsudqti
+-  ___fractunsutqqi
+-  ___fractunsutqhi
+-  ___fractunsutqsi
+-  ___fractunsutqdi
+-  ___fractunsutqti
+-  ___fractunsuhaqi
+-  ___fractunsuhahi
+-  ___fractunsuhasi
+-  ___fractunsuhadi
+-  ___fractunsuhati
+-  ___fractunsusaqi
+-  ___fractunsusahi
+-  ___fractunsusasi
+-  ___fractunsusadi
+-  ___fractunsusati
+-  ___fractunsudaqi
+-  ___fractunsudahi
+-  ___fractunsudasi
+-  ___fractunsudadi
+-  ___fractunsudati
+-  ___fractunsutaqi
+-  ___fractunsutahi
+-  ___fractunsutasi
+-  ___fractunsutadi
+-  ___fractunsutati
+-  ___fractunsqiqq
+-  ___fractunsqihq
+-  ___fractunsqisq
+-  ___fractunsqidq
+-  ___fractunsqitq
+-  ___fractunsqiha
+-  ___fractunsqisa
+-  ___fractunsqida
+-  ___fractunsqita
+-  ___fractunsqiuqq
+-  ___fractunsqiuhq
+-  ___fractunsqiusq
+-  ___fractunsqiudq
+-  ___fractunsqiutq
+-  ___fractunsqiuha
+-  ___fractunsqiusa
+-  ___fractunsqiuda
+-  ___fractunsqiuta
+-  ___fractunshiqq
+-  ___fractunshihq
+-  ___fractunshisq
+-  ___fractunshidq
+-  ___fractunshitq
+-  ___fractunshiha
+-  ___fractunshisa
+-  ___fractunshida
+-  ___fractunshita
+-  ___fractunshiuqq
+-  ___fractunshiuhq
+-  ___fractunshiusq
+-  ___fractunshiudq
+-  ___fractunshiutq
+-  ___fractunshiuha
+-  ___fractunshiusa
+-  ___fractunshiuda
+-  ___fractunshiuta
+-  ___fractunssiqq
+-  ___fractunssihq
+-  ___fractunssisq
+-  ___fractunssidq
+-  ___fractunssitq
+-  ___fractunssiha
+-  ___fractunssisa
+-  ___fractunssida
+-  ___fractunssita
+-  ___fractunssiuqq
+-  ___fractunssiuhq
+-  ___fractunssiusq
+-  ___fractunssiudq
+-  ___fractunssiutq
+-  ___fractunssiuha
+-  ___fractunssiusa
+-  ___fractunssiuda
+-  ___fractunssiuta
+-  ___fractunsdiqq
+-  ___fractunsdihq
+-  ___fractunsdisq
+-  ___fractunsdidq
+-  ___fractunsditq
+-  ___fractunsdiha
+-  ___fractunsdisa
+-  ___fractunsdida
+-  ___fractunsdita
+-  ___fractunsdiuqq
+-  ___fractunsdiuhq
+-  ___fractunsdiusq
+-  ___fractunsdiudq
+-  ___fractunsdiutq
+-  ___fractunsdiuha
+-  ___fractunsdiusa
+-  ___fractunsdiuda
+-  ___fractunsdiuta
+-  ___fractunstiqq
+-  ___fractunstihq
+-  ___fractunstisq
+-  ___fractunstidq
+-  ___fractunstitq
+-  ___fractunstiha
+-  ___fractunstisa
+-  ___fractunstida
+-  ___fractunstita
+-  ___fractunstiuqq
+-  ___fractunstiuhq
+-  ___fractunstiusq
+-  ___fractunstiudq
+-  ___fractunstiutq
+-  ___fractunstiuha
+-  ___fractunstiusa
+-  ___fractunstiuda
+-  ___fractunstiuta
+-  ___satfractunsqiqq
+-  ___satfractunsqihq
+-  ___satfractunsqisq
+-  ___satfractunsqidq
+-  ___satfractunsqitq
+-  ___satfractunsqiha
+-  ___satfractunsqisa
+-  ___satfractunsqida
+-  ___satfractunsqita
+-  ___satfractunsqiuqq
+-  ___satfractunsqiuhq
+-  ___satfractunsqiusq
+-  ___satfractunsqiudq
+-  ___satfractunsqiutq
+-  ___satfractunsqiuha
+-  ___satfractunsqiusa
+-  ___satfractunsqiuda
+-  ___satfractunsqiuta
+-  ___satfractunshiqq
+-  ___satfractunshihq
+-  ___satfractunshisq
+-  ___satfractunshidq
+-  ___satfractunshitq
+-  ___satfractunshiha
+-  ___satfractunshisa
+-  ___satfractunshida
+-  ___satfractunshita
+-  ___satfractunshiuqq
+-  ___satfractunshiuhq
+-  ___satfractunshiusq
+-  ___satfractunshiudq
+-  ___satfractunshiutq
+-  ___satfractunshiuha
+-  ___satfractunshiusa
+-  ___satfractunshiuda
+-  ___satfractunshiuta
+-  ___satfractunssiqq
+-  ___satfractunssihq
+-  ___satfractunssisq
+-  ___satfractunssidq
+-  ___satfractunssitq
+-  ___satfractunssiha
+-  ___satfractunssisa
+-  ___satfractunssida
+-  ___satfractunssita
+-  ___satfractunssiuqq
+-  ___satfractunssiuhq
+-  ___satfractunssiusq
+-  ___satfractunssiudq
+-  ___satfractunssiutq
+-  ___satfractunssiuha
+-  ___satfractunssiusa
+-  ___satfractunssiuda
+-  ___satfractunssiuta
+-  ___satfractunsdiqq
+-  ___satfractunsdihq
+-  ___satfractunsdisq
+-  ___satfractunsdidq
+-  ___satfractunsditq
+-  ___satfractunsdiha
+-  ___satfractunsdisa
+-  ___satfractunsdida
+-  ___satfractunsdita
+-  ___satfractunsdiuqq
+-  ___satfractunsdiuhq
+-  ___satfractunsdiusq
+-  ___satfractunsdiudq
+-  ___satfractunsdiutq
+-  ___satfractunsdiuha
+-  ___satfractunsdiusa
+-  ___satfractunsdiuda
+-  ___satfractunsdiuta
+-  ___satfractunstiqq
+-  ___satfractunstihq
+-  ___satfractunstisq
+-  ___satfractunstidq
+-  ___satfractunstitq
+-  ___satfractunstiha
+-  ___satfractunstisa
+-  ___satfractunstida
+-  ___satfractunstita
+-  ___satfractunstiuqq
+-  ___satfractunstiuhq
+-  ___satfractunstiusq
+-  ___satfractunstiudq
+-  ___satfractunstiutq
+-  ___satfractunstiuha
+-  ___satfractunstiusa
+-  ___satfractunstiuda
+-  ___satfractunstiuta
+-}
+-
+-%inherit GCC_4.4.0 GCC_4.3.0
+-GCC_4.4.0 {
+-  ___sync_fetch_and_add_1
+-  ___sync_fetch_and_sub_1
+-  ___sync_fetch_and_or_1
+-  ___sync_fetch_and_and_1
+-  ___sync_fetch_and_xor_1
+-  ___sync_fetch_and_nand_1
+-  ___sync_add_and_fetch_1
+-  ___sync_sub_and_fetch_1
+-  ___sync_or_and_fetch_1
+-  ___sync_and_and_fetch_1
+-  ___sync_xor_and_fetch_1
+-  ___sync_nand_and_fetch_1
+-  ___sync_bool_compare_and_swap_1
+-  ___sync_val_compare_and_swap_1
+-  ___sync_lock_test_and_set_1
+-
+-  ___sync_fetch_and_add_2
+-  ___sync_fetch_and_sub_2
+-  ___sync_fetch_and_or_2
+-  ___sync_fetch_and_and_2
+-  ___sync_fetch_and_xor_2
+-  ___sync_fetch_and_nand_2
+-  ___sync_add_and_fetch_2
+-  ___sync_sub_and_fetch_2
+-  ___sync_or_and_fetch_2
+-  ___sync_and_and_fetch_2
+-  ___sync_xor_and_fetch_2
+-  ___sync_nand_and_fetch_2
+-  ___sync_bool_compare_and_swap_2
+-  ___sync_val_compare_and_swap_2
+-  ___sync_lock_test_and_set_2
+-
+-  ___sync_fetch_and_add_4
+-  ___sync_fetch_and_sub_4
+-  ___sync_fetch_and_or_4
+-  ___sync_fetch_and_and_4
+-  ___sync_fetch_and_xor_4
+-  ___sync_fetch_and_nand_4
+-  ___sync_add_and_fetch_4
+-  ___sync_sub_and_fetch_4
+-  ___sync_or_and_fetch_4
+-  ___sync_and_and_fetch_4
+-  ___sync_xor_and_fetch_4
+-  ___sync_nand_and_fetch_4
+-  ___sync_bool_compare_and_swap_4
+-  ___sync_val_compare_and_swap_4
+-  ___sync_lock_test_and_set_4
+-
+-  ___sync_fetch_and_add_8
+-  ___sync_fetch_and_sub_8
+-  ___sync_fetch_and_or_8
+-  ___sync_fetch_and_and_8
+-  ___sync_fetch_and_xor_8
+-  ___sync_fetch_and_nand_8
+-  ___sync_add_and_fetch_8
+-  ___sync_sub_and_fetch_8
+-  ___sync_or_and_fetch_8
+-  ___sync_and_and_fetch_8
+-  ___sync_xor_and_fetch_8
+-  ___sync_nand_and_fetch_8
+-  ___sync_bool_compare_and_swap_8
+-  ___sync_val_compare_and_swap_8
+-  ___sync_lock_test_and_set_8
+-
+-  ___sync_fetch_and_add_16
+-  ___sync_fetch_and_sub_16
+-  ___sync_fetch_and_or_16
+-  ___sync_fetch_and_and_16
+-  ___sync_fetch_and_xor_16
+-  ___sync_fetch_and_nand_16
+-  ___sync_add_and_fetch_16
+-  ___sync_sub_and_fetch_16
+-  ___sync_or_and_fetch_16
+-  ___sync_and_and_fetch_16
+-  ___sync_xor_and_fetch_16
+-  ___sync_nand_and_fetch_16
+-  ___sync_bool_compare_and_swap_16
+-  ___sync_val_compare_and_swap_16
+-  ___sync_lock_test_and_set_16
+-
+-  ___sync_synchronize
+-}
+-
+-%inherit GCC_4.5.0 GCC_4.4.0
+-GCC_4.5.0 {
+-  ___unordxf2
+-  ___unordtf2
++  __smulsi3_highpart
++  __umulsi3_highpart
+ }
+diff --git a/libgcc/config/bfin/t-linux b/libgcc/config/bfin/t-linux
+index 1c42e48..8898157 100644
+--- a/libgcc/config/bfin/t-linux
++++ b/libgcc/config/bfin/t-linux
+@@ -1 +1,2 @@
+-SHLIB_MAPFILES = $(srcdir)/config/bfin/libgcc-glibc.ver
++SHLIB_MAPFILES += $(srcdir)/config/bfin/libgcc-glibc.ver
++SHLIB_MKMAP_OPTS = -v skip_underscore=1
+-- 
+2.7.4
+
diff --git a/package/gcc/6.3.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch b/package/gcc/6.3.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch
new file mode 100644 (file)
index 0000000..ce49de7
--- /dev/null
@@ -0,0 +1,59 @@
+From 9d9f97ca5d1ceba66677bf406c9b31027dc1f22e Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbx@openadk.org>
+Date: Fri, 19 Aug 2016 13:54:46 +0200
+Subject: [PATCH] libgcc: fix DWARF compilation with FDPIC targets
+
+The build of unwind-dw2-fde-dip.c currently fails for FDPIC targets with
+the following error:
+
+libgcc/unwind-dw2-fde-dip.c:167:31: error: storage size of 'load_base' isn't known
+   struct elf32_fdpic_loadaddr load_base;
+
+This patch addresses that by defining load_base with the appropriate
+type on FDPIC targets. It has been tested on FRV and Blackfin.
+
+Fixes PR gcc/68468.
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ libgcc/unwind-dw2-fde-dip.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c
+index f7a1c3f..801bce8 100644
+--- a/libgcc/unwind-dw2-fde-dip.c
++++ b/libgcc/unwind-dw2-fde-dip.c
+@@ -124,7 +124,11 @@ static struct frame_hdr_cache_element
+ {
+   _Unwind_Ptr pc_low;
+   _Unwind_Ptr pc_high;
++#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
++  struct elf32_fdpic_loadaddr load_base;
++#else
+   _Unwind_Ptr load_base;
++#endif
+   const ElfW(Phdr) *p_eh_frame_hdr;
+   const ElfW(Phdr) *p_dynamic;
+   struct frame_hdr_cache_element *link;
+@@ -163,7 +167,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
+   struct unw_eh_callback_data *data = (struct unw_eh_callback_data *) ptr;
+   const ElfW(Phdr) *phdr, *p_eh_frame_hdr, *p_dynamic;
+   long n, match;
+-#ifdef __FRV_FDPIC__
++#if defined __FRV_FDPIC__ || defined __BFIN_FDPIC__
+   struct elf32_fdpic_loadaddr load_base;
+ #else
+   _Unwind_Ptr load_base;
+@@ -347,7 +351,7 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
+           break;
+         }
+     }
+-# elif defined __FRV_FDPIC__ && defined __linux__
++# elif (defined __FRV_FDPIC__ || defined __BFIN_FDPIC__) && defined __linux__
+   data->dbase = load_base.got_value;
+ # else
+ #  error What is DW_EH_PE_datarel base on this platform?
+-- 
+2.7.4
+
diff --git a/package/gcc/6.3.0/895-bfin-define-REENTRANT.patch b/package/gcc/6.3.0/895-bfin-define-REENTRANT.patch
new file mode 100644 (file)
index 0000000..e2828a5
--- /dev/null
@@ -0,0 +1,17 @@
+enable _REENTRANT when -lpthread is used
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+diff -Nur gcc-6.2.0.orig/gcc/config/bfin/linux.h gcc-6.2.0/gcc/config/bfin/linux.h
+--- gcc-6.2.0.orig/gcc/config/bfin/linux.h     2016-01-04 15:30:50.000000000 +0100
++++ gcc-6.2.0/gcc/config/bfin/linux.h  2016-09-30 20:48:17.446636819 +0200
+@@ -38,6 +38,9 @@
+   "%{static:--start-group} %{mfast-fp:-lbffastfp} %G %L %{static:--end-group} \
+    %{!static:%{mfast-fp:-lbffastfp} %G}"
++#undef CPP_SPEC
++#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
++
+ #undef LINK_SPEC
+ #define LINK_SPEC "\
+   %{mfdpic: -m elf32bfinfd -z text} %{shared} %{pie} \
diff --git a/package/gcc/6.3.0/940-uclinux-enable-threads.patch b/package/gcc/6.3.0/940-uclinux-enable-threads.patch
new file mode 100644 (file)
index 0000000..5532656
--- /dev/null
@@ -0,0 +1,19 @@
+Enable POSIX threads for uClinux targets
+Reported upstream:
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71721
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+diff -Nur gcc-6.1.0.orig/gcc/config.gcc gcc-6.1.0/gcc/config.gcc
+--- gcc-6.1.0.orig/gcc/config.gcc      2016-04-11 12:14:59.000000000 +0200
++++ gcc-6.1.0/gcc/config.gcc   2016-07-02 20:04:25.732169982 +0200
+@@ -833,6 +833,9 @@
+ *-*-uclinux*)
+   extra_options="$extra_options gnu-user.opt"
+   use_gcc_stdint=wrap
++  case ${enable_threads} in
++    "" | yes | posix) thread_file='posix' ;;
++  esac
+   tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
+   ;;
+ *-*-rdos*)
diff --git a/package/gcc/6.3.0/941-mips-Add-support-for-mips-r6-musl.patch b/package/gcc/6.3.0/941-mips-Add-support-for-mips-r6-musl.patch
new file mode 100644 (file)
index 0000000..337d376
--- /dev/null
@@ -0,0 +1,43 @@
+From 83717065090bb8b954556d1216dd9dc397dc0243 Mon Sep 17 00:00:00 2001
+From: nsz <nsz@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 25 Aug 2016 14:13:02 +0000
+Subject: [PATCH] [mips] Add support for mips*r6-*-musl
+
+gcc/
+       * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
+       (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239760 138bc75d-0d04-0410-961f-82ee72b054a4
+
+[Vincent: tweak to not patch ChangeLog]
+
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
+---
+ gcc/config/mips/linux.h | 9 ++++++---
+ 1 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
+index fa253b6..dc51c45 100644
+--- a/gcc/config/mips/linux.h
++++ b/gcc/config/mips/linux.h
+@@ -38,10 +38,13 @@ along with GCC; see the file COPYING3.  If not see
+   "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
+ #undef MUSL_DYNAMIC_LINKER32
+-#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1"
++#define MUSL_DYNAMIC_LINKER32 \
++  "/lib/ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
+ #undef MUSL_DYNAMIC_LINKER64
+-#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips64%{EL:el}%{msoft-float:-sf}.so.1"
+-#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mipsn32%{EL:el}%{msoft-float:-sf}.so.1"
++#define MUSL_DYNAMIC_LINKER64 \
++  "/lib/ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
++#define MUSL_DYNAMIC_LINKERN32 \
++  "/lib/ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
+ #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
+ #define GNU_USER_DYNAMIC_LINKERN32 \
+-- 
+2.10.0
+
index 64d1a470cf2e5d4d3838c59e91475b97c3673cac..d8fbc1857d77f08df377c8bdfc1c60cad1064018 100644 (file)
@@ -97,7 +97,7 @@ config BR2_GCC_VERSION
        default "4.8.5"     if BR2_GCC_VERSION_4_8_X
        default "4.9.4"     if BR2_GCC_VERSION_4_9_X
        default "5.4.0"     if BR2_GCC_VERSION_5_X
-       default "6.2.0"     if BR2_GCC_VERSION_6_X
+       default "6.3.0"     if BR2_GCC_VERSION_6_X
        default "arc-2016.09-release" if BR2_GCC_VERSION_ARC
 
 config BR2_EXTRA_GCC_CONFIG_OPTIONS
index a4e60851fed633ab4042c2cbce17e11e3b2d18aa..1988237cac456e08fa5dbe2becf5ed93f62224a9 100644 (file)
@@ -8,8 +8,8 @@ sha512  47fdfeca0c0a624cdec9c4ae47137d056c918d5c386d4b96985bb3c8172aba377cb66cbc
 sha512  93abb78e16277454f41a8e9810f41f66c0fdffdc539a762ff6b67d3037f78db971378683fd2ebf707d1d51c059fad2161fe42d110c330027f40214b7db0f3efe  gcc-4.9.4.tar.bz2
 # From ftp://gcc.gnu.org/pub/gcc/releases/gcc-5.4.0/sha512.sum
 sha512  2941cc950c8f2409a314df497631f9b0266211aa74746c1839c46e04f1c7c299afe2528d1ef16ea39def408a644ba48f97519ec7a7dd37d260c3e9423514265b  gcc-5.4.0.tar.bz2
-# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-6.2.0/sha512.sum
-sha512  1e8b826a3d44b9d5899309894e20c03abeb352bf3d273b8ad63af814c0ee2911f1a83ce1cd4cdd2d1cb0b3e3c34e9b7ae1b2ab83dfc649ee817ab05247c76198  gcc-6.2.0.tar.bz2
+# From ftp://gcc.gnu.org/pub/gcc/releases/gcc-6.3.0/sha512.sum
+sha512  234dd9b1bdc9a9c6e352216a7ef4ccadc6c07f156006a59759c5e0e6a69f0abcdc14630eff11e3826dd6ba5933a8faa43043f3d1d62df6bd5ab1e82862f9bf78  gcc-6.3.0.tar.bz2
 
 # Locally calculated (fetched from Github)
 sha512  faae6dc3f7843412068a52de5919797cd23e6ed1b8d140c230d0381f13fd38af67baaa4a09e581c03602127da3dd2fab6f9f5d7ac5d4270585bd079c673dda9a  gcc-arc-2016.09-release.tar.gz