[OE-core] [PATCH 1/1] base.bbclass: fix COMPATIBLE_MACHINE

Denys Dmytriyenko denis at denix.org
Mon Apr 11 02:29:25 UTC 2016


On Mon, Apr 11, 2016 at 10:11:41AM +0800, Robert Yang wrote:
> On 04/11/2016 09:56 AM, Christopher Larson wrote:
> >On Sun, Apr 10, 2016 at 6:17 PM Robert Yang <liezhi.yang at windriver.com
> ><mailto:liezhi.yang at windriver.com>> wrote:
> >
> >
> >
> >    On 04/11/2016 03:06 AM, Denys Dmytriyenko wrote:
> >     > On Sun, Apr 10, 2016 at 07:14:56AM -0700, Robert Yang wrote:
> >     >> It mismatched such as qemux86 and qemux86-64 which was incorrect, for
> >     >> example:
> >     >> COMPATIBLE_MACHINE = "(qemux86)"
> >     >
> >     > That will match qemux86 and qemux86-64 and is by design! It's a regular
> >
> >    I'm afraid no, please see my last reply, for others such as
> >    MACHINE_OVERRIDES, they never design to work in such a way, so I don't
> >    think that COMPATIBLE_MACHINE should work in this way. If you really
> >    want to match more, I think that you can set it as "(qemux86.*)" or
> >    something familiar.
> >
> >
> >That's an apples and oranges comparison. MACHINEOVERRIDES is part of OVERRIDES,
> >which has *completely* different semantics than COMPATIBLE_*. COMPATIBLE_MACHINE
> >is a regex variable more like BBMASK than anything else, and it's been that way
> >since we introduced it. OVERRIDES has nothing to do with regular expressions.

I completely agree with Chris here! And Robert, what is with this "I think it 
should work this way" reasoning? I'm arguing with you in another thread 
exactly due to this, where your only explanation was "I think that one recipe 
should only have one -dev package, I'm not sure whether this is right or not" 
and hence you summarize "it should"...


> Since introduced ? I did a grep in oe-core and meta-openembedded, it seems
> that no ?

Not really sure what you are trying to say here... Are you arguing that it was 
never used as a regular expression? I beg to differ and I can provide multiple 
examples for that:

http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-devtools/nodejs/nodejs_4.4.1.bb#n8
http://arago-project.org/git/?p=meta-arago.git;a=blob;f=meta-arago-distro/recipes-core/images/arago-console-image.bb;hb=HEAD#l6

It was like that for 15+ years, since OpenEmbedded Classic days...


> In oe-core:
> 
> $ grep 'COMPATIBLE_MACHINE.*qemux86' meta/recipes* -r
> linux-yocto_4.4.bb:COMPATIBLE_MACHINE =
> "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
> linux-yocto-tiny_4.4.bb:COMPATIBLE_MACHINE = "(qemux86)"
> linux-yocto-dev.bb:COMPATIBLE_MACHINE =
> "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64)"
> linux-yocto-tiny_4.1.bb:COMPATIBLE_MACHINE = "(qemux86)"
> linux-yocto-rt_4.1.bb:COMPATIBLE_MACHINE =
> "(qemux86|qemux86-64|qemuarm|qemuppc|qemumips)"
> linux-yocto-rt_4.4.bb:COMPATIBLE_MACHINE =
> "(qemux86|qemux86-64|qemuarm|qemuppc|qemumips)"
> linux-yocto_4.1.bb:COMPATIBLE_MACHINE =
> "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
> 
> In meta-openembedded:
> vboxguestdrivers_4.3.30.bb:COMPATIBLE_MACHINE = "(qemux86|qemux86-64)"
> 
> We can see that the only one sets qemux86 but no set qemux86-64 is
> linux-yocto-tiny:
> COMPATIBLE_MACHINE = "(qemux86)"

Do you know that the world doesn't end with oe-core and meta-oe?


> And it really doesn't work with qemux86-64.

Well, then fix it by setting it to "qemu86$"

-- 
Denys



More information about the Openembedded-core mailing list