aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Werner <ken.werner@linaro.org>2012-05-30 13:07:14 +0200
committerKen Werner <ken.werner@linaro.org>2012-05-30 13:07:14 +0200
commit561a0deb6b96f10261570d33b1ec8ece991bf166 (patch)
tree076b37e82641d2aeb79b46ccc8d8762651e10ec9
parenta936325862a143f39ccdcbd6a6468856b5493e64 (diff)
Add patches that allows to build the Linaro GCC the OE-Core way
The 64bithack.patch causes the GCC to install libssp and libstdc++-v3 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 the 64bithack.patch does. The gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch changes the compiler to respect OEs ARCH_FLAGS_FOR_TARGET environment variable when building libgcc and friends. This variable contains things like -march= and -mfloat-abi=. This change fixes a build failure when using the Linaro GCC in conjunction with a hard float configuration. Signed-off-by: Ken Werner <ken.werner@linaro.org>
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.6.inc4
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.6/64bithack.patch28
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch33
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.7.inc4
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.7/64bithack.patch27
-rw-r--r--recipes-devtools/gcc/gcc-linaro-4.7/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch33
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