diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-09-30 14:50:42 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-10-01 07:40:35 +0100 |
commit | ea872b735c92a30d03cfa32953e060430e6f7f0b (patch) | |
tree | 955b3105b2d1583dcc91c951a380efc9438ea9c0 /meta | |
parent | 0a6d0d040ab7f885b667a34f4ddcc775d135c07c (diff) | |
download | openembedded-core-ea872b735c92a30d03cfa32953e060430e6f7f0b.tar.gz openembedded-core-ea872b735c92a30d03cfa32953e060430e6f7f0b.tar.bz2 openembedded-core-ea872b735c92a30d03cfa32953e060430e6f7f0b.zip |
multilib_global: Add handling of SIGGEN variables for multilib
multilib task signatures turned out to have issues since
SIGGEN_EXCLUDERECIPES_ABISAFE and SIGGEN_EXCLUDE_SAFE_RECIPE_DEP
did not have multilib mappings. This adds those mappings in which
in turn improves multilib task checksums to match the standard
non-mulitlib versions.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/multilib_global.bbclass | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index 612cfb6919..67dc72b76c 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass @@ -93,20 +93,38 @@ def preferred_ml_updates(d): if prov != provexp and d.getVar(prov, False): d.renameVar(prov, provexp) + def translate_provide(prefix, prov): + if not prov.startswith("virtual/"): + return prefix + "-" + prov + if prov == "virtual/kernel": + return prov + prov = prov.replace("virtual/", "") + return "virtual/" + prefix + "-" + prov mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() extramp = [] for p in mp: if p.endswith("-native") or "-crosssdk-" in p or p.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in p: continue - virt = "" - if p.startswith("virtual/"): - p = p.replace("virtual/", "") - virt = "virtual/" for pref in prefixes: - extramp.append(virt + pref + "-" + p) + extramp.append(translate_provide(pref, p)) d.setVar("MULTI_PROVIDER_WHITELIST", " ".join(mp + extramp)) + abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE", True) or "").split() + extras = [] + for p in prefixes: + for a in abisafe: + extras.append(p + "-" + a) + d.appendVar("SIGGEN_EXCLUDERECIPES_ABISAFE", " " + " ".join(extras)) + + siggen_exclude = (d.getVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", True) or "").split() + extras = [] + for p in prefixes: + for a in siggen_exclude: + a1, a2 = a.split("->") + extras.append(translate_provide(p, a1) + "->" + translate_provide(p, a2)) + d.appendVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", " " + " ".join(extras)) + python multilib_virtclass_handler_vendor () { if isinstance(e, bb.event.ConfigParsed): for v in e.data.getVar("MULTILIB_VARIANTS", True).split(): |