]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
base: Switch virtual/cross-XXX to be under recipe specific providers
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 13 Jan 2025 17:55:52 +0000 (17:55 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 21 Jan 2025 23:07:20 +0000 (23:07 +0000)
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.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/multilib_global.bbclass
meta/conf/distro/include/default-providers.inc
meta/recipes-devtools/binutils/binutils-cross.inc
meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb
meta/recipes-devtools/gcc/gcc-cross.inc

index c95c3a586d35b3776a575e63fa1c965cf116e4d1..c1d6de100c9bd4b6ef376396ede7cb17c8db5a94 100644 (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:
index 506d77811fa8f14a1ca0fef57335d4d146eca486..d3eefb754bf6368a15d61fb8c3cab792fd269c75 100644 (file)
@@ -1,6 +1,7 @@
 #
 # Default virtual providers
 #
+BB_RECIPE_VIRTUAL_PROVIDERS = "virtual/cross-cc virtual/cross-c++ virtual/cross-binutils virtual/nativesdk-cross-cc virtual/nativesdk-cross-c++ virtual/nativesdk-cross-binutils"
 PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
 PREFERRED_PROVIDER_virtual/xserver-xf86 ?= "xserver-xorg"
 PREFERRED_PROVIDER_virtual/egl ?= "mesa"
index b908393c1f8cd9a39bb78c11c2e66aeae141986e..9c371e7e1379385a6a11d37d48532e003262ca20 100644 (file)
@@ -1,5 +1,4 @@
 inherit cross
-PROVIDES = "virtual/cross-binutils"
 
 PN = "binutils-cross-${TARGET_ARCH}"
 BPN = "binutils"
index b8c8ba9f586a82a60c8e4757760a5cf18a129c9e..6752659304e1c267c4c8e556820b05f9aef692c9 100644 (file)
@@ -1,7 +1,5 @@
 require binutils-cross_${PV}.bb
 
-PROVIDES = "virtual/nativesdk-cross-binutils"
-
 inherit crosssdk
 
 PN = "binutils-crosssdk-${SDK_SYS}"
index 4549f92c2f7ecb348d23545ba86daa08851bf2d5..7afdf585779175d9bf4e4df2e60f18ae1b55e481 100644 (file)
@@ -3,7 +3,6 @@ inherit cross
 INHIBIT_DEFAULT_DEPS = "1"
 EXTRADEPENDS = ""
 DEPENDS = "virtual/cross-binutils ${EXTRADEPENDS} ${NATIVEDEPS}"
-PROVIDES = "virtual/cross-cc virtual/c++"
 python () {
     if d.getVar("TARGET_OS").startswith("linux"):
         d.setVar("EXTRADEPENDS", "linux-libc-headers")