[yocto] sstate black hole?

Christopher Larson clarson at kergoth.com
Tue Apr 7 08:27:32 PDT 2015


On Tue, Apr 7, 2015 at 7:52 AM, Gary Thomas <gary at mlbassoc.com> wrote:

> I'm building for multiple ARM i.MX6 platforms.  These have
> the same SoC, but slightly different peripherals. As far as
> I can tell, they should be able to share everything except
> for a few ${MACHINE} specific packages, e.g. the kernel and
> u-boot.
>
> Sadly, that doesn't seem to be the case.  The architecture
> specific packages are being split into two categories - plain
> ARM/Cortex-A9 and those that have i.MX6 specific optimizations.
> For example, after building a complete image (on the order of
> core-image-sato), I have this split:
> $ ls tmp/work/cortexa9hf-vfp-neon-amltd-linux-gnueabi/
> acl                  gst-player                 libsamplerate0
>  modutils-initscripts  shadow-sysroot
> alsa-utils           gst-plugins-bad            libsm
> mpeg2dec              shared-mime-info
> apmd                 gst-plugins-good           libsndfile1
> mplayer2              speex
> atk                  gst-plugins-ugly           libsoup-2.4
> mtdev                 sqlite3
> attr                 gstreamer                  libtheora
> ncurses               startup-notification
> base-passwd          gstreamer1.0               libtirpc
>  neon                  strace
>    ...
> gst-ffmpeg           libpostproc                matchbox-wm
> scrnsaverproto        zlib
> gst-fluendo-mpegmux  libproxy                   mkfontdir
> settings-daemon
> gst-meta-base        libpthread-stubs           mkfontscale
> shadow
>
> $ ls tmp/work/cortexa9hf-vfp-neon-mx6qdl-amltd-linux-gnueabi/
> alsa-lib      gst-plugins-base           imx-gpu-viv  libfslparser
>  libsdl      xf86-video-imxfb-vivante
> cairo         gstreamer1.0-plugins-bad   libdrm       libfslvpuwrap  mesa
>       xserver-xorg
> firmware-imx  gstreamer1.0-plugins-base  libfslcodec  libglu
>  pulseaudio
>
> It's the second category that is causing problems.  They do not
> seem to end up in any shareable sstate at all.  If I try to rebuild
> using only sstate, i.e. build my complete image to success, then
> remove 'tmp' and rebuild, using the sstate-cache from the first go,
> all of the above packages (alsa-lib, ..., xserver-xorg) are all
> rebuilt from scratch.  Those recipes do seem to end in my sstate-cache,
> but they are never reused from it.
>
> What would make this happen?  How can I prevent it?
>
> As is, sstate is not really shareable between these i.MX6 targets
> as so much is being rebuilt all the time...
>

bitbake -S printdiff <target> (e.g. a specific recipe, your image,
whatever) will tell you why the sstate wasn't used, by finding the ones
that are in SSTATE_DIR which most closely match the current configuration,
and displaying a detailed delta between the two. You might need
https://gist.github.com/kergoth/3713d779c14dc8b98f36.
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20150407/f4808882/attachment.html>


More information about the yocto mailing list