diff options
6 files changed, 127 insertions, 2 deletions
diff --git a/recipes-devtools/gcc/gcc-linaro-4.6.inc b/recipes-devtools/gcc/gcc-linaro-4.6.inc index b673bfd9..1277d15e 100644 --- a/recipes-devtools/gcc/gcc-linaro-4.6.inc +++ b/recipes-devtools/gcc/gcc-linaro-4.6.inc @@ -1,13 +1,15 @@ require recipes-devtools/gcc/gcc-4.6.inc require gcc-linaro-common-4.6.inc -PR = "r1" +PR = "r2" RELEASE = "2012.05" 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://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 \ " diff --git a/recipes-devtools/gcc/gcc-linaro-4.6/64bithack.patch b/recipes-devtools/gcc/gcc-linaro-4.6/64bithack.patch new file mode 100644 index 00000000..be6a2689 --- /dev/null +++ b/recipes-devtools/gcc/gcc-linaro-4.6/64bithack.patch @@ -0,0 +1,28 @@ +This patch causes the GCC to install the libstc++ into lib as opposed to +lib64 on X86_64 Linux targets. Usually the libstdc++ will be placed in lib64 +during the install step. Because that's where 64bit libs go for linux targets +according to the FHS. If you don't like this but want to use linux as a target +you have to patch the toolchain which is what 64bithack.patch attempts to do. +One solution would be to have a distinctive OE target that doesn't support +multilib and has 64bit libs under lib. The advantage over the current +meta/recipes-devtools/gcc/gcc-4.6/64bithack.patch provided by oe-core is that +multilib upport is entirely disabled and MULTILIB_OSDIRNAMES is empty. This +prevents a broken toolchain in case --enable-multilib gets used. + +Upstream-Status: Inappropriate + +Signed-off-by: Ken Werner <ken.werner@linaro.org> + +Index: gcc-linaro-4.6-2012.04/gcc/config.gcc +=================================================================== +--- gcc-linaro-4.6-2012.04.orig/gcc/config.gcc ++++ gcc-linaro-4.6-2012.04/gcc/config.gcc +@@ -1310,7 +1310,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu + tm_file="${tm_file} knetbsd-gnu.h" + ;; + esac +- tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" ++ tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" + ;; + i[34567]86-pc-msdosdjgpp*) + xm_file=i386/xm-djgpp.h diff --git a/recipes-devtools/gcc/gcc-linaro-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/recipes-devtools/gcc/gcc-linaro-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch new file mode 100644 index 00000000..ce827400 --- /dev/null +++ b/recipes-devtools/gcc/gcc-linaro-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch @@ -0,0 +1,33 @@ +Upstream-Status: Inappropriate [embedded specific] + +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Index: gcc-4.6.0/configure.ac +=================================================================== +--- gcc-4.6.0.orig/configure.ac ++++ gcc-4.6.0/configure.ac +@@ -3073,7 +3073,7 @@ fi + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in +Index: gcc-4.6.0/configure +=================================================================== +--- gcc-4.6.0.orig/configure ++++ gcc-4.6.0/configure +@@ -7594,7 +7594,7 @@ fi + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in diff --git a/recipes-devtools/gcc/gcc-linaro-4.7.inc b/recipes-devtools/gcc/gcc-linaro-4.7.inc index bbd11df7..ae509949 100644 --- a/recipes-devtools/gcc/gcc-linaro-4.7.inc +++ b/recipes-devtools/gcc/gcc-linaro-4.7.inc @@ -1,13 +1,15 @@ require recipes-devtools/gcc/gcc-4.7.inc require gcc-linaro-common-4.7.inc -PR = "r1" +PR = "r2" RELEASE = "2012.05" BINV = "4.7.1" FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-${PV}-${RELEASE}' ], d)}" SRC_URI = "http://launchpad.net/gcc-linaro/${BASEPV}/${BASEPV}-${RELEASE}/+download/gcc-${PV}-${RELEASE}.tar.bz2 \ + 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 \ " diff --git a/recipes-devtools/gcc/gcc-linaro-4.7/64bithack.patch b/recipes-devtools/gcc/gcc-linaro-4.7/64bithack.patch new file mode 100644 index 00000000..7a4ba4c1 --- /dev/null +++ b/recipes-devtools/gcc/gcc-linaro-4.7/64bithack.patch @@ -0,0 +1,27 @@ +This patch causes the GCC to install the libstc++ into lib as opposed to +lib64 on X86_64 Linux targets. Usually the libstdc++ will be placed in lib64 +during the install step. Because that's where 64bit libs go for linux targets +according to the FHS. If you don't like this but want to use linux as a target +you have to patch the toolchain which is what 64bithack.patch attempts to do. +One solution would be to have a distinctive OE target that doesn't support +multilib and has 64bit libs under lib. The advantage over the current +meta/recipes-devtools/gcc/gcc-4.7/64bithack.patch provided by oe-core is that +multilib upport is entirely disabled and MULTILIB_OSDIRNAMES is empty. This +prevents a broken toolchain in case --enable-multilib gets used. + +Upstream-Status: Inappropriate + +Signed-off-by: Ken Werner <ken.werner@linaro.org> + +Index: gcc-linaro-4.7-2012.05/gcc/config.gcc +=================================================================== +--- gcc-linaro-4.7-2012.05.orig/gcc/config.gcc ++++ gcc-linaro-4.7-2012.05/gcc/config.gcc +@@ -1303,7 +1303,6 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu + tm_file="${tm_file} knetbsd-gnu.h" + ;; + esac +- tmake_file="${tmake_file} i386/t-linux64" + x86_multilibs="${with_multilib_list}" + if test "$x86_multilibs" = "default"; then + x86_multilibs="m64,m32" diff --git a/recipes-devtools/gcc/gcc-linaro-4.7/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/recipes-devtools/gcc/gcc-linaro-4.7/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch new file mode 100644 index 00000000..964c4bbb --- /dev/null +++ b/recipes-devtools/gcc/gcc-linaro-4.7/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch @@ -0,0 +1,33 @@ +Upstream-Status: Inappropriate [embedded specific] + +--- + configure | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +Index: gcc-4_7-branch/configure.ac +=================================================================== +--- gcc-4_7-branch.orig/configure.ac 2012-04-10 10:19:50.923337154 -0700 ++++ gcc-4_7-branch/configure.ac 2012-04-10 10:19:54.911337344 -0700 +@@ -2825,7 +2825,7 @@ + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in +Index: gcc-4_7-branch/configure +=================================================================== +--- gcc-4_7-branch.orig/configure 2012-04-10 10:19:50.911337153 -0700 ++++ gcc-4_7-branch/configure 2012-04-10 10:19:54.915337349 -0700 +@@ -7368,7 +7368,7 @@ + # for target_alias and gcc doesn't manage it consistently. + target_configargs="--cache-file=./config.cache ${target_configargs}" + +-FLAGS_FOR_TARGET= ++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET" + case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in |