All of lore.kernel.org
 help / color / mirror / Atom feed
* Complete rebuilds due to random hashes
@ 2012-12-07 10:26 Enrico Scholz
  2012-12-07 12:14   ` [bitbake-devel] " Richard Purdie
  2012-12-07 12:23   ` [bitbake-devel] " Richard Purdie
  0 siblings, 2 replies; 7+ messages in thread
From: Enrico Scholz @ 2012-12-07 10:26 UTC (permalink / raw)
  To: bitbake-devel, openembedded-core

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):



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-12-10 11:14 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-07 10:26 Complete rebuilds due to random hashes Enrico Scholz
2012-12-07 12:14 ` Richard Purdie
2012-12-07 12:14   ` [bitbake-devel] " Richard Purdie
2012-12-07 12:23 ` Richard Purdie
2012-12-07 12:23   ` [bitbake-devel] " Richard Purdie
2012-12-10 10:59   ` Enrico Scholz
2012-12-10 10:59     ` [bitbake-devel] " Enrico Scholz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.