[OE-core] [PATCH v3] base.bbclass: Fix matching of MACHINEOVERRIDES in COMPATIBLE_MACHINE

Richard Purdie richard.purdie at linuxfoundation.org
Mon Apr 8 21:31:02 UTC 2013


On Mon, 2013-04-08 at 17:58 -0300, Otavio Salvador wrote:
> When a MACHINEOVERRIDES has more than one value, split by ':' as usual
> OVERRIDES, this were not being properly checked in COMPATIBLE_MACHINE
> matching as we need to iterate over each SoC family and check if it is
> compatible or not.
> 
> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> ---
> Changes for v3:
> - Stop checking for SOC_FAMILY as it is just for compatibility with
>   old BSPs; we move to MACHINEOVERRIDES for this case (RP)
> 
>  meta/classes/base.bbclass | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index abd6a52..313359c 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -515,11 +515,12 @@ python () {
>          need_machine = d.getVar('COMPATIBLE_MACHINE', True)
>          if need_machine:
>              import re
> -            this_machine = d.getVar('MACHINE', True)
> -            if this_machine and not re.match(need_machine, this_machine):
> -                this_soc_family = d.getVar('SOC_FAMILY', True)
> -                if (this_soc_family and not re.match(need_machine, this_soc_family)) or not this_soc_family:
> -                    raise bb.parse.SkipPackage("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % this_machine)
> +            compat_machines.extend((d.getVar('MACHINEOVERRIDES', True) or "").split(":"))

No variable "compat_machines" exists before this line so this patch
cannot possibly work. What did you test?

We're close to release and I'm getting pushed hard in places like IRC to
take patches like this which clearly don't work :(

I'm not happy.

Cheers,

Richard





More information about the Openembedded-core mailing list