The following changes since commit 24f19fedb40d0af84beb8e9a6595ea06f09d4615:
gstreamer1.0-omx: use mulitple SCMs to fetch submodules (2014-12-31 08:22:53 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib ChenQi/sstatesig-logic
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=ChenQi/sstatesig-logic
Chen Qi (1):
sstatesig.py: fix logic in find_siginfo
meta/lib/oe/sstatesig.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--
1.9.1
For now, `bitbake-diffsig -t <recipe> <task>' doesn't work. This is
caused by a small logic mistake in find_siginfo in sstatesig.py.
The logic should be 'and' instead of 'or', otherwise, we will have
both siginfo and sigdata files in filedates which have the same checksum.
e.g.
/buildarea2/chenqi/sstate-cache/fc/sstate:sysstat:armv5te-poky-linux-gnueabi:10.2.1:r0:armv5te:3:fc861bf371c1b843b2843a3415eb5ff3_install.tgz.siginfo
/buildarea2/chenqi/poky/build-systemd/tmp/stamps/armv5te-poky-linux-gnueabi/sysstat/10.2.1-r0.do_install.sigdata.fc861bf371c1b843b2843a3415eb5ff3
So `bitbake-diffsig -t sysstat install' will output nothing even we actually
have changed something in do_install task.
Signed-off-by: Chen Qi <redacted>
---
meta/lib/oe/sstatesig.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
For now, `bitbake-diffsig -t <recipe> <task>' doesn't work. This is
caused by a small logic mistake in find_siginfo in sstatesig.py.
The logic should be 'and' instead of 'or', otherwise, we will have
both siginfo and sigdata files in filedates which have the same checksum.
e.g.
/buildarea2/chenqi/sstate-cache/fc/sstate:sysstat:armv5te-poky-linux-gnueabi:10.2.1:r0:armv5te:3:fc861bf371c1b843b2843a3415eb5ff3_install.tgz.siginfo
/buildarea2/chenqi/poky/build-systemd/tmp/stamps/armv5te-poky-linux-gnueabi/sysstat/10.2.1-r0.do_install.sigdata.fc861bf371c1b843b2843a3415eb5ff3
So `bitbake-diffsig -t sysstat install' will output nothing even we actually
have changed something in do_install task.
Signed-off-by: Chen Qi <redacted>
---
meta/lib/oe/sstatesig.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Paul Eggleton <hidden> Date: 2015-02-04 14:47:42
Hi Qi,
On Tuesday 06 January 2015 15:47:38 Chen Qi wrote:
quoted hunk
For now, `bitbake-diffsig -t <recipe> <task>' doesn't work. This is
caused by a small logic mistake in find_siginfo in sstatesig.py.
The logic should be 'and' instead of 'or', otherwise, we will have
both siginfo and sigdata files in filedates which have the same checksum.
e.g.
/buildarea2/chenqi/sstate-cache/fc/sstate:sysstat:armv5te-poky-linux-gnueabi
:10.2.1:r0:armv5te:3:fc861bf371c1b843b2843a3415eb5ff3_install.tgz.siginfo
/buildarea2/chenqi/poky/build-systemd/tmp/stamps/armv5te-poky-linux-gnueabi
/sysstat/10.2.1-r0.do_install.sigdata.fc861bf371c1b843b2843a3415eb5ff3
So `bitbake-diffsig -t sysstat install' will output nothing even we actually
have changed something in do_install task.
Signed-off-by: Chen Qi <redacted>
---
meta/lib/oe/sstatesig.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
I don't think this is the correct fix - if taskhashlist is specified but we
don't have enough files found in the stamps directory, we still want to look at
the sstate cache.
It is difficult to tell what's going on in this function, because this code is
now being used for several different purposes:
(1) the bitbake-diffsigs -t usage which is intended to be used to find out what
changed that caused a task to re-execute the last time (so we want the two
newest signatures).
(2) the bitbake -S printdiff usage which is intended to be used simply to find
out why sstate wasn't reused (so we want the two signatures with the smallest
difference)
(3) Additionally, as part of (1) and (2) the same function is also called
with specific task hashes which changes its behaviour.
I think this code should probably be refactored so it makes more sense, but
the minimal fix for the problem you discovered would be to make the bit that
looks in sstate-cache ignore hashes it has already found.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre