summaryrefslogtreecommitdiff
path: root/meta-linaro-toolchain/recipes-devtools/gcc
diff options
context:
space:
mode:
authorFathi Boudra <fathi.boudra@linaro.org>2014-11-25 17:05:00 +0200
committerFathi Boudra <fathi.boudra@linaro.org>2014-11-25 17:05:00 +0200
commit4ddc6d843dabc49d72d371a2dfdbe54840a0c0ca (patch)
tree4924531e674048b63a38b3c5e61d5b2cb271193a /meta-linaro-toolchain/recipes-devtools/gcc
parent5515011c221ac0fe4a0eb4f550f08c8992084317 (diff)
downloadmeta-linaro-4ddc6d843dabc49d72d371a2dfdbe54840a0c0ca.tar.gz
gcc-linaro-4.9: update to 2014.11 release
bump release version and update md5sum sync with oe-core: * add 0056-top-level-reorder_gcc-bug-61144.patch * add 0058-gcc-r212171.patch * add 0059-gcc-PR-rtl-optimization-63348.patch Change-Id: Id27dc699033364f8e48c226b44fa404ab7f707f9 Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
Diffstat (limited to 'meta-linaro-toolchain/recipes-devtools/gcc')
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc11
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0056-top-level-reorder_gcc-bug-61144.patch31
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0058-gcc-r212171.patch113
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0059-gcc-PR-rtl-optimization-63348.patch59
4 files changed, 210 insertions, 4 deletions
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
index a652440..97fbc31 100644
--- a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
@@ -1,10 +1,10 @@
require recipes-devtools/gcc/gcc-4.9.inc
PV = "linaro-${BASEPV}"
-MMYY = "14.10"
+MMYY = "14.11"
RELEASE = "20${MMYY}"
PR = "r${RELEASE}"
-BINV = "4.9.2"
+BINV = "4.9.3"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-${PV}' ], d)}"
@@ -56,12 +56,15 @@ SRC_URI = "https://releases.linaro.org/${MMYY}/components/toolchain/gcc-linaro/$
file://0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch \
file://0054-gcc-Makefile.in-fix-parallel-building-failure.patch \
file://0055-PR-rtl-optimization-61801.patch;apply=no \
+ file://0056-top-level-reorder_gcc-bug-61144.patch \
+ file://0058-gcc-r212171.patch \
+ file://0059-gcc-PR-rtl-optimization-63348.patch \
file://AArch64-Define-BE-loader-name-default-be.patch \
file://use-lib-for-aarch64.patch \
"
-SRC_URI[md5sum] = "230da25b1e7661a8659eb770c5c88442"
-SRC_URI[sha256sum] = "424bdd8c6132dfcbf17a1162d2d119b577c2ac777287427391fb82dfda7334f2"
+SRC_URI[md5sum] = "a0fda0cc4408f935086bb156aeef5ff9"
+SRC_URI[sha256sum] = "7e176614b4a39259bfe4dad08d89651f511f3e52c2201210037b48cce90cc32a"
S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}-${RELEASE}"
B = "${WORKDIR}/gcc-${PV}-${RELEASE}/build.${HOST_SYS}.${TARGET_SYS}"
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0056-top-level-reorder_gcc-bug-61144.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0056-top-level-reorder_gcc-bug-61144.patch
new file mode 100644
index 0000000..f448932
--- /dev/null
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0056-top-level-reorder_gcc-bug-61144.patch
@@ -0,0 +1,31 @@
+
+Upstream-Status: Backport
+
+Originally-submitted-by: Peter Urbanec <openembedded-devel@urbanec.net>
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+--- /dev/null
++++ b/meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch
+@@ -0,0 +1,21 @@
++--- a/gcc/varpool.c 2014/10/05 02:50:01 215895
+++++ b/gcc/varpool.c 2014/10/05 04:52:19 215896
++@@ -329,8 +329,16 @@
++
++ /* Variables declared 'const' without an initializer
++ have zero as the initializer if they may not be
++- overridden at link or run time. */
++- if (!DECL_INITIAL (real_decl)
+++ overridden at link or run time.
+++
+++ It is actually requirement for C++ compiler to optimize const variables
+++ consistently. As a GNU extension, do not enfore this rule for user defined
+++ weak variables, so we support interposition on:
+++ static const int dummy = 0;
+++ extern const int foo __attribute__((__weak__, __alias__("dummy")));
+++ */
+++ if ((!DECL_INITIAL (real_decl)
+++ || (DECL_WEAK (decl) && !DECL_COMDAT (decl)))
++ && (DECL_EXTERNAL (decl) || decl_replaceable_p (decl)))
++ return error_mark_node;
++
+
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0058-gcc-r212171.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0058-gcc-r212171.patch
new file mode 100644
index 0000000..4b312d4
--- /dev/null
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0058-gcc-r212171.patch
@@ -0,0 +1,113 @@
+From ca03cf1b133d66eb978c68f6dbc345e9aabcba88 Mon Sep 17 00:00:00 2001
+From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Mon, 30 Jun 2014 19:30:52 +0000
+Subject: [PATCH] r212171
+
+* except.c (emit_note_eh_region_end): New helper
+ function. (convert_to_eh_region_ranges): Use
+ emit_note_eh_region_end to emit EH_REGION_END note.
+ * jump.c (cleanup_barriers): Do not split a call and its
+ corresponding CALL_ARG_LOCATION note.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212171 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Upstream-status: Backport [https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=212171]
+Signed-off-by: Baoshan Pang <baoshan.pang@windriver.com>
+---
+ gcc/except.c | 23 ++++++++++++++++++-----
+ gcc/jump.c | 19 +++++++++++++++----
+ 2 files changed, 33 insertions(+), 9 deletions(-)
+
+diff --git a/gcc/except.c b/gcc/except.c
+index dc5c1d2..7ac114f 100644
+--- a/gcc/except.c
++++ b/gcc/except.c
+@@ -2466,6 +2466,20 @@ add_call_site (rtx landing_pad, int action, int section)
+ return call_site_base + crtl->eh.call_site_record_v[section]->length () - 1;
+ }
+
++static rtx
++emit_note_eh_region_end (rtx insn)
++{
++ rtx next = NEXT_INSN (insn);
++
++ /* Make sure we do not split a call and its corresponding
++ CALL_ARG_LOCATION note. */
++ if (next && NOTE_P (next)
++ && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION)
++ insn = next;
++
++ return emit_note_after (NOTE_INSN_EH_REGION_END, insn);
++}
++
+ /* Turn REG_EH_REGION notes back into NOTE_INSN_EH_REGION notes.
+ The new note numbers will not refer to region numbers, but
+ instead to call site entries. */
+@@ -2544,8 +2558,8 @@ convert_to_eh_region_ranges (void)
+ note = emit_note_before (NOTE_INSN_EH_REGION_BEG,
+ first_no_action_insn_before_switch);
+ NOTE_EH_HANDLER (note) = call_site;
+- note = emit_note_after (NOTE_INSN_EH_REGION_END,
+- last_no_action_insn_before_switch);
++ note
++ = emit_note_eh_region_end (last_no_action_insn_before_switch);
+ NOTE_EH_HANDLER (note) = call_site;
+ gcc_assert (last_action != -3
+ || (last_action_insn
+@@ -2569,8 +2583,7 @@ convert_to_eh_region_ranges (void)
+ first_no_action_insn = NULL_RTX;
+ }
+
+- note = emit_note_after (NOTE_INSN_EH_REGION_END,
+- last_action_insn);
++ note = emit_note_eh_region_end (last_action_insn);
+ NOTE_EH_HANDLER (note) = call_site;
+ }
+
+@@ -2617,7 +2630,7 @@ convert_to_eh_region_ranges (void)
+
+ if (last_action >= -1 && ! first_no_action_insn)
+ {
+- note = emit_note_after (NOTE_INSN_EH_REGION_END, last_action_insn);
++ note = emit_note_eh_region_end (last_action_insn);
+ NOTE_EH_HANDLER (note) = call_site;
+ }
+
+diff --git a/gcc/jump.c b/gcc/jump.c
+index 9418f65..a5e5f52 100644
+--- a/gcc/jump.c
++++ b/gcc/jump.c
+@@ -121,15 +121,26 @@ rebuild_jump_labels_chain (rtx chain)
+ static unsigned int
+ cleanup_barriers (void)
+ {
+- rtx insn, next, prev;
+- for (insn = get_insns (); insn; insn = next)
++ rtx insn;
++ for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
+ {
+- next = NEXT_INSN (insn);
+ if (BARRIER_P (insn))
+ {
+- prev = prev_nonnote_insn (insn);
++ rtx prev = prev_nonnote_insn (insn);
+ if (!prev)
+ continue;
++
++ if (CALL_P (prev))
++ {
++ /* Make sure we do not split a call and its corresponding
++ CALL_ARG_LOCATION note. */
++ rtx next = NEXT_INSN (prev);
++
++ if (NOTE_P (next)
++ && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION)
++ prev = next;
++ }
++
+ if (BARRIER_P (prev))
+ delete_insn (insn);
+ else if (prev != PREV_INSN (insn))
+--
+1.7.9.5
+
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0059-gcc-PR-rtl-optimization-63348.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0059-gcc-PR-rtl-optimization-63348.patch
new file mode 100644
index 0000000..6d24aa4
--- /dev/null
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9/0059-gcc-PR-rtl-optimization-63348.patch
@@ -0,0 +1,59 @@
+From 6eae3e637fcc22d21b51d44d61e3a9cb4825e776 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 30 Oct 2014 20:37:14 -0700
+Subject: [PATCH]PR rtl-optimization/63348
+
+PR rtl-optimization/63348
+* emit-rtl.c (try_split): Do not emit extra barrier.
+
+Note: this patch is to fix the side effect introduced by r212171 which was reported at:
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215613 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Upstream-status: Backport [https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=215613]
+Signed-off-by: Baoshan Pang <baoshan.pang@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ gcc/emit-rtl.c | 11 -----------
+ 1 files changed, 0 insertions(+), 11 deletions(-)
+
+diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
+index 4736f8d..ae69dbd 100644
+--- a/gcc/emit-rtl.c
++++ b/gcc/emit-rtl.c
+@@ -3422,7 +3422,6 @@ try_split (rtx pat, rtx trial, int last)
+ {
+ rtx before = PREV_INSN (trial);
+ rtx after = NEXT_INSN (trial);
+- int has_barrier = 0;
+ rtx note, seq, tem;
+ int probability;
+ rtx insn_last, insn;
+@@ -3441,14 +3440,6 @@ try_split (rtx pat, rtx trial, int last)
+
+ split_branch_probability = -1;
+
+- /* If we are splitting a JUMP_INSN, it might be followed by a BARRIER.
+- We may need to handle this specially. */
+- if (after && BARRIER_P (after))
+- {
+- has_barrier = 1;
+- after = NEXT_INSN (after);
+- }
+-
+ if (!seq)
+ return trial;
+
+@@ -3594,8 +3585,6 @@ try_split (rtx pat, rtx trial, int last)
+ tem = emit_insn_after_setloc (seq, trial, INSN_LOCATION (trial));
+
+ delete_insn (trial);
+- if (has_barrier)
+- emit_barrier_after (tem);
+
+ /* Recursively call try_split for each new insn created; by the
+ time control returns here that insn will be fully split, so
+--
+1.7.1
+