From: Gustavo Zacarias Date: Wed, 21 Dec 2016 15:29:53 +0000 (-0300) Subject: gcc: bump 6.x series to version 6.3.0 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=be1a3a3e4610deb9434329da643bf7b896989276;p=buildroot.git gcc: bump 6.x series to version 6.3.0 Signed-off-by: Gustavo Zacarias Signed-off-by: Peter Korsgaard --- 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 index 73d1f0d3a9..0000000000 --- a/package/gcc/6.2.0/100-uclibc-conf.patch +++ /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 index 2d0e7baa44..0000000000 --- a/package/gcc/6.2.0/301-missing-execinfo_h.patch +++ /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 - # 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 index 5efa7fd1bc..0000000000 --- a/package/gcc/6.2.0/810-arm-softfloat-libgcc.patch +++ /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 index b730059183..0000000000 --- a/package/gcc/6.2.0/830-arm_unbreak_armv4t.patch +++ /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 index af9fb1d6b2..0000000000 --- a/package/gcc/6.2.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 07453188b18a2cbe815917dbb893b4ebfdd793b6 Mon Sep 17 00:00:00 2001 -From: ktkachov -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 ---- - 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 index 1d9916f554..0000000000 --- a/package/gcc/6.2.0/860-cilk-wchar.patch +++ /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 ---- - 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 index 0598c76c2f..0000000000 --- a/package/gcc/6.2.0/870-xtensa-Fix-PR-target-78118.patch +++ /dev/null @@ -1,320 +0,0 @@ -From 0d2556fa652cc85b3d042e862a38dd07d454175a Mon Sep 17 00:00:00 2001 -From: Max Filippov -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 -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 ---- -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 index 0331814398..0000000000 --- a/package/gcc/6.2.0/871-xtensa-Fix-PR-target-78603.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 59cce7b304a8cbbb508ba21ab2f9052d3ee9a9e3 Mon Sep 17 00:00:00 2001 -From: Max Filippov -Date: Tue, 29 Nov 2016 13:09:17 -0800 -Subject: [PATCH 2/2] xtensa: Fix PR target/78603 - -2016-11-29 Max Filippov -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 ---- -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 index 6e63de0cd1..0000000000 --- a/package/gcc/6.2.0/890-fix-m68k-compile.patch +++ /dev/null @@ -1,15 +0,0 @@ -remove unused header, which breaks the toolchain building - -Signed-off-by: Waldemar Brodkorb - -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 - #include - - #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 index 754aa74e88..0000000000 --- a/package/gcc/6.2.0/891-fix-m68k-uclinux.patch +++ /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 - -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 index 73ee6c5faa..0000000000 --- a/package/gcc/6.2.0/892-libgcc-mkmap-symver-support-skip_underscore.patch +++ /dev/null @@ -1,60 +0,0 @@ -From ae9c3e354440c4a0f105a9eabfb2f77be085ebc1 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -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 ---- - 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 index 454295d0ed..0000000000 --- a/package/gcc/6.2.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch +++ /dev/null @@ -1,1944 +0,0 @@ -From 56d606931716de30a89a40dc69a9282c1b4e2880 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni -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 ---- - 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 - # . - --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 index ce49de7ee9..0000000000 --- a/package/gcc/6.2.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 9d9f97ca5d1ceba66677bf406c9b31027dc1f22e Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb -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 -Signed-off-by: Thomas Petazzoni ---- - 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 index e2828a5106..0000000000 --- a/package/gcc/6.2.0/895-bfin-define-REENTRANT.patch +++ /dev/null @@ -1,17 +0,0 @@ -enable _REENTRANT when -lpthread is used - -Signed-off-by: Waldemar Brodkorb - -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 index 5532656725..0000000000 --- a/package/gcc/6.2.0/940-uclinux-enable-threads.patch +++ /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 - -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 index 337d376b75..0000000000 --- a/package/gcc/6.2.0/941-mips-Add-support-for-mips-r6-musl.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 83717065090bb8b954556d1216dd9dc397dc0243 Mon Sep 17 00:00:00 2001 -From: nsz -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 ---- - 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 index 0000000000..73d1f0d3a9 --- /dev/null +++ b/package/gcc/6.3.0/100-uclibc-conf.patch @@ -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 index 0000000000..2d0e7baa44 --- /dev/null +++ b/package/gcc/6.3.0/301-missing-execinfo_h.patch @@ -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 + # 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 index 0000000000..5efa7fd1bc --- /dev/null +++ b/package/gcc/6.3.0/810-arm-softfloat-libgcc.patch @@ -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 index 0000000000..b730059183 --- /dev/null +++ b/package/gcc/6.3.0/830-arm_unbreak_armv4t.patch @@ -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 index 0000000000..af9fb1d6b2 --- /dev/null +++ b/package/gcc/6.3.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch @@ -0,0 +1,69 @@ +From 07453188b18a2cbe815917dbb893b4ebfdd793b6 Mon Sep 17 00:00:00 2001 +From: ktkachov +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 +--- + 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 index 0000000000..1d9916f554 --- /dev/null +++ b/package/gcc/6.3.0/860-cilk-wchar.patch @@ -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 +--- + 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 index 0000000000..0598c76c2f --- /dev/null +++ b/package/gcc/6.3.0/870-xtensa-Fix-PR-target-78118.patch @@ -0,0 +1,320 @@ +From 0d2556fa652cc85b3d042e862a38dd07d454175a Mon Sep 17 00:00:00 2001 +From: Max Filippov +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 +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 +--- +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 index 0000000000..0331814398 --- /dev/null +++ b/package/gcc/6.3.0/871-xtensa-Fix-PR-target-78603.patch @@ -0,0 +1,37 @@ +From 59cce7b304a8cbbb508ba21ab2f9052d3ee9a9e3 Mon Sep 17 00:00:00 2001 +From: Max Filippov +Date: Tue, 29 Nov 2016 13:09:17 -0800 +Subject: [PATCH 2/2] xtensa: Fix PR target/78603 + +2016-11-29 Max Filippov +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 +--- +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 index 0000000000..6e63de0cd1 --- /dev/null +++ b/package/gcc/6.3.0/890-fix-m68k-compile.patch @@ -0,0 +1,15 @@ +remove unused header, which breaks the toolchain building + +Signed-off-by: Waldemar Brodkorb + +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 + #include + + #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 index 0000000000..754aa74e88 --- /dev/null +++ b/package/gcc/6.3.0/891-fix-m68k-uclinux.patch @@ -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 + +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 index 0000000000..73ee6c5faa --- /dev/null +++ b/package/gcc/6.3.0/892-libgcc-mkmap-symver-support-skip_underscore.patch @@ -0,0 +1,60 @@ +From ae9c3e354440c4a0f105a9eabfb2f77be085ebc1 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 index 0000000000..454295d0ed --- /dev/null +++ b/package/gcc/6.3.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch @@ -0,0 +1,1944 @@ +From 56d606931716de30a89a40dc69a9282c1b4e2880 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +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 +--- + 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 + # . + +-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 index 0000000000..ce49de7ee9 --- /dev/null +++ b/package/gcc/6.3.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch @@ -0,0 +1,59 @@ +From 9d9f97ca5d1ceba66677bf406c9b31027dc1f22e Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb +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 +Signed-off-by: Thomas Petazzoni +--- + 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 index 0000000000..e2828a5106 --- /dev/null +++ b/package/gcc/6.3.0/895-bfin-define-REENTRANT.patch @@ -0,0 +1,17 @@ +enable _REENTRANT when -lpthread is used + +Signed-off-by: Waldemar Brodkorb + +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 index 0000000000..5532656725 --- /dev/null +++ b/package/gcc/6.3.0/940-uclinux-enable-threads.patch @@ -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 + +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 index 0000000000..337d376b75 --- /dev/null +++ b/package/gcc/6.3.0/941-mips-Add-support-for-mips-r6-musl.patch @@ -0,0 +1,43 @@ +From 83717065090bb8b954556d1216dd9dc397dc0243 Mon Sep 17 00:00:00 2001 +From: nsz +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 +--- + 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/Config.in.host b/package/gcc/Config.in.host index 64d1a470cf..d8fbc1857d 100644 --- a/package/gcc/Config.in.host +++ b/package/gcc/Config.in.host @@ -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 diff --git a/package/gcc/gcc.hash b/package/gcc/gcc.hash index a4e60851fe..1988237cac 100644 --- a/package/gcc/gcc.hash +++ b/package/gcc/gcc.hash @@ -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