[yocto] Shared state doesn't live up to its name?
Gary Thomas
gary at mlbassoc.com
Thu Dec 1 18:51:35 PST 2016
On 2016-12-01 18:35, Paul Eggleton wrote:
> On Thu, 01 Dec 2016 10:27:50 Gary Thomas wrote:
>> I have a build machine where I build for lots of targets. On
>> all of these targets (save a primary), I set the SSTATE_MIRROR
>> to point to the sstate-cache of the primary target. I always build
>> for the primary target first, then later the secondary ones.
>>
>> For the most part, the sstate mechanism works pretty well, but I
>> see some anomalies. For example, why on the same host, built back
>> to back, would a secondary build target (which uses the primary
>> as it's SSTATE_MIRROR and that build is complete) need to rebuild
>> from scratch such NATIVE packages as openssl? Note that these are
>> native packages I'm asking about, so in my mind they should always
>> be sharable.
>>
>> Any ideas? Is there something I can look at to investigate this?
>
> bitbake-diffsigs is the basic tool to compare signatures when those have
> changed. Find the siginfo / sigdata file for one of the early tasks that
> executed and compare them to see what changed.
>
> How are you setting SSTATE_MIRRORS in this scenario btw?
SSTATE_MIRRORS ?= "\
file://.* file:///local/p0382_2016-01-13/sstate-cache/PATH"
I ran a build yesterday that caused me to comment on this pattern. Here are the
siginfo files for the secondary target (the latest build):
-rw-rw-r-- 1 gthomas gthomas 21240 Dec 1 10:12
sstate-cache/universal/99/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:99515597e2223aa4413f7f2e4acf6532_configure.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 8917 Dec 1 10:17
sstate-cache/universal/a4/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:a49c66a9c786fe100f8e8b6e3bbd1e86_compile.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 14864 Dec 1 10:18
sstate-cache/universal/a7/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:a747322ce06467949097c3da58497c7d_install.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 36490 Dec 1 10:18
sstate-cache/universal/e6/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:e65ab886428d88f8735dba617268892f_populate_sysroot.tgz.siginfo
Here are the corresponding ones from my primary target:
cb9e0e1440492b85a6a9683b_unpack.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 6278 Nov 28 08:11
sstate-cache/44/sstate:openssl-native::1.0.2j:r0::3:44adeda2ff6ac235331af5dae45e45ea_patch.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 4997 Nov 28 08:11
sstate-cache/e9/sstate:openssl-native::1.0.2j:r0::3:e9ccda2229e69e2138ad0465a709e33a_fetch.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 21336 Nov 28 08:13
sstate-cache/universal/99/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:99515597e2223aa4413f7f2e4acf6532_configure.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 8833 Nov 28 08:14
sstate-cache/universal/a4/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:a49c66a9c786fe100f8e8b6e3bbd1e86_compile.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 14750 Nov 28 08:14
sstate-cache/universal/a7/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:a747322ce06467949097c3da58497c7d_install.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 31029 Dec 1 09:45
sstate-cache/57/sstate:openssl-native::1.0.2j:r0::3:5725888ec8cde61e1417bc0b6ea51c6c_populate_lic.tgz.siginfo
-rw-rw-r-- 1 gthomas gthomas 36502 Dec 1 09:45
sstate-cache/universal/e6/sstate:openssl-native:x86_64-linux:1.0.2j:r0:x86_64:3:e65ab886428d88f8735dba617268892f_populate_sysroot.tgz.siginfo
Clearly, they are identical and the ones from the primary were built long before
the ones on the secondary target.
I'm still confused why it didn't work as expected.
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
More information about the yocto
mailing list