summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-10-02 13:09:50 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-10-04 18:26:50 +0100
commit20a86e16bc54b74fbdb2a3a407d54210ea262925 (patch)
tree03a42a71b8ab976a68d55a7e99db3041d9e5eee3
parent4e537df72786264b52294ac3d66c2b4dedb8df8c (diff)
downloadpoky-20a86e16bc54b74fbdb2a3a407d54210ea262925.tar.gz
cross-canadian: Fix TUNE_PKGARCH references
The cross-canadian compilers are now build once per architecture but were being installed into tune specific locations which is incorrect. This adjusts things so they are make TARGET_ARCH specific. We gain the tune specific parts from the target sysroot which remains tune specific, the compiler and tools are independent ot that. binutils/gcc require sysroot options but since we reset at runtime, these shouldn't have dependencies in the sstate checksums. They are therefore also excluded. With these patches, switching machines does not result in a rebuild of *-cross-canadian and the compiler is correctly located and referenced in the target images. (From OE-Core rev: f58acab6414fe96d9e07ebbe86b348d2ac2bed5f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/cross-canadian.bbclass10
-rw-r--r--meta/classes/toolchain-scripts.bbclass2
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross-canadian.inc5
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian.inc5
4 files changed, 18 insertions, 4 deletions
diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass
index c22be1a030..4387d05f78 100644
--- a/meta/classes/cross-canadian.bbclass
+++ b/meta/classes/cross-canadian.bbclass
@@ -73,12 +73,12 @@ target_exec_prefix := "${exec_prefix}"
73base_prefix = "${SDKPATHNATIVE}" 73base_prefix = "${SDKPATHNATIVE}"
74prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" 74prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
75exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" 75exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
76bindir = "${exec_prefix}/bin/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}" 76bindir = "${exec_prefix}/bin/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
77sbindir = "${bindir}" 77sbindir = "${bindir}"
78base_bindir = "${bindir}" 78base_bindir = "${bindir}"
79base_sbindir = "${bindir}" 79base_sbindir = "${bindir}"
80libdir = "${exec_prefix}/lib/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}" 80libdir = "${exec_prefix}/lib/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
81libexecdir = "${exec_prefix}/libexec/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}" 81libexecdir = "${exec_prefix}/libexec/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
82 82
83FILES_${PN} = "${prefix}" 83FILES_${PN} = "${prefix}"
84FILES_${PN}-dbg += "${prefix}/.debug \ 84FILES_${PN}-dbg += "${prefix}/.debug \
@@ -91,3 +91,7 @@ export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
91do_populate_sysroot[stamp-extra-info] = "" 91do_populate_sysroot[stamp-extra-info] = ""
92 92
93USE_NLS = "${SDKUSE_NLS}" 93USE_NLS = "${SDKUSE_NLS}"
94
95# We have to us TARGET_ARCH but we care about the absolute value
96# and not any particular tune that is enabled.
97TARGET_ARCH[vardepsexclude] = "TUNE_ARCH"
diff --git a/meta/classes/toolchain-scripts.bbclass b/meta/classes/toolchain-scripts.bbclass
index be5623bafe..8bdb17d8a8 100644
--- a/meta/classes/toolchain-scripts.bbclass
+++ b/meta/classes/toolchain-scripts.bbclass
@@ -10,7 +10,7 @@ toolchain_create_sdk_env_script () {
10 script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}} 10 script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}}
11 rm -f $script 11 rm -f $script
12 touch $script 12 touch $script
13 echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${bindir_nativesdk}/${REAL_MULTIMACH_TARGET_SYS}:$PATH' >> $script 13 echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${bindir_nativesdk}/${TARGET_SYS}:$PATH' >> $script
14 echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKTARGETSYSROOT}' >> $script 14 echo 'export PKG_CONFIG_SYSROOT_DIR=${SDKTARGETSYSROOT}' >> $script
15 echo 'export PKG_CONFIG_PATH=${SDKTARGETSYSROOT}${libdir}/pkgconfig' >> $script 15 echo 'export PKG_CONFIG_PATH=${SDKTARGETSYSROOT}${libdir}/pkgconfig' >> $script
16 echo 'export CONFIG_SITE=${SDKPATH}/site-config-${REAL_MULTIMACH_TARGET_SYS}' >> $script 16 echo 'export CONFIG_SITE=${SDKPATH}/site-config-${REAL_MULTIMACH_TARGET_SYS}' >> $script
diff --git a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc
index 4658badfa6..2da9017661 100644
--- a/meta/recipes-devtools/binutils/binutils-cross-canadian.inc
+++ b/meta/recipes-devtools/binutils/binutils-cross-canadian.inc
@@ -7,6 +7,11 @@ BPN = "binutils"
7DEPENDS = "flex-native bison-native virtual/${HOST_PREFIX}gcc-crosssdk virtual/nativesdk-libc nativesdk-zlib nativesdk-gettext" 7DEPENDS = "flex-native bison-native virtual/${HOST_PREFIX}gcc-crosssdk virtual/nativesdk-libc nativesdk-zlib nativesdk-gettext"
8EXTRA_OECONF += "--with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \ 8EXTRA_OECONF += "--with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \
9 " 9 "
10
11# We have to point binutils at a sysroot but we don't need to rebuild if this changes
12# e.g. we switch between different machines with different tunes.
13EXTRA_OECONF[vardepsexclude] = "TUNE_PKGARCH"
14
10do_install () { 15do_install () {
11 autotools_do_install 16 autotools_do_install
12 17
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 5908e72099..64bb6ba722 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -14,6 +14,11 @@ EXTRA_OECONF_PATHS = "--with-gxx-include-dir=${SDKPATH}/sysroots/${TUNE_PKGARCH}
14 --with-build-time-tools=${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin \ 14 --with-build-time-tools=${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin \
15 --with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \ 15 --with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \
16 --with-build-sysroot=${STAGING_DIR_TARGET}" 16 --with-build-sysroot=${STAGING_DIR_TARGET}"
17# We have to point gcc at a sysroot but we don't need to rebuild if this changes
18# e.g. we switch between different machines with different tunes.
19EXTRA_OECONF_PATHS[vardepsexclude] = "TUNE_PKGARCH"
20TARGET_ARCH[vardepsexclude] = "TUNE_ARCH"
21get_gcc_fpu_setting[vardepvalue] = ""
17 22
18# 23#
19# gcc-cross looks and finds these in ${exec_prefix} but we're not so lucky 24# gcc-cross looks and finds these in ${exec_prefix} but we're not so lucky