On Fri, 2012-09-21 at 17:40 +0100, Paul Eggleton wrote:
> 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 <[email protected]>
> ---
>  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)


We can't do this due to MULTILIB_SAVE_VARNAME which may then get
influenced by the PN change. This is why the PN setting is duplicated,
we probably need to just duplicate the MLPREFIX line too. Ugly but such
is life :/

Cheers

Richard




_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to