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:43:35 +0100 |
| commit | 6fe4fd234f779c29f1c47f3c0aa5d0f573caa3cc (patch) | |
| tree | 3f24b6c7284b325f824fe096f1f5fcc105541b38 | |
| parent | 2c196955a87e79f0b670de009fccb73ea47427ea (diff) | |
| download | poky-6fe4fd234f779c29f1c47f3c0aa5d0f573caa3cc.tar.gz | |
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.
(From OE-Core rev: ea872b735c92a30d03cfa32953e060430e6f7f0b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -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): | |||
| 93 | if prov != provexp and d.getVar(prov, False): | 93 | if prov != provexp and d.getVar(prov, False): |
| 94 | d.renameVar(prov, provexp) | 94 | d.renameVar(prov, provexp) |
| 95 | 95 | ||
| 96 | def translate_provide(prefix, prov): | ||
| 97 | if not prov.startswith("virtual/"): | ||
| 98 | return prefix + "-" + prov | ||
| 99 | if prov == "virtual/kernel": | ||
| 100 | return prov | ||
| 101 | prov = prov.replace("virtual/", "") | ||
| 102 | return "virtual/" + prefix + "-" + prov | ||
| 96 | 103 | ||
| 97 | mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() | 104 | mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split() |
| 98 | extramp = [] | 105 | extramp = [] |
| 99 | for p in mp: | 106 | for p in mp: |
| 100 | if p.endswith("-native") or "-crosssdk-" in p or p.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in p: | 107 | if p.endswith("-native") or "-crosssdk-" in p or p.startswith(("nativesdk-", "virtual/nativesdk-")) or 'cross-canadian' in p: |
| 101 | continue | 108 | continue |
| 102 | virt = "" | ||
| 103 | if p.startswith("virtual/"): | ||
| 104 | p = p.replace("virtual/", "") | ||
| 105 | virt = "virtual/" | ||
| 106 | for pref in prefixes: | 109 | for pref in prefixes: |
| 107 | extramp.append(virt + pref + "-" + p) | 110 | extramp.append(translate_provide(pref, p)) |
| 108 | d.setVar("MULTI_PROVIDER_WHITELIST", " ".join(mp + extramp)) | 111 | d.setVar("MULTI_PROVIDER_WHITELIST", " ".join(mp + extramp)) |
| 109 | 112 | ||
| 113 | abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE", True) or "").split() | ||
| 114 | extras = [] | ||
| 115 | for p in prefixes: | ||
| 116 | for a in abisafe: | ||
| 117 | extras.append(p + "-" + a) | ||
| 118 | d.appendVar("SIGGEN_EXCLUDERECIPES_ABISAFE", " " + " ".join(extras)) | ||
| 119 | |||
| 120 | siggen_exclude = (d.getVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", True) or "").split() | ||
| 121 | extras = [] | ||
| 122 | for p in prefixes: | ||
| 123 | for a in siggen_exclude: | ||
| 124 | a1, a2 = a.split("->") | ||
| 125 | extras.append(translate_provide(p, a1) + "->" + translate_provide(p, a2)) | ||
| 126 | d.appendVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", " " + " ".join(extras)) | ||
| 127 | |||
| 110 | python multilib_virtclass_handler_vendor () { | 128 | python multilib_virtclass_handler_vendor () { |
| 111 | if isinstance(e, bb.event.ConfigParsed): | 129 | if isinstance(e, bb.event.ConfigParsed): |
| 112 | for v in e.data.getVar("MULTILIB_VARIANTS", True).split(): | 130 | for v in e.data.getVar("MULTILIB_VARIANTS", True).split(): |
