diff options
-rw-r--r-- | recipes-devtools/gcc/gcc-linaro-4.6.inc | 10 | ||||
-rw-r--r-- | recipes-devtools/gcc/gcc-linaro-4.6/armhf-loader.patch | 47 | ||||
-rw-r--r-- | recipes-devtools/gcc/gcc-linaro-4.6/revert-r106893.patch | 19 |
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. */ |