base: Switch virtual/cross-XXX to be under recipe specific providers

Currently, providers are set on a global config basis. This change allows
for a select set of providers to be configured using BB_RECIPE_VIRTUAL_PROVIDERS
on a per recipe basis. This would allow for the selection of virtual/cross-cc
as gcc or clang for example.

The PROVIDERS are removed from the recipes so that if a version of the
dependency accidentally slips through, the build will fail and the user
can correct the issue.

(From OE-Core rev: 6eeab1a5d7f23917b94c130e417d59afb757b546)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2025-01-13 17:55:52 +00:00
parent 90e0a0f7f4
commit 6b1e65b7d6
5 changed files with 7 additions and 4 deletions

View File

@@ -155,6 +155,12 @@ def preferred_ml_updates(d):
extramp.append(translate_provide(pref, p))
d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp))
virtprovs = d.getVar("BB_RECIPE_VIRTUAL_PROVIDERS").split()
for p in virtprovs.copy():
for pref in prefixes:
virtprovs.append(translate_provide(pref, p))
d.setVar("BB_RECIPE_VIRTUAL_PROVIDERS", " ".join(virtprovs))
abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split()
extras = []
for p in prefixes: