sstate-cache magic! – Yocto Project Summit 2019
From-scratch builds, even using server grade machines (with 40+ cores) will take just under an hour to complete. Additionally this estimate is just for minimal, stripped down images; Bigger images that bring up more than just core functionality and support things like web browsers/multimedia would take much longer (on the order of several hours).
Use of the sstate cache drastically cuts down on build times, especially for fresh projects. Xilinx makes full use of the sstate cache to speed up builds for its customers by hosting a comprehensive sstate cache (for all packages for different types of architectures) and allowing users to point their builds to this prebuilt and maintained sstate cache.
There are different ways of distributing the sstate. When building an esdk (An extensible software development kit), the sstate of all non-native components is packaged so that any build using the esdk will happen in the blink of an eye. However, when building an sdk from within another sdk, the sstate for the native components were missing , hence making the sdk build disproportionately long compared to regular builds. We introduced a patch into core that allows users to toggle the inclusion of nativesdk packages into the esdk by correctly handling sstate cache artifacts themselves as well as the corresponding signatures that are used to reference if anything has changed. With this change, a bigger esdk will be built, when required, that will skip rebuilding native components.
Speaker: : Jaewon Lee, Xilinx
Jaewon is a member of the Yocto Project team at Xilinx. He studied electrical engineering at Georgia Tech and went from focusing on hardware design to an embedded software position at Xilinx! He has been with Xilinx for two years. He is actively maintaining and contributing to Xilinx layers, and is eager to add more functionality to open source Yocto project.