From: Richard Purdie Date: Mon, 13 Jan 2025 17:55:52 +0000 (+0000) Subject: base: Switch virtual/cross-XXX to be under recipe specific providers X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6eeab1a5d7f23917b94c130e417d59afb757b546;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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. Signed-off-by: Richard Purdie --- diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index c95c3a586d..c1d6de100c 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass @@ -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: diff --git a/meta/conf/distro/include/default-providers.inc b/meta/conf/distro/include/default-providers.inc index 506d77811f..d3eefb754b 100644 --- a/meta/conf/distro/include/default-providers.inc +++ b/meta/conf/distro/include/default-providers.inc @@ -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" diff --git a/meta/recipes-devtools/binutils/binutils-cross.inc b/meta/recipes-devtools/binutils/binutils-cross.inc index b908393c1f..9c371e7e13 100644 --- a/meta/recipes-devtools/binutils/binutils-cross.inc +++ b/meta/recipes-devtools/binutils/binutils-cross.inc @@ -1,5 +1,4 @@ inherit cross -PROVIDES = "virtual/cross-binutils" PN = "binutils-cross-${TARGET_ARCH}" BPN = "binutils" diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb index b8c8ba9f58..6752659304 100644 --- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb +++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.43.1.bb @@ -1,7 +1,5 @@ require binutils-cross_${PV}.bb -PROVIDES = "virtual/nativesdk-cross-binutils" - inherit crosssdk PN = "binutils-crosssdk-${SDK_SYS}" diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc index 4549f92c2f..7afdf58577 100644 --- a/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/meta/recipes-devtools/gcc/gcc-cross.inc @@ -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")