DORMANTno replies

[PATCH] multilib: make preferred_provider mirroring deterministic

From: Efe Can Icoz <hidden>
Date: 2026-09-07 13:27:52
Subsystem: the rest · Maintainer: Linus Torvalds

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 <redacted>
---
 meta/classes/multilib_global.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
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:
-- 
2.43.0

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help