[yocto] Change in override behavior?

Gary Thomas gary at mlbassoc.com
Thu Apr 28 23:06:16 PDT 2016


On 2016-04-29 07:08, Paul Eggleton wrote:
> Hi Gary,
>
> On Fri, 29 Apr 2016 06:24:55 Gary Thomas wrote:
>> I used to be able to use something like this:
>>     VARIABLE = "xyz"
>> and maybe in a .bbappend use
>>     VARIABLE_mymachine = "xyzzy"
>> where 'mymachine' is in OVERRIDES, which resulted in
>>     VARIABLE = "xyzzy"
>>
>> This doesn't seem to work the same today, what I get is
>>     VARIABLE = "xyz"
>>     VARIABLE_mymachine = "xyzzy"
>>
>> Has this changed (recently)?  Why?  How to I make use of overrides?
>>
>> Note: I'm using the latest Poky master (a9b503b26) updated 2016-04-28
>
> When you say this is what you're seeing, how are you checking this? bitbake -e
> ? Which part of that output are you looking at?
>
> You *will* now see VARIABLE_mymachine in bitbake -e output even if "mymachine"
> is in OVERRIDES - that's because the overridden values stay in the datastore
> instead of a "finalisation" step eliminating them, in order to allow OVERRIDES
> to be changed dynamically (possibly multiple times) and still get the
> datastore contents you expect. That change was made in the 2.0 release
> (jethro). However That should not affect the final value of VARIABLE if
> "mymachine" is in OVERRIDES however. Are you sure you are seeing what you
> think you're seeing? If so, is the bbappend in fact being applied? Because if
> what you describe was really happening then pretty much the entire system
> would be broken. I just checked a similar case here and I see the expected
> results.

Yes, I am using 'bitbake -e <recipe> | grep ^VARIABLE' to look at this.

In my main recipe, I have this:
   SOME_OTHER_VARIABLE ?= "${MACHINE}"
and my .bbappend for that recipe has these lines:
   SOME_OTHER_VARIABLE_my-target-A = "something-else1"
   SOME_OTHER_VARIABLE_my-target-B = "something-else2"
and local.conf has
   MACHINE="my-target-B"

With Yocto 2.0 (Poky ceeb52a2544) I get this:
   SOME_OTHER_VARIABLE = "something-else2"
   SOME_OTHER_VARIABLE_my-target-A = "something-else1"
   SOME_OTHER_VARIABLE_my-target-B = "something-else2"

With today's (Poky a9b503b26) I get this:
   SOME_OTHER_VARIABLE = "my-target-B"
   SOME_OTHER_VARIABLE_my-target-A = "something-else1"
   SOME_OTHER_VARIABLE_my-target-B = "something-else2"

I also use this mechanism to set COMPATIBLE_MACHINE a lot and
that doesn't seem to be working the same either.

Am I doing something incorrectly (and just got away with it for years)?

n.b. If you're interested, I can share the .bb/.bbappend files
with you privately (I can't put them on the public list)

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the yocto mailing list