[meta-freescale] [meta-fsl-arm PATCH v2 00/16] Machine overrides extender - reduce code duplication

Tom Hochstein tom.hochstein at nxp.com
Mon Sep 5 09:37:05 PDT 2016


> -----Original Message-----
> From: Otavio Salvador [mailto:otavio.salvador at ossystems.com.br]
> Sent: Monday, September 05, 2016 7:56 AM

> The problem of the use of a machine setting is the meaning of it. It
> says you can change it for every machine and you can't.

This is not the meaning of a machine feature. The manual gives the definition as a "hardware feature the MACHINE is capable of supporting [1]". Note the word 'capable'. A machine feature is in fact inherent to a given machine and not something that can vary.

> Machine A - imxgpu3d
> Machine B - without imxgpu3d
> 
> and consider both are Quad. How qtbase will be build? Both will end on
> cortexa9hf_neon_mx6qdl causing the package to be generated with
> different contents for A and B. This is the reason I said it end being
> machine specific.

This example should not be implemented through MACHINE_FEATURES solely, but instead through a combination of MACHINE_FEATURES, DISTRO_FEATURES, and COMBINED_FEATURES. COMBINED_FEATURES is defined thus:

Provides a list of hardware features that are enabled in both MACHINE_FEATURES and DISTRO_FEATURES. This select list of features contains features that make sense to be controlled both at the machine and distribution configuration level. For example, the "bluetooth" feature requires hardware support but should also be optional at the distribution level, in case the hardware supports Bluetooth but you do not ever intend to use it. [2]

To express this succinctly: MACHINE_FEATURES = capability, DISTRO_FEATURES = enablement, and COMBINED_FEATURES = capability and enablement. This is how the example should be implemented:

MACHINE_FEATURES 	- contains imxgpu3d for Machine A and Machine B
DISTRO_FEATURES	- contains imxgpu3d for Machine A only
COMBINED_FEATURES	- contains imxgpu3d for Machine A only

So, different distro, different tmpdir, and no reuse problem :-)

Tom

[1] http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#var-MACHINE_FEATURES
[2] http://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#var-COMBINED_FEATURES



More information about the meta-freescale mailing list