On Fri, 29 Apr 2016 12:00:58 Gary Thomas wrote: > On 2016-04-29 11:51, Paul Eggleton wrote: > > On Fri, 29 Apr 2016 09:24:23 Gary Thomas wrote: > >> On 2016-04-29 09:16, Paul Eggleton wrote: > >>> On Fri, 29 Apr 2016 08:06:16 Gary Thomas wrote: > >>>> On 2016-04-29 07:08, Paul Eggleton wrote: > >>>>> 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) > >>> > >>> Ah, one thing... do your machine names have uppercase characters in them > >>> (as your pseudo-examples above do)? If so that was a 2.1 change; > >>> anything > >>> that is to be used as an override must now be lower case (so DISTRO, > >>> MACHINE, etc.) > >> > >> Indeed, my machine names do have an upper case letter in them. > >> Any suggestions for how to handle this (short of renaming everything > >> which > >> would be a HUGE chore)? > > > > It's no longer supported I'm afraid, BitBake's datastore is now coded to > > expect lowercase for all override values. You say it's a huge chore but > > surely a grep -l | xargs -n1 sed -i would do it? > > If I were to rename my target (MACHINE), I'd then have to go through > and rename all of the directories in the recipes that hold machine > customizations and there are quite a few of those. Similarly I'd > have to rework all the recipes that use the old names (with upper case > letters) to the new ones. Not impossible, but quite a lot of work.
That is unfortunate, but again should be pretty easy to automate (assuming they are local of course and not proliferated across many users' build machines). > Short of actually renaming the target machines, I could add an additional > override (in <MACHINE>.conf) that is lowercase only and update just the > recipes to use that instead. > > By experimentation, I have found that XYZ_append_<MACHINE> seems to do > the correct thing, even when <MACHINE> has upper case letters. Maybe this > is an oversight that will be fixed? I'm not sure - Richard? Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto