diff mbox series

multilib: make preferred_provider mirroring deterministic

Message ID 20260907132737.106279-1-efe.canicoz@atlascopco.com
State Under Review
Headers show
Series multilib: make preferred_provider mirroring deterministic | expand

Commit Message

Efe Can Icoz Sept. 7, 2026, 1:27 p.m. UTC
Sort PREFERRED_PROVIDER_ and PREFERRED_RPROVIDER_ lists before iterating over
them to make multilib mirroring deterministic. Otherwise ordering becomes
random and if base version comes after overriden version, new created
multilib-base version is wiping previously created multilib-overriden versions
in setVar function.

Sorting providers and rproviders makes sure that base versions of any variable
comes before any of it's override definitions.

Signed-off-by: Efe Can Icoz <efe.canicoz@atlascopco.com>
---
 meta/classes/multilib_global.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass
index d9372d9ed1..d936dfe787 100644
--- a/meta/classes/multilib_global.bbclass
+++ b/meta/classes/multilib_global.bbclass
@@ -67,7 +67,7 @@  def preferred_ml_updates(d):
     sort_versions(required_versions, "REQUIRED")
     sort_versions(preferred_versions, "PREFERRED")
 
-    for prov in providers:
+    for prov in sorted(providers):
         val = d.getVar(prov, False)
         pkg = prov.replace("PREFERRED_PROVIDER_", "")
         if pkg.endswith("-native") or "-crosssdk-" in pkg or pkg.startswith(("nativesdk-", "virtual/nativesdk-")):
@@ -112,7 +112,7 @@  def preferred_ml_updates(d):
         if prov != provexp and d.getVar(prov, False):
             d.renameVar(prov, provexp)
 
-    for prov in rproviders:
+    for prov in sorted(rproviders):
         val = d.getVar(prov, False)
         pkg = prov.replace("PREFERRED_RPROVIDER_", "")
         for p in prefixes: