From bb5fe4c35dcc8df0acd29c6d7f43de82d5744b75 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 24 Jan 2017 17:48:09 +0000 Subject: staging/allarch: Remove hardcoded PACKAGE_ARCHS from the class The code was making an assumption that the only PACKAGE_ARCH in use was TUNE_PKGARCH. This is incorrect so iterate over the list from PACKAGE_EXTRA_ARCH instead. We also need to change allarch to preserve this variable, else the staging code doesn't function. We do this in a way which clears the variable history so that the task hashes remain unaffected. [Thanks to Andrew Goodbody for testing/fixing] (From OE-Core rev: b1bab7a6eff6b195824be7d754de58c6e9ee2bfb) Signed-off-by: Richard Purdie --- meta/classes/staging.bbclass | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'meta/classes/staging.bbclass') diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass index fc387eaf4b..b97f26127f 100644 --- a/meta/classes/staging.bbclass +++ b/meta/classes/staging.bbclass @@ -304,7 +304,9 @@ def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d): pkgarchs = ['${BUILD_ARCH}', '${BUILD_ARCH}_*'] targetdir = nativesysroot else: - pkgarchs = ['${MACHINE_ARCH}', '${TUNE_PKGARCH}', 'allarch'] + pkgarchs = ['${MACHINE_ARCH}'] + pkgarchs = pkgarchs + list(reversed(d.getVar("PACKAGE_EXTRA_ARCHS").split())) + pkgarchs.append('allarch') targetdir = targetsysroot bb.utils.mkdirhier(targetdir) @@ -528,11 +530,13 @@ python extend_recipe_sysroot() { manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS}-%s.populate_sysroot" % c) native = True else: - manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${MACHINE_ARCH}-%s.populate_sysroot" % c) - if not os.path.exists(manifest): - manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${TUNE_PKGARCH}-%s.populate_sysroot" % c) - if not os.path.exists(manifest): - manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-allarch-%s.populate_sysroot" % c) + pkgarchs = ['${MACHINE_ARCH}'] + pkgarchs = pkgarchs + list(reversed(d2.getVar("PACKAGE_EXTRA_ARCHS").split())) + pkgarchs.append('allarch') + for pkgarch in pkgarchs: + manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-%s-%s.populate_sysroot" % (pkgarch, c)) + if os.path.exists(manifest): + break if not os.path.exists(manifest): bb.warn("Manifest %s not found?" % manifest) else: -- cgit v1.2.3-54-g00ecf