Merge pull request #64 from MentorEmbedded/sourcery-sstate-fixes

Improve external toolchain sstate checksum handling
This commit is contained in:
Noor-Ahsan
2015-04-02 19:26:49 +05:00
4 changed files with 27 additions and 0 deletions

View File

@@ -60,6 +60,14 @@ EXTERNAL_AUTO_PROVIDE ?= "0"
EXTERNAL_AUTO_PROVIDE[type] = "boolean"
EXTERNAL_AUTO_PROVIDE_class-target ?= "1"
# We don't care if this path references other variables
EXTERNAL_TOOLCHAIN[vardepvalue] = "${EXTERNAL_TOOLCHAIN}"
# We don't want to rebuild if the path to the toolchain changes, only if the
# toolchain changes
external_toolchain_do_install[vardepsexclude] += "EXTERNAL_TOOLCHAIN"
EXTERNAL_INSTALL_SOURCE_PATHS[vardepsexclude] += "EXTERNAL_TOOLCHAIN"
python () {
# Skipping only matters up front
if d.getVar('BB_WORKERCONTEXT', True) == '1':

View File

@@ -20,3 +20,5 @@ def external_run(d, cmd, *args):
return output
return 'UNKNOWN'
external_run[vardepsexclude] += "EXTERNAL_TOOLCHAIN TMPDIR"

View File

@@ -82,7 +82,14 @@ def external_target_sys(d):
return triplet
return '${TARGET_SYS}'
# We need our -cross recipes to rebuild when the external toolchain changes
BB_HASHBASE_WHITELIST_remove = "EXTERNAL_TOOLCHAIN"
# All we care about for the signatures is the result, not how we got there, so
# we don't want EXTERNAL_TARGET_SYSTEMS included.
EXTERNAL_TARGET_SYS ?= "${@external_target_sys(d)}"
EXTERNAL_TARGET_SYS[vardepvalue] = "${EXTERNAL_TARGET_SYS}"
EXTERNAL_TARGET_SYS[vardepsexclude] += "EXTERNAL_TARGET_SYSTEMS EXTERNAL_TOOLCHAIN"
TARGET_PREFIX = "${EXTERNAL_TARGET_SYS}-"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}"
@@ -175,6 +182,7 @@ def sourcery_version(d):
SOURCERY_VERSION = "${@sourcery_version(d)}"
SOURCERY_VERSION_allarch = ""
SOURCERY_VERSION[vardepvalue] = "${SOURCERY_VERSION}"
# Add sourcery toolchain version to external recipe versions
EXTERNAL_PV_SUFFIX ?= "-${SOURCERY_VERSION}"

View File

@@ -11,3 +11,12 @@ BBFILES += "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.%s' % (layer, ext) \
for layer in '${BBFILE_COLLECTIONS}'.split() for ext in ['bb', 'bbappend'])}"
TCMODE = "external-sourcery"
# These will rebuild when EXTERNAL_TOOLCHAIN changes, but we don't want
# everything to rebuild in such a case.
SIGGEN_EXCLUDERECIPES_ABISAFE += "\
gcc-external-cross \
gcc-external-cross-${TARGET_ARCH} \
binutils-external-cross \
binutils-external-cross-${TARGET_ARCH} \
"