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

Robert Yang liezhi.yang at windriver.com
Mon Apr 11 01:10:56 UTC 2016



On 04/11/2016 01:30 AM, Christopher Larson wrote:
> On Sun, Apr 10, 2016 at 7:16 AM Robert Yang <liezhi.yang at windriver.com
> <mailto:liezhi.yang at windriver.com>> wrote:
>
>     It mismatched such as qemux86 and qemux86-64 which was incorrect, for
>     example:
>     COMPATIBLE_MACHINE = "(qemux86)"
>     But it treated MACHINE = "qemux86-64" as matched. The similar to others.
>
>     This patch fixes the problem.
>
>     Signed-off-by: Robert Yang <liezhi.yang at windriver.com
>     <mailto:liezhi.yang at windriver.com>>
>
>
> Did you verify that no recipes are in fact relying on this behavior? This

This recipe:
meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb:
COMPATIBLE_MACHINE = "(qemux86)"

And only when MACHINE="qemux86" works well, if MACHINE="qemux86-64",
there is no errors or warnings when building, but a lot of unexpected errors
when running.

> variable has always been a regex, so this has always been the case. Also the ^

Ah, yes, '^' is not needed, it's a little late last night, so I was confused.
Updated in the repo:

   git://git.openembedded.org/openembedded-core-contrib rbt/base
   http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/base

Robert Yang (1):
   base.bbclass: fix COMPATIBLE_MACHINE


diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index f9697a9..dc43406 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -469,7 +469,7 @@ python () {
          import re
          compat_machines = (d.getVar('MACHINEOVERRIDES', True) or "").split(":")
          for m in compat_machines:
-            if re.match(need_machine, m):
+            if re.match(need_machine + '$', m):
                  break
          else:
              raise bb.parse.SkipPackage("incompatible with machine %s (not in 
COMPATIBLE_MACHINE)" % d.getVar('MACHINE', True))

// Robert

> is unnecessary, re.match always matches at the beginning of the string,
> re.search is the one that does not.




More information about the Openembedded-core mailing list