]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
staging/multilib: Fix manifest corruption
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 8 Mar 2023 10:12:45 +0000 (10:12 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 9 Mar 2023 21:06:28 +0000 (21:06 +0000)
The previous fix wasn't enough to address all the possible ways the
manifests might be ordered. Rework the previous fix so it is tied
to the multilib cross-canadian code which is causing the problem.

RECIPE_SYSROOT_MANIFEST_SUBDIR is not documented as I'd hope nobody
ever needs to use this outside the core multilib code.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-global/staging.bbclass
meta/classes/multilib.bbclass

index e6d0d1d55cf94ed5bf9e00a62f2ce4578481b696..a058d344fde9eccafb98082ce1425dce94741afb 100644 (file)
@@ -275,9 +275,10 @@ python extend_recipe_sysroot() {
     pn = d.getVar("PN")
     stagingdir = d.getVar("STAGING_DIR")
     sharedmanifests = d.getVar("COMPONENTS_DIR") + "/manifests"
-    mlprefix = d.getVar("MLPREFIX")
-    if mlprefix:
-        sharedmanifests = sharedmanifests + "/" + mlprefix
+    # only needed by multilib cross-canadian since it redefines RECIPE_SYSROOT
+    manifestprefix = d.getVar("RECIPE_SYSROOT_MANIFEST_SUBDIR")
+    if manifestprefix:
+        sharedmanifests = sharedmanifests + "/" + manifestprefix
     recipesysroot = d.getVar("RECIPE_SYSROOT")
     recipesysrootnative = d.getVar("RECIPE_SYSROOT_NATIVE")
 
index 10a4ef9c37aa6cffd9193475f0f478c9057afd41..8a1a51aabad67f52c529b3f7c5e904b746d77b6f 100644 (file)
@@ -51,6 +51,7 @@ python multilib_virtclass_handler () {
         e.data.setVar("RECIPE_SYSROOT", "${WORKDIR}/recipe-sysroot")
         e.data.setVar("STAGING_DIR_TARGET", "${WORKDIR}/recipe-sysroot")
         e.data.setVar("STAGING_DIR_HOST", "${WORKDIR}/recipe-sysroot")
+        e.data.setVar("RECIPE_SYSROOT_MANIFEST_SUBDIR", "nativesdk-" + variant)
         e.data.setVar("MLPREFIX", variant + "-")
         override = ":virtclass-multilib-" + variant
         e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override)