[OE-core] [PATCH 1/2] classes/multilib: ensure MLPREFIX is set for image recipes

Paul Eggleton paul.eggleton at linux.intel.com
Fri Sep 21 16:40:36 UTC 2012


We need MLPREFIX to be set so that oe.utils.prune_suffix() (as used for
the value of BPN) can derive the bare name from the multilib-extended
name for image recipes. BPN being set correctly avoids missing file
warnings during parse from the file checksum code for (unusual) images
that set SRC_URI, such as build-appliance-image.

First half of the fix for [YOCTO #3146].

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
 meta/classes/multilib.bbclass |   14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index b1a593e..25cf068 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -11,13 +11,17 @@ python multilib_virtclass_handler () {
     if bb.data.inherits_class('kernel', e.data) or bb.data.inherits_class('module-base', e.data):
         raise bb.parse.SkipPackage("We shouldn't have multilib variants for the kernel")
 
-    if bb.data.inherits_class('image', e.data):
-        e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
-        return
-
     if bb.data.inherits_class('native', e.data):
         raise bb.parse.SkipPackage("We can't extend native recipes")
 
+    # Set variables suitable for image recipes (as well as everything else)
+    e.data.setVar("MLPREFIX", variant + "-")
+    e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
+
+    if bb.data.inherits_class('image', e.data):
+        # We've set all we need to set for images here
+        return
+
     save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME", True) or ""
     for name in save_var_name.split():
         val=e.data.getVar(name, True)
@@ -29,8 +33,6 @@ python multilib_virtclass_handler () {
  
     override = ":virtclass-multilib-" + variant
 
-    e.data.setVar("MLPREFIX", variant + "-")
-    e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
     e.data.setVar("SHLIBSDIR_virtclass-multilib-" + variant ,e.data.getVar("SHLIBSDIR", False) + "/" + variant)
     if e.data.getVar("TARGET_VENDOR_virtclass-multilib-" + variant, False) is None:
 	    e.data.setVar("TARGET_VENDOR_virtclass-multilib-" + variant, e.data.getVar("TARGET_VENDOR", False) + "ml" + variant)
-- 
1.7.9.5





More information about the Openembedded-core mailing list