Hello,

I have encountered the problem the whole distribution gets rebuilt when
I change a single, completely unrelated variable (e.g. BB_DISKMON_DIRS).

Dumping data in _build_data() (siggen.py) revealed that sometimes a
gitpkgv_do_configure() (or _do_compile/install...) function is in the
deps, sometimes not.  The recipes where this happens (e.g. m4) do not
inherit gitpkgv and it is not included globally either.

Further debugging[1] shows

| ERROR: calledvar=autotools_do_configure, vars=[['gitpkgv_do_configure', 
'autotools_do_configure'], ['do_configure', 'gitpkgv_do_configure']], 
allvars=['do_configure', 'autotools_do_configure', 'gitpkgv_do_configure'], 
classes=[None, 'gitpkgv', 'autotools']

for such a recipe (note the 'gitpkgv_do_configure')


For me, it seems that this depends on the (random) order in which recipes
are read.  E.g. when a recipe using 'gitpkgv' is read first, the global
'classes' array will contain 'gitpkgv' and ExportFuncsNode() is constructed
with it.

But when m4 is read before the first recipe using 'gitpkgv', it won't be
contained in 'classes' and the corresponding ExportFuncsNode() will not
create this variable.


Does somebody know how to fix this?


Enrico

Footnotes: 
[1]  
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -207,6 +207,8 @@ class ExportFuncsNode(AstNode):
 
                 for flag in [ "func", "python" ]:
                     if data.getVarFlag(calledvar, flag):
+                        if var == 'gitpkgv_do_configure':
+                            bb.error("calledvar=%s, vars=%s, allvars=%s, 
classes=%s" % (calledvar,vars,allvars,self.classes))
                         data.setVarFlag(var, flag, data.getVarFlag(calledvar, 
flag))
                 for flag in [ "dirs" ]:
                     if data.getVarFlag(var, flag):

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to