aboutsummaryrefslogtreecommitdiff
path: root/meta-linaro-toolchain
diff options
context:
space:
mode:
authorFathi Boudra <fathi.boudra@linaro.org>2014-01-21 23:21:04 +0200
committerFathi Boudra <fathi.boudra@linaro.org>2014-01-21 23:21:04 +0200
commit3d52c2f9c940ed6cac54bfa662f71d5c9312e852 (patch)
tree8a2080434958e87b94349aa4eb6b2e18fcc5b844 /meta-linaro-toolchain
parentbffd89f21ccdfd32c9972bb5997247df0074874a (diff)
gcc-linaro-4.8: update to 2014.01 release
refresh 0016-gcc-poison-system-directories.patch drop 0036-PR-target-56102.patch - merged upstream disable 0038-gcc-4.8-build-args.patch - already applied to Linaro GCC 4.8 add 0047-repomembug.patch - synced with oe-core Change-Id: If7f318926e2fd78449c3fbc7a6927c2ff6f551f4 Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
Diffstat (limited to 'meta-linaro-toolchain')
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8.inc13
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0016-gcc-poison-system-directories.patch4
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0036-PR-target-56102.patch83
-rw-r--r--meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0047-repomembug.patch53
4 files changed, 61 insertions, 92 deletions
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8.inc b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8.inc
index 73525ba4..6c1ccaf6 100644
--- a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8.inc
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8.inc
@@ -1,15 +1,14 @@
require recipes-devtools/gcc/gcc-4.8.inc
PV = "linaro-${BASEPV}"
-MMYY = "13.12"
+MMYY = "14.01"
RELEASE = "20${MMYY}"
PR = "r${RELEASE}"
BINV = "4.8.3"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-${PV}' ], d)}"
-#SRC_URI = "https://releases.linaro.org/${MMYY}/components/toolchain/gcc-linaro/${BASEPV}/gcc-${PV}-${RELEASE}.tar.xz
-SRC_URI = "http://cbuild.validation.linaro.org/snapshots/gcc-${PV}-${RELEASE}.tar.xz \
+SRC_URI = "https://releases.linaro.org/${MMYY}/components/toolchain/gcc-linaro/${BASEPV}/gcc-${PV}-${RELEASE}.tar.xz \
file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
file://0002-uclibc-conf.patch \
file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \
@@ -45,9 +44,8 @@ SRC_URI = "http://cbuild.validation.linaro.org/snapshots/gcc-${PV}-${RELEASE}.ta
file://0033-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
file://0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
file://0035-wcast-qual-PR-55383.patch \
- file://0036-PR-target-56102.patch;apply=no \
file://0037-gcc-4.8-PR56797.patch \
- file://0038-gcc-4.8-build-args.patch \
+ file://0038-gcc-4.8-build-args.patch;apply=no \
file://0039-gcc-4.8-PR57717.patch \
file://0040-fix-g++-sysroot.patch \
file://0041-libtool-avoid-libdir.patch \
@@ -56,11 +54,12 @@ SRC_URI = "http://cbuild.validation.linaro.org/snapshots/gcc-${PV}-${RELEASE}.ta
file://0044-gengtypes.patch \
file://0045-gcc-4.8-PR57717-PowerPC-E500v2.patch \
file://0046-libatomic-deptracking.patch \
+ file://0047-repomembug.patch \
file://use-lib-for-aarch64.patch \
"
-SRC_URI[md5sum] = "bd7a22ff4d1b6bb4824ef908e07bde66"
-SRC_URI[sha256sum] = "516e3d101cbd43153e1cdf989bc9db88266f83cf661f20f7f2bcab55f91022b7"
+SRC_URI[md5sum] = "b8bc08b05ff079dcdc020336a67ca4e1"
+SRC_URI[sha256sum] = "8e997ff0ec835bfd8d23bf5cee77d7fd6080f2de7029fc0a2128c19c8ebd8460"
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.8/0016-gcc-poison-system-directories.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0016-gcc-poison-system-directories.patch
index 1e2a9e10..48e7d401 100644
--- a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0016-gcc-poison-system-directories.patch
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0016-gcc-poison-system-directories.patch
@@ -87,7 +87,7 @@ index 135bbf5..b65d21d 100755
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
--#line 17831 "configure"
+-#line 17830 "configure"
+#line 17834 "configure"
#include "confdefs.h"
@@ -96,7 +96,7 @@ index 135bbf5..b65d21d 100755
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
--#line 17937 "configure"
+-#line 17936 "configure"
+#line 17940 "configure"
#include "confdefs.h"
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0036-PR-target-56102.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0036-PR-target-56102.patch
deleted file mode 100644
index a9498fcb..00000000
--- a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0036-PR-target-56102.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From fa049b3584a1cc36c250205e3d5841e6a40ff677 Mon Sep 17 00:00:00 2001
-From: amker <amker@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Wed, 27 Mar 2013 08:16:54 +0000
-Subject: [PATCH] PR target/56102
-
-* config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with mult-word mode.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197155 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57329
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- gcc/config/arm/arm.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
-index 460d333..edf850d 100644
---- a/gcc/config/arm/arm.c
-+++ b/gcc/config/arm/arm.c
-@@ -7094,7 +7094,7 @@ static inline int
- thumb1_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
- {
- enum machine_mode mode = GET_MODE (x);
-- int total;
-+ int total, words;
-
- switch (code)
- {
-@@ -7102,6 +7102,8 @@ thumb1_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
- case ASHIFTRT:
- case LSHIFTRT:
- case ROTATERT:
-+ return (mode == SImode) ? COSTS_N_INSNS (1) : COSTS_N_INSNS (2);
-+
- case PLUS:
- case MINUS:
- case COMPARE:
-@@ -7125,7 +7127,10 @@ thumb1_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
- return COSTS_N_INSNS (1) + 16;
-
- case SET:
-- return (COSTS_N_INSNS (1)
-+ /* A SET doesn't have a mode, so let's look at the SET_DEST to get
-+ the mode. */
-+ words = ARM_NUM_INTS (GET_MODE_SIZE (GET_MODE (SET_DEST (x))));
-+ return (COSTS_N_INSNS (words)
- + 4 * ((MEM_P (SET_SRC (x)))
- + MEM_P (SET_DEST (x))));
-
-@@ -7822,6 +7827,7 @@ static inline int
- thumb1_size_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
- {
- enum machine_mode mode = GET_MODE (x);
-+ int words;
-
- switch (code)
- {
-@@ -7829,6 +7835,8 @@ thumb1_size_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
- case ASHIFTRT:
- case LSHIFTRT:
- case ROTATERT:
-+ return (mode == SImode) ? COSTS_N_INSNS (1) : COSTS_N_INSNS (2);
-+
- case PLUS:
- case MINUS:
- case COMPARE:
-@@ -7847,7 +7855,10 @@ thumb1_size_rtx_costs (rtx x, enum rtx_code code, enum rtx_code outer)
- return COSTS_N_INSNS (1);
-
- case SET:
-- return (COSTS_N_INSNS (1)
-+ /* A SET doesn't have a mode, so let's look at the SET_DEST to get
-+ the mode. */
-+ words = ARM_NUM_INTS (GET_MODE_SIZE (GET_MODE (SET_DEST (x))));
-+ return (COSTS_N_INSNS (words)
- + 4 * ((MEM_P (SET_SRC (x)))
- + MEM_P (SET_DEST (x))));
-
---
-1.8.2.1
-
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0047-repomembug.patch b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0047-repomembug.patch
new file mode 100644
index 00000000..868a4f3a
--- /dev/null
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.8/0047-repomembug.patch
@@ -0,0 +1,53 @@
+When compiling a project using -frepo, .rpo files are written alongside
+the .o file, the symbols either have O or C against them. During final linking,
+the objects can be recompiled with some of the entries tweaked/chosen by the
+tlink.c code (visible with TLINK_VERBOSE=3), it does this by changing O -> C
+in the .rpo files.
+
+My tests showed that init_repo (cp/repo.c) was correctly calling
+IDENTIFIER_REPO_CHOSEN against the right identifers and setting the
+chosen bit.
+
+By the time finish_repo() or emit_repo_p() were called, the pointer returned
+by get_identifier() for the symbol marked during init_repo had changed and
+the chosen bit was no longer set. This lead to linking bugs like:
+
+collect: relinking
+collect2: error: '_ZNK6sudoku5ClearINS_8SequenceEEclERS1_' was assigned to 'board.rpo', but was not defined during recompilation, or vice versa
+
+The problem is that the garbage collection is getting called before
+finish_repo() is called and ggc_protect_identifiers is set to false
+so the identifiers are not preserved. They are recreated but the
+chosen bits get wiped out which is why the pointer changes and the
+chosen bit is not set.
+
+The fix is to change ggc_protect_identifiers *after* the finish_repo
+calls are made.
+
+Reproduction is tricky since you need to trigger the garbage collector at
+just the right moment.
+
+RP 2013/10/9
+
+[YOCTO #5133]
+
+Upstream-State: Pending
+
+Index: gcc-4.8.1/gcc/toplev.c
+===================================================================
+--- gcc-4.8.1.orig/gcc/toplev.c 2013-03-28 08:29:51.000000000 +0000
++++ gcc-4.8.1/gcc/toplev.c 2013-10-09 20:27:17.089228023 +0000
+@@ -551,11 +551,11 @@
+ if (flag_syntax_only || flag_wpa)
+ return;
+
+- ggc_protect_identifiers = false;
+-
+ /* This must also call finalize_compilation_unit. */
+ lang_hooks.decls.final_write_globals ();
+
++ ggc_protect_identifiers = false;
++
+ if (seen_error ())
+ return;
+