summaryrefslogtreecommitdiff
path: root/packages/gcc
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-07-13 17:38:44 (GMT)
committerAlexey Neyman <stilor@att.net>2017-07-13 17:38:44 (GMT)
commitd7b1296b16ee15aad8b42ec4dc9766e9e87fe6eb (patch)
treea6251c04324659cc42c705859564408b0ccff944 /packages/gcc
parent45c5bb0f484cba724be2c6105801dcce9a1a82d9 (diff)
Update to GCC 6.4
Deleted patches have been picked up upstream. Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'packages/gcc')
-rw-r--r--packages/gcc/6.3.0/1100-ubsan-fix-check-empty-string.patch28
-rw-r--r--packages/gcc/6.3.0/111-alpha-bad-eh_frame.patch13
-rw-r--r--packages/gcc/6.3.0/870-xtensa-don-t-use-unwind-dw2-fde-dip-with-elf-targets.patch62
-rw-r--r--packages/gcc/6.3.0/871-xtensa-Fix-PR-target-78118.patch318
-rw-r--r--packages/gcc/6.3.0/872-xtensa-Fix-PR-target-78603.patch35
-rw-r--r--packages/gcc/6.3.0/873-gcc-xtensa-fix-fprintf-format-specifiers.patch74
-rw-r--r--packages/gcc/6.4.0/100-uclibc-conf.patch (renamed from packages/gcc/6.3.0/100-uclibc-conf.patch)0
-rw-r--r--packages/gcc/6.4.0/1000-libtool-leave-framework-alone.patch (renamed from packages/gcc/6.3.0/1000-libtool-leave-framework-alone.patch)0
-rw-r--r--packages/gcc/6.4.0/301-missing-execinfo_h.patch (renamed from packages/gcc/6.3.0/301-missing-execinfo_h.patch)0
-rw-r--r--packages/gcc/6.4.0/370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch (renamed from packages/gcc/6.3.0/370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch)0
-rw-r--r--packages/gcc/6.4.0/380-gcc-plugin-POSIX-include-sys-select-h.patch (renamed from packages/gcc/6.3.0/380-gcc-plugin-POSIX-include-sys-select-h.patch)0
-rw-r--r--packages/gcc/6.4.0/810-arm-softfloat-libgcc.patch (renamed from packages/gcc/6.3.0/810-arm-softfloat-libgcc.patch)0
-rw-r--r--packages/gcc/6.4.0/830-arm_unbreak_armv4t.patch (renamed from packages/gcc/6.3.0/830-arm_unbreak_armv4t.patch)0
-rw-r--r--packages/gcc/6.4.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch (renamed from packages/gcc/6.3.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch)0
-rw-r--r--packages/gcc/6.4.0/860-cilk-wchar.patch (renamed from packages/gcc/6.3.0/860-cilk-wchar.patch)0
-rw-r--r--packages/gcc/6.4.0/890-fix-m68k-compile.patch (renamed from packages/gcc/6.3.0/890-fix-m68k-compile.patch)0
-rw-r--r--packages/gcc/6.4.0/891-fix-m68k-uclinux.patch (renamed from packages/gcc/6.3.0/891-fix-m68k-uclinux.patch)0
-rw-r--r--packages/gcc/6.4.0/892-libgcc-mkmap-symver-support-skip_underscore.patch (renamed from packages/gcc/6.3.0/892-libgcc-mkmap-symver-support-skip_underscore.patch)0
-rw-r--r--packages/gcc/6.4.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch (renamed from packages/gcc/6.3.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch)0
-rw-r--r--packages/gcc/6.4.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch (renamed from packages/gcc/6.3.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch)0
-rw-r--r--packages/gcc/6.4.0/895-bfin-define-REENTRANT.patch (renamed from packages/gcc/6.3.0/895-bfin-define-REENTRANT.patch)0
-rw-r--r--packages/gcc/6.4.0/900-libgfortran-missing-include.patch (renamed from packages/gcc/6.3.0/900-libgfortran-missing-include.patch)0
-rw-r--r--packages/gcc/6.4.0/910-nios2-bad-multilib-default.patch (renamed from packages/gcc/6.3.0/910-nios2-bad-multilib-default.patch)0
-rw-r--r--packages/gcc/6.4.0/930-libgcc-disable-split-stack-nothreads.patch (renamed from packages/gcc/6.3.0/930-libgcc-disable-split-stack-nothreads.patch)0
-rw-r--r--packages/gcc/6.4.0/940-uclinux-enable-threads.patch (renamed from packages/gcc/6.3.0/940-uclinux-enable-threads.patch)0
-rw-r--r--packages/gcc/6.4.0/951-bionic-ndk.patch (renamed from packages/gcc/6.3.0/951-bionic-ndk.patch)0
-rw-r--r--packages/gcc/6.4.0/952-bionic-errno.patch (renamed from packages/gcc/6.3.0/952-bionic-errno.patch)0
-rw-r--r--packages/gcc/6.4.0/970-crystax.patch (renamed from packages/gcc/6.3.0/970-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/971-crystax.patch (renamed from packages/gcc/6.3.0/971-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/972-crystax.patch (renamed from packages/gcc/6.3.0/972-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/973-crystax.patch (renamed from packages/gcc/6.3.0/973-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/974-crystax.patch (renamed from packages/gcc/6.3.0/974-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/975-crystax.patch (renamed from packages/gcc/6.3.0/975-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/976-crystax.patch (renamed from packages/gcc/6.3.0/976-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/977-crystax.patch (renamed from packages/gcc/6.3.0/977-crystax.patch)0
-rw-r--r--packages/gcc/6.4.0/version.desc (renamed from packages/gcc/6.3.0/version.desc)0
36 files changed, 0 insertions, 530 deletions
diff --git a/packages/gcc/6.3.0/1100-ubsan-fix-check-empty-string.patch b/packages/gcc/6.3.0/1100-ubsan-fix-check-empty-string.patch
deleted file mode 100644
index c012719..0000000
--- a/packages/gcc/6.3.0/1100-ubsan-fix-check-empty-string.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 8db2cf6353c13f2a84cbe49b689654897906c499 Mon Sep 17 00:00:00 2001
-From: kyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sat, 3 Sep 2016 10:57:05 +0000
-Subject: [PATCH] gcc/ * ubsan.c (ubsan_use_new_style_p): Fix check for empty
- string.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239971 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
-
----
- gcc/ubsan.c | 2 +-
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-Index: gcc-6.3.0/gcc/ubsan.c
-===================================================================
---- gcc-6.3.0.orig/gcc/ubsan.c
-+++ gcc-6.3.0/gcc/ubsan.c
-@@ -1471,7 +1471,7 @@ ubsan_use_new_style_p (location_t loc)
-
- expanded_location xloc = expand_location (loc);
- if (xloc.file == NULL || strncmp (xloc.file, "\1", 2) == 0
-- || xloc.file == '\0' || xloc.file[0] == '\xff'
-+ || xloc.file[0] == '\0' || xloc.file[0] == '\xff'
- || xloc.file[1] == '\xff')
- return false;
-
diff --git a/packages/gcc/6.3.0/111-alpha-bad-eh_frame.patch b/packages/gcc/6.3.0/111-alpha-bad-eh_frame.patch
deleted file mode 100644
index 93f6e94..0000000
--- a/packages/gcc/6.3.0/111-alpha-bad-eh_frame.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80037
-
-diff --git a/libgcc/config/alpha/t-alpha b/libgcc/config/alpha/t-alpha
-index 0b6ffb1..0c2f840 100644
---- a/libgcc/config/alpha/t-alpha
-+++ b/libgcc/config/alpha/t-alpha
-@@ -1,2 +1,6 @@
- # This is a support routine for longlong.h, used by libgcc2.c.
- LIB2ADD += $(srcdir)/config/alpha/qrnnd.S
-+
-+# When GAS-generated unwind tables are created, they get created
-+# after the __FRAME_END__ terminator, which causes an ld error.
-+CRTSTUFF_T_CFLAGS = -fno-unwind-tables
diff --git a/packages/gcc/6.3.0/870-xtensa-don-t-use-unwind-dw2-fde-dip-with-elf-targets.patch b/packages/gcc/6.3.0/870-xtensa-don-t-use-unwind-dw2-fde-dip-with-elf-targets.patch
deleted file mode 100644
index 6e0ce6e..0000000
--- a/packages/gcc/6.3.0/870-xtensa-don-t-use-unwind-dw2-fde-dip-with-elf-targets.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From d28554ee61a1ab1263274d66386e4051bca0ce05 Mon Sep 17 00:00:00 2001
-From: jcmvbkbc <jcmvbkbc@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Tue, 18 Oct 2016 19:12:19 +0000
-Subject: [PATCH] xtensa: don't use unwind-dw2-fde-dip with elf targets
-
-Define LIB2ADDEH_XTENSA_UNWIND_DW2_FDE to unwind-dw2-fde.c in
-xtensa/t-elf and to unwind-dw2-fde-dip.c in xtensa/t-linux and use
-LIB2ADDEH_XTENSA_UNWIND_DW2_FDE in LIB2ADDEH definition.
-
-This fixes build for elf target with windowed xtensa core that currently
-breaks with the following error message:
-
- unwind-dw2-fde-dip.c:36:40: fatal error: elf.h: No such file or directory
-
-2016-10-18 Max Filippov <jcmvbkbc@gmail.com>
-libgcc/
- * config/xtensa/t-elf (LIB2ADDEH_XTENSA_UNWIND_DW2_FDE): New
- definition.
- * config/xtensa/t-linux (LIB2ADDEH_XTENSA_UNWIND_DW2_FDE): New
- definition.
- * config/xtensa/t-windowed (LIB2ADDEH): Use
- LIB2ADDEH_XTENSA_UNWIND_DW2_FDE defined by either xtensa/t-elf
- or xtensa/t-linux.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241313 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
- libgcc/config/xtensa/t-elf | 2 ++
- libgcc/config/xtensa/t-linux | 2 ++
- libgcc/config/xtensa/t-windowed | 2 +-
- 3 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/libgcc/config/xtensa/t-elf b/libgcc/config/xtensa/t-elf
-index 59d5121..967cf9b 100644
---- a/libgcc/config/xtensa/t-elf
-+++ b/libgcc/config/xtensa/t-elf
-@@ -3,3 +3,5 @@ CRTSTUFF_T_CFLAGS += -mlongcalls
- CRTSTUFF_T_CFLAGS_S += -mlongcalls
-
- HOST_LIBGCC2_CFLAGS += -mlongcalls
-+
-+LIB2ADDEH_XTENSA_UNWIND_DW2_FDE = $(srcdir)/unwind-dw2-fde.c
-diff --git a/libgcc/config/xtensa/t-linux b/libgcc/config/xtensa/t-linux
-index 6f4ae89..412ecca 100644
---- a/libgcc/config/xtensa/t-linux
-+++ b/libgcc/config/xtensa/t-linux
-@@ -1 +1,3 @@
- SHLIB_MAPFILES += $(srcdir)/config/xtensa/libgcc-glibc.ver
-+
-+LIB2ADDEH_XTENSA_UNWIND_DW2_FDE = $(srcdir)/unwind-dw2-fde-dip.c
-diff --git a/libgcc/config/xtensa/t-windowed b/libgcc/config/xtensa/t-windowed
-index a99156c..f140136 100644
---- a/libgcc/config/xtensa/t-windowed
-+++ b/libgcc/config/xtensa/t-windowed
-@@ -1,2 +1,2 @@
- LIB2ADDEH = $(srcdir)/config/xtensa/unwind-dw2-xtensa.c \
-- $(srcdir)/unwind-dw2-fde-dip.c $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
-+ $(LIB2ADDEH_XTENSA_UNWIND_DW2_FDE) $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
---
-2.1.4
-
diff --git a/packages/gcc/6.3.0/871-xtensa-Fix-PR-target-78118.patch b/packages/gcc/6.3.0/871-xtensa-Fix-PR-target-78118.patch
deleted file mode 100644
index c6ae103..0000000
--- a/packages/gcc/6.3.0/871-xtensa-Fix-PR-target-78118.patch
+++ /dev/null
@@ -1,318 +0,0 @@
-From bdda1689faf608ad7c83b5bd2e21a236b0047579 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Wed, 26 Oct 2016 08:02:51 +0000
-Subject: [PATCH] xtensa: Fix PR target/78118
-
-It started failing after the following commit: 32e90dc6a0cda45 ("PR
-rtl-optimization/61047").
-
-The change that made xtensa backend go ICE looks completely unrelated,
-and indeed, the issue is caused by the side effect of
-compute_frame_size() function call hidden in the
-INITIAL_ELIMINATION_OFFSET macro. This call updates the value of the
-xtensa_current_frame_size static variable, used in "return" instruction
-predicate. Prior to the change the value of xtensa_current_frame_size was
-set to 0 after the end of epilogue generation, which enabled the "return"
-instruction for the CALL0 ABI, but after the change the additional
-INITIAL_ELIMINATION_OFFSET calls make xtensa_current_frame_size non-zero
-and "return" pattern unavailable.
-
-Get rid of the global xtensa_current_frame_size and
-xtensa_callee_save_size variables by moving them into the
-machine_function structure. Implement predicate for the "return" pattern
-as a function. Don't communicate completion of epilogue generation
-through zeroing of xtensa_current_frame_size, add explicit epilogue_done
-variable to the machine_function structure. Don't update stack frame
-layout after the completion of reload.
-
-2016-10-26 Max Filippov <jcmvbkbc@gmail.com>
-gcc/
- * config/xtensa/xtensa-protos.h
- (xtensa_use_return_instruction_p): New prototype.
- * config/xtensa/xtensa.c (xtensa_current_frame_size,
- xtensa_callee_save_size): Remove.
- (struct machine_function): Add new fields: current_frame_size,
- callee_save_size, frame_laid_out and epilogue_done.
- (compute_frame_size, xtensa_expand_prologue,
- xtensa_expand_epilogue): Replace xtensa_callee_save_size with
- cfun->machine->callee_save_size and xtensa_current_frame_size
- with cfun->machine->current_frame_size.
- (compute_frame_size): Update cfun->machine->frame_laid_out and
- don't update frame layout after reload completion.
- (xtensa_expand_epilogue): Set cfun->machine->epilogue_done
- instead of zeroing xtensa_current_frame_size.
- (xtensa_use_return_instruction_p): New function.
- * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove
- declaration.
- (INITIAL_ELIMINATION_OFFSET): Use return value of
- compute_frame_size instead of xtensa_current_frame_size value.
- * config/xtensa/xtensa.md ("return" pattern): Use new predicate
- function xtensa_use_return_instruction_p instead of inline code.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
- 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/packages/gcc/6.3.0/872-xtensa-Fix-PR-target-78603.patch b/packages/gcc/6.3.0/872-xtensa-Fix-PR-target-78603.patch
deleted file mode 100644
index 669097c..0000000
--- a/packages/gcc/6.3.0/872-xtensa-Fix-PR-target-78603.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a568f3a84ff41ca272301a5fcf31071143e97e0f Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 29 Nov 2016 13:09:17 -0800
-Subject: [PATCH] xtensa: Fix PR target/78603
-
-2016-11-29 Max Filippov <jcmvbkbc@gmail.com>
-gcc/
- * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
- overhead loop start between a call and its CALL_ARG_LOCATION
- note.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
- 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/packages/gcc/6.3.0/873-gcc-xtensa-fix-fprintf-format-specifiers.patch b/packages/gcc/6.3.0/873-gcc-xtensa-fix-fprintf-format-specifiers.patch
deleted file mode 100644
index a5b0624..0000000
--- a/packages/gcc/6.3.0/873-gcc-xtensa-fix-fprintf-format-specifiers.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From a3d07c8a2a9564b57ebcae8463c1541a37c97c34 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Sun, 28 May 2017 19:56:56 -0700
-Subject: [PATCH] gcc: xtensa: fix fprintf format specifiers
-
-HOST_WIDE_INT may not be long as assumed in print_operand and
-xtensa_emit_call. Use HOST_WIDE_INT_PRINT_DEC/HOST_WIDE_INT_PRINT_HEX
-format strings instead of %ld/0x%lx. This fixes incorrect assembly code
-generation by the compiler running on armhf host.
-
-2017-05-28 Max Filippov <jcmvbkbc@gmail.com>
-gcc/
- * config/xtensa/xtensa.c (xtensa_emit_call): Use
- HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
- (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
- format string.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
- gcc/config/xtensa/xtensa.c | 11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
-index 70f698a..2bdf5cc 100644
---- a/gcc/config/xtensa/xtensa.c
-+++ b/gcc/config/xtensa/xtensa.c
-@@ -1776,7 +1776,8 @@ xtensa_emit_call (int callop, rtx *operands)
- rtx tgt = operands[callop];
-
- if (GET_CODE (tgt) == CONST_INT)
-- sprintf (result, "call%d\t0x%lx", WINDOW_SIZE, INTVAL (tgt));
-+ sprintf (result, "call%d\t" HOST_WIDE_INT_PRINT_HEX,
-+ WINDOW_SIZE, INTVAL (tgt));
- else if (register_operand (tgt, VOIDmode))
- sprintf (result, "callx%d\t%%%d", WINDOW_SIZE, callop);
- else
-@@ -2347,14 +2348,14 @@ print_operand (FILE *file, rtx x, int letter)
-
- case 'L':
- if (GET_CODE (x) == CONST_INT)
-- fprintf (file, "%ld", (32 - INTVAL (x)) & 0x1f);
-+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, (32 - INTVAL (x)) & 0x1f);
- else
- output_operand_lossage ("invalid %%L value");
- break;
-
- case 'R':
- if (GET_CODE (x) == CONST_INT)
-- fprintf (file, "%ld", INTVAL (x) & 0x1f);
-+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x) & 0x1f);
- else
- output_operand_lossage ("invalid %%R value");
- break;
-@@ -2368,7 +2369,7 @@ print_operand (FILE *file, rtx x, int letter)
-
- case 'd':
- if (GET_CODE (x) == CONST_INT)
-- fprintf (file, "%ld", INTVAL (x));
-+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
- else
- output_operand_lossage ("invalid %%d value");
- break;
-@@ -2433,7 +2434,7 @@ print_operand (FILE *file, rtx x, int letter)
- else if (GET_CODE (x) == MEM)
- output_address (GET_MODE (x), XEXP (x, 0));
- else if (GET_CODE (x) == CONST_INT)
-- fprintf (file, "%ld", INTVAL (x));
-+ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
- else
- output_addr_const (file, x);
- }
---
-2.1.4
-
diff --git a/packages/gcc/6.3.0/100-uclibc-conf.patch b/packages/gcc/6.4.0/100-uclibc-conf.patch
index 73d1f0d..73d1f0d 100644
--- a/packages/gcc/6.3.0/100-uclibc-conf.patch
+++ b/packages/gcc/6.4.0/100-uclibc-conf.patch
diff --git a/packages/gcc/6.3.0/1000-libtool-leave-framework-alone.patch b/packages/gcc/6.4.0/1000-libtool-leave-framework-alone.patch
index bce09eb..bce09eb 100644
--- a/packages/gcc/6.3.0/1000-libtool-leave-framework-alone.patch
+++ b/packages/gcc/6.4.0/1000-libtool-leave-framework-alone.patch
diff --git a/packages/gcc/6.3.0/301-missing-execinfo_h.patch b/packages/gcc/6.4.0/301-missing-execinfo_h.patch
index 2d0e7ba..2d0e7ba 100644
--- a/packages/gcc/6.3.0/301-missing-execinfo_h.patch
+++ b/packages/gcc/6.4.0/301-missing-execinfo_h.patch
diff --git a/packages/gcc/6.3.0/370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch b/packages/gcc/6.4.0/370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
index d8986d5..d8986d5 100644
--- a/packages/gcc/6.3.0/370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
+++ b/packages/gcc/6.4.0/370-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
diff --git a/packages/gcc/6.3.0/380-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/6.4.0/380-gcc-plugin-POSIX-include-sys-select-h.patch
index 12ef48e..12ef48e 100644
--- a/packages/gcc/6.3.0/380-gcc-plugin-POSIX-include-sys-select-h.patch
+++ b/packages/gcc/6.4.0/380-gcc-plugin-POSIX-include-sys-select-h.patch
diff --git a/packages/gcc/6.3.0/810-arm-softfloat-libgcc.patch b/packages/gcc/6.4.0/810-arm-softfloat-libgcc.patch
index 5efa7fd..5efa7fd 100644
--- a/packages/gcc/6.3.0/810-arm-softfloat-libgcc.patch
+++ b/packages/gcc/6.4.0/810-arm-softfloat-libgcc.patch
diff --git a/packages/gcc/6.3.0/830-arm_unbreak_armv4t.patch b/packages/gcc/6.4.0/830-arm_unbreak_armv4t.patch
index b730059..b730059 100644
--- a/packages/gcc/6.3.0/830-arm_unbreak_armv4t.patch
+++ b/packages/gcc/6.4.0/830-arm_unbreak_armv4t.patch
diff --git a/packages/gcc/6.3.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch b/packages/gcc/6.4.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch
index af9fb1d..af9fb1d 100644
--- a/packages/gcc/6.3.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch
+++ b/packages/gcc/6.4.0/831-ARM-PR-target-70473-Reduce-size-of-Cortex-A8-automat.patch
diff --git a/packages/gcc/6.3.0/860-cilk-wchar.patch b/packages/gcc/6.4.0/860-cilk-wchar.patch
index 1d9916f..1d9916f 100644
--- a/packages/gcc/6.3.0/860-cilk-wchar.patch
+++ b/packages/gcc/6.4.0/860-cilk-wchar.patch
diff --git a/packages/gcc/6.3.0/890-fix-m68k-compile.patch b/packages/gcc/6.4.0/890-fix-m68k-compile.patch
index 6e63de0..6e63de0 100644
--- a/packages/gcc/6.3.0/890-fix-m68k-compile.patch
+++ b/packages/gcc/6.4.0/890-fix-m68k-compile.patch
diff --git a/packages/gcc/6.3.0/891-fix-m68k-uclinux.patch b/packages/gcc/6.4.0/891-fix-m68k-uclinux.patch
index 4e186bd..4e186bd 100644
--- a/packages/gcc/6.3.0/891-fix-m68k-uclinux.patch
+++ b/packages/gcc/6.4.0/891-fix-m68k-uclinux.patch
diff --git a/packages/gcc/6.3.0/892-libgcc-mkmap-symver-support-skip_underscore.patch b/packages/gcc/6.4.0/892-libgcc-mkmap-symver-support-skip_underscore.patch
index 73ee6c5..73ee6c5 100644
--- a/packages/gcc/6.3.0/892-libgcc-mkmap-symver-support-skip_underscore.patch
+++ b/packages/gcc/6.4.0/892-libgcc-mkmap-symver-support-skip_underscore.patch
diff --git a/packages/gcc/6.3.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch b/packages/gcc/6.4.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch
index 454295d..454295d 100644
--- a/packages/gcc/6.3.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch
+++ b/packages/gcc/6.4.0/893-libgcc-config-bfin-use-the-generic-linker-version-in.patch
diff --git a/packages/gcc/6.3.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch b/packages/gcc/6.4.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch
index ce49de7..ce49de7 100644
--- a/packages/gcc/6.3.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch
+++ b/packages/gcc/6.4.0/894-libgcc-fix-DWARF-compilation-with-FDPIC-targets.patch
diff --git a/packages/gcc/6.3.0/895-bfin-define-REENTRANT.patch b/packages/gcc/6.4.0/895-bfin-define-REENTRANT.patch
index e2828a5..e2828a5 100644
--- a/packages/gcc/6.3.0/895-bfin-define-REENTRANT.patch
+++ b/packages/gcc/6.4.0/895-bfin-define-REENTRANT.patch
diff --git a/packages/gcc/6.3.0/900-libgfortran-missing-include.patch b/packages/gcc/6.4.0/900-libgfortran-missing-include.patch
index 1f47469..1f47469 100644
--- a/packages/gcc/6.3.0/900-libgfortran-missing-include.patch
+++ b/packages/gcc/6.4.0/900-libgfortran-missing-include.patch
diff --git a/packages/gcc/6.3.0/910-nios2-bad-multilib-default.patch b/packages/gcc/6.4.0/910-nios2-bad-multilib-default.patch
index 61989e5..61989e5 100644
--- a/packages/gcc/6.3.0/910-nios2-bad-multilib-default.patch
+++ b/packages/gcc/6.4.0/910-nios2-bad-multilib-default.patch
diff --git a/packages/gcc/6.3.0/930-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/6.4.0/930-libgcc-disable-split-stack-nothreads.patch
index 07f9a73..07f9a73 100644
--- a/packages/gcc/6.3.0/930-libgcc-disable-split-stack-nothreads.patch
+++ b/packages/gcc/6.4.0/930-libgcc-disable-split-stack-nothreads.patch
diff --git a/packages/gcc/6.3.0/940-uclinux-enable-threads.patch b/packages/gcc/6.4.0/940-uclinux-enable-threads.patch
index 490a55b..490a55b 100644
--- a/packages/gcc/6.3.0/940-uclinux-enable-threads.patch
+++ b/packages/gcc/6.4.0/940-uclinux-enable-threads.patch
diff --git a/packages/gcc/6.3.0/951-bionic-ndk.patch b/packages/gcc/6.4.0/951-bionic-ndk.patch
index 59c50a8..59c50a8 100644
--- a/packages/gcc/6.3.0/951-bionic-ndk.patch
+++ b/packages/gcc/6.4.0/951-bionic-ndk.patch
diff --git a/packages/gcc/6.3.0/952-bionic-errno.patch b/packages/gcc/6.4.0/952-bionic-errno.patch
index 91f6ca3..91f6ca3 100644
--- a/packages/gcc/6.3.0/952-bionic-errno.patch
+++ b/packages/gcc/6.4.0/952-bionic-errno.patch
diff --git a/packages/gcc/6.3.0/970-crystax.patch b/packages/gcc/6.4.0/970-crystax.patch
index e3109cc..e3109cc 100644
--- a/packages/gcc/6.3.0/970-crystax.patch
+++ b/packages/gcc/6.4.0/970-crystax.patch
diff --git a/packages/gcc/6.3.0/971-crystax.patch b/packages/gcc/6.4.0/971-crystax.patch
index 748a381..748a381 100644
--- a/packages/gcc/6.3.0/971-crystax.patch
+++ b/packages/gcc/6.4.0/971-crystax.patch
diff --git a/packages/gcc/6.3.0/972-crystax.patch b/packages/gcc/6.4.0/972-crystax.patch
index b9077be..b9077be 100644
--- a/packages/gcc/6.3.0/972-crystax.patch
+++ b/packages/gcc/6.4.0/972-crystax.patch
diff --git a/packages/gcc/6.3.0/973-crystax.patch b/packages/gcc/6.4.0/973-crystax.patch
index b96ece3..b96ece3 100644
--- a/packages/gcc/6.3.0/973-crystax.patch
+++ b/packages/gcc/6.4.0/973-crystax.patch
diff --git a/packages/gcc/6.3.0/974-crystax.patch b/packages/gcc/6.4.0/974-crystax.patch
index 9db4f54..9db4f54 100644
--- a/packages/gcc/6.3.0/974-crystax.patch
+++ b/packages/gcc/6.4.0/974-crystax.patch
diff --git a/packages/gcc/6.3.0/975-crystax.patch b/packages/gcc/6.4.0/975-crystax.patch
index 9efc2a4..9efc2a4 100644
--- a/packages/gcc/6.3.0/975-crystax.patch
+++ b/packages/gcc/6.4.0/975-crystax.patch
diff --git a/packages/gcc/6.3.0/976-crystax.patch b/packages/gcc/6.4.0/976-crystax.patch
index 790d4a9..790d4a9 100644
--- a/packages/gcc/6.3.0/976-crystax.patch
+++ b/packages/gcc/6.4.0/976-crystax.patch
diff --git a/packages/gcc/6.3.0/977-crystax.patch b/packages/gcc/6.4.0/977-crystax.patch
index 0211d72..0211d72 100644
--- a/packages/gcc/6.3.0/977-crystax.patch
+++ b/packages/gcc/6.4.0/977-crystax.patch
diff --git a/packages/gcc/6.3.0/version.desc b/packages/gcc/6.4.0/version.desc
index e69de29..e69de29 100644
--- a/packages/gcc/6.3.0/version.desc
+++ b/packages/gcc/6.4.0/version.desc