[poky] Wacky dependencies
Andy Ross
andy.ross at windriver.com
Fri Nov 16 10:14:40 PST 2012
On 11/16/2012 06:24 AM, Paul Eggleton wrote:
> The build system is not able to determine whether a variable within a recipe
> depends on a single value within DISTRO_FEATURES, it only knows that it looks
> at the variable; thus any change to DISTRO_FEATURES will change the hash of
> all recipes that read DISTRO_FEATURES.
>
> I'd like to fix this but given that we check if DISTRO_FEATURES and other list
> variables like it contain values using inline python code i.e.
> ${@base_contains(...)} this seems like it would be tricky to implement in a
> reliable way.
I've been playing with variable dependency tracking recently and saw
issues like this too. I don't think it can be done compatibly (in the
sense of preserving the existing list-in-a-string representation) at
all. The problem is that dependencies are only tracked at the
variable level and the "logical dependency" is on substructure in the
data that isn't visible to the dependency system.
You could do this with the existing data model though, but splitting
things out into distinct variables. Test for the presence of
"DISTRO_FEATURES_directfb" for example. Or use flags:
"DISTRO_FEATURES[directfb]". Flags would require bitbake modification
though, because they aren't part of the taskdeps field in the
siguatures.
DISTRO_FEATURES is interpreted outside bitbake, of course. But in a
more limited sense this could be done for OVERRIDES, as it's handled
internally and could be special-cased in the dependency handling.
Andy
More information about the poky
mailing list