[poky] Order of .conf processing?
Khem Raj
raj.khem at gmail.com
Thu Jul 21 12:17:49 PDT 2011
On Mon, Jul 18, 2011 at 7:34 AM, Gary Thomas <gary at mlbassoc.com> wrote:
> On 07/18/2011 08:28 AM, Richard Purdie wrote:
>>
>> On Mon, 2011-07-18 at 07:12 -0700, Chris Larson wrote:
>>>
>>> On Mon, Jul 18, 2011 at 7:05 AM, Gary Thomas<gary at mlbassoc.com> wrote:
>>>>
>>>> On 07/18/2011 07:59 AM, Chris Larson wrote:
>>>>>
>>>>> On Mon, Jul 18, 2011 at 6:51 AM, Gary Thomas<gary at mlbassoc.com>
>>>>> wrote:
>>>>>>
>>>>>> What's the order of processing of the various .conf files?
>>>>>>
>>>>>> It seems to me that bitbake.conf must be first as it seems
>>>>>> impossible to override settings in that file using a soft
>>>>>> assignment. In particular, local.conf often has soft settings
>>>>>> but these dont' seem to change what's in bitbake.conf
>>>>>
>>>>> BitBake only parses one global configuration file, bitbake.conf. It's
>>>>> bitbake.conf that includes/requires all the other configuration files.
>>>>> You can see the order by reading those inclusions in bitbake.conf.
>>>>> Historically, the intention was for the configuration file load order
>>>>> to be relatively parallel to the overrides order -- two different
>>>>> mechanisms for implementing what is essentially a layered architecture
>>>>> for the metadata, allowing, generally, more specific information to
>>>>> override more general information. The configuration file order
>>>>> differs slightly from that, however, as it's not possible to load the
>>>>> distro or machine config files after local.conf, as local.conf is
>>>>> generally where DISTRO and MACHINE are defined.
>>>>
>>>> In that case, isn't using ?= assignments in bitbake.conf a bit
>>>> misleading?
>>>
>>> First, there is one place variables can come from before the
>>> configuration files, and that's the process environment, for variables
>>> which aren't filtered out. Second, it could use ?= sanely after the
>>> configuration files are included, as well.
>>
>> It does this second part pretty clearly:
>>
>> [...]
>> require conf/xxx.conf
>> require conf/yyy.conf
>>
>> TUNE_ARCH ?= "INVALID"
>> TUNE_FEATURES ?= "${TUNE_FEATURES_tune-${TUNENAME}}"
>>
>> ##################################################################
>> # Weak variables (usually to retain backwards compatibility)
>> ##################################################################
>>
>> DL_DIR ?= "${TOPDIR}/downloads"
>> [...]
>>
>> so most of the ?= variables are after the includes.
>>
>> Looking at the file, there are some good candidates for either = or ??=
>> though, including I suspect the console ones which are likely what
>> prompted this?
>
> Yes, I tried to override TERMCMD using ?= in local.conf and that didn't
> work. Using = fixed it though.
?= means you still wanted others places to override it if any
local.conf settings are mostly like what you want to have override over others
so using = would be right here.
More information about the poky
mailing list