aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.6.inc10
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.6/armhf-loader.patch47
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch19
3 files changed, 24 insertions, 52 deletions
diff --git a/recipes-devtools/gcc/gcc-linaro-4.6.inc b/recipes-devtools/gcc/gcc-linaro-4.6.inc
index 9f269c0d..ab8cb127 100644
--- a/recipes-devtools/gcc/gcc-linaro-4.6.inc
+++ b/recipes-devtools/gcc/gcc-linaro-4.6.inc
@@ -1,22 +1,22 @@
require recipes-devtools/gcc/gcc-4.6.inc
require gcc-linaro-common-4.6.inc
-PR = "r2"
-RELEASE = "2012.05"
+PR = "r3"
+RELEASE = "2012.06"
BINV = "4.6.4"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-${PV}' ], d)}"
SRC_URI = "https://launchpad.net/gcc-linaro/4.6/4.6-${RELEASE}/+download/gcc-${PV}-${RELEASE}.tar.bz2 \
- file://armhf-loader.patch \
file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
file://64bithack.patch \
file://optional_libstdc.patch \
file://use-defaults.h-and-t-oe-in-B.patch \
+ file://revert-r106893.patch \
"
-SRC_URI[md5sum] = "076d2f5bba06603ec2ae02bf7edf3419"
-SRC_URI[sha256sum] = "6827376d652689d01d76312b6d77c15135694f5788fee624da2568835bb3167c"
+SRC_URI[md5sum] = "5104039954c65904648e62ee7a20ba1f"
+SRC_URI[sha256sum] = "214232fa957f3d90cd923d50a7d3ed3728a31742f4f0b56107c4cafbd8a0a227"
S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}-${RELEASE}"
B = "${WORKDIR}/gcc-${PV}-${RELEASE}/build.${HOST_SYS}.${TARGET_SYS}"
diff --git a/recipes-devtools/gcc/gcc-linaro-4.6/armhf-loader.patch b/recipes-devtools/gcc/gcc-linaro-4.6/armhf-loader.patch
deleted file mode 100644
index f3afc929..00000000
--- a/recipes-devtools/gcc/gcc-linaro-4.6/armhf-loader.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-This patch changes the hard float loader path to /lib/ld-linux-armhf.so.3.
-It is a backport of r114985 of Linaro GCC 4.7 which itself is a backport of
-r186859 and r187012 from mainline FSF.
-
-Upstream-Status: Backport
-
-Index: gcc-linaro-4.6-2012.05/gcc/config/arm/linux-eabi.h
-===================================================================
---- gcc-linaro-4.6-2012.05.orig/gcc/config/arm/linux-eabi.h
-+++ gcc-linaro-4.6-2012.05/gcc/config/arm/linux-eabi.h
-@@ -32,7 +32,8 @@
- while (false)
-
- /* We default to a soft-float ABI so that binaries can run on all
-- target hardware. */
-+ target hardware. If you override this to use the hard-float ABI then
-+ change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */
- #undef TARGET_DEFAULT_FLOAT_ABI
- #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
-
-@@ -59,10 +60,23 @@
- #undef SUBTARGET_EXTRA_LINK_SPEC
- #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION
-
--/* Use ld-linux.so.3 so that it will be possible to run "classic"
-- GNU/Linux binaries on an EABI system. */
-+/* GNU/Linux on ARM currently supports three dynamic linkers:
-+ - ld-linux.so.2 - for the legacy ABI
-+ - ld-linux.so.3 - for the EABI-derived soft-float ABI
-+ - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI.
-+ All the dynamic linkers live in /lib.
-+ We default to soft-float, but this can be overridden by changing both
-+ GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
-+
- #undef GLIBC_DYNAMIC_LINKER
--#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.3"
-+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
-+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
-+#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
-+
-+#define GLIBC_DYNAMIC_LINKER \
-+ "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
-+ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
-+ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
-
- /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
- use the GNU/Linux version, not the generic BPABI version. */
diff --git a/recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch b/recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch
new file mode 100644
index 00000000..c88b3614
--- /dev/null
+++ b/recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch
@@ -0,0 +1,19 @@
+This patch reverts a backport from mainline that fixes an ICE when using LTO
+but also introduces a regression when using NEON intrinsics. It's a temporary
+workaround till a better fix is available. For details visit:
+https://bugs.launchpad.net/gcc-linaro/+bug/1013209
+
+Index: gcc-linaro-4.6-2012.06/gcc/config/arm/arm.c
+===================================================================
+@@ -20451,8 +20451,10 @@ neon_dereference_pointer (tree exp, enum
+ upper_bound = build_int_cst (size_type_node, nelems - 1);
+ array_type = build_array_type (elem_type, build_index_type (upper_bound));
+
++ /* Dereference EXP using that type. */
++ exp = convert (build_pointer_type (array_type), exp);
+ return fold_build2 (MEM_REF, array_type, exp,
+- build_int_cst (build_pointer_type (array_type), 0));
++ build_int_cst (TREE_TYPE (exp), 0));
+ }
+
+ /* Expand a Neon builtin. */