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

Eric Bénard eric at eukrea.com
Mon Apr 8 13:37:18 UTC 2013


Hi Otavio,

Le Mon, 8 Apr 2013 10:31:17 -0300,
Otavio Salvador <otavio at ossystems.com.br> a écrit :

> On Sun, Apr 7, 2013 at 2:37 AM, Eric Bénard <eric at eukrea.com> wrote:
> > Le Sat, 6 Apr 2013 17:58:30 -0300,
> > Otavio Salvador <otavio at ossystems.com.br> a écrit :
> >
> >> On Sat, Apr 6, 2013 at 3:02 PM, Eric Bénard <eric at eukrea.com> wrote:
> >> > Hi Otavio,
> >> >
> >> > Le Sat,  6 Apr 2013 14:17:48 -0300,
> >> > Otavio Salvador <otavio at ossystems.com.br> a écrit :
> >> >> +            compat_machines = [d.getVar('MACHINE', True)]
> >> >> +            compat_machines.extend((d.getVar('SOC_FAMILY', True) or "").split(":"))
> >> >> +            for this_machine in compat_machines:
> >> >> +                if re.match(need_machine, this_machine):
> >> >> +                    break
> >> >> +            else:
> >> >> +                raise bb.parse.SkipPackage("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % this_machine)
> >> >>
> >> > aren't you breaking this log here vs what is was supposed to
> >> > print before ?
> >>
> >> The 'else' is used when no 'break' is done inside of for loop.
> >>
> > but will this_machine contain the value of the MACHINE variable ?
> 
> Yes, check:
> 
> ...
> +            compat_machines = [d.getVar('MACHINE', True)]
> +            compat_machines.extend((d.getVar('SOC_FAMILY', True) or
> "").split(":"))
> ...
> 
I'm not very experienced in python so sorry is that's a stupid
remark but after these lines you are using this_machine to go
through the content of compat_machines so in the end, when it reach the
log message it will contain the last value in compat_machine (and thus
the last one in SOC_FAMILY instead of the machine name) ?

Eric




More information about the Openembedded-core mailing list