From a2a52e198719e5c7967f19b7c79ed9891cacb6e3 Mon Sep 17 00:00:00 2001 From: Jerome Forissier Date: Fri, 1 Jun 2018 15:48:21 +0200 Subject: ci: shippable: enable ccache's 'unify' option There is currently no caching possible between the various _make lines in .shippable.yml, because they select different configuration flags. Since all the files include $(out-dir)/include/generated/conf.h automatically, the preprocessor output is therefore different simply due to the fact that conf.h is different from one line to the other. This is quite unfortunate, because most source files depend on a handful of configuration flags only and therefore activating unrelated flags should not cause a cache miss. Addressing this problem is exactly the purpose of the 'unify' option of ccache [1]. Activate it by setting CCACHE_UNIFY=true and CFG_DEBUG_INFO=n before building. The lines that set DEBUG=0 or DEBUG=1 are adjusted to produce the same result as before. Link: [1] https://github.com/ccache/ccache/blob/v3.4.2/doc/MANUAL.adoc#configuration-settings Signed-off-by: Jerome Forissier Reviewed-by: Joakim Bech Reviewed-by: Jens Wiklander --- .shippable.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to '.shippable.yml') diff --git a/.shippable.yml b/.shippable.yml index 73662911..dc082b6f 100644 --- a/.shippable.yml +++ b/.shippable.yml @@ -12,14 +12,15 @@ build: - export LC_ALL=C - export CROSS_COMPILE32="ccache arm-linux-gnueabihf-" - export CROSS_COMPILE64="ccache aarch64-linux-gnu-" + - export CFG_DEBUG_INFO=n; export CCACHE_UNIFY=true # No parallel build ('make -j$(getconf _NPROCESSORS_ONLN)') due to: # https://github.com/Shippable/support/issues/3953 - function _make() { make -s $* && ccache -s && ccache -z; } - ccache -z - _make - - _make CFG_TEE_CORE_LOG_LEVEL=4 CFG_TEE_CORE_DEBUG=y CFG_TEE_TA_LOG_LEVEL=4 DEBUG=1 - - _make CFG_TEE_CORE_LOG_LEVEL=0 CFG_TEE_CORE_DEBUG=n CFG_TEE_TA_LOG_LEVEL=0 DEBUG=0 + - _make CFG_TEE_CORE_LOG_LEVEL=4 CFG_TEE_CORE_DEBUG=y CFG_TEE_TA_LOG_LEVEL=4 CFG_CC_OPTIMIZE_FOR_SIZE=n CFG_DEBUG_INFO=y + - _make CFG_TEE_CORE_LOG_LEVEL=0 CFG_TEE_CORE_DEBUG=n CFG_TEE_TA_LOG_LEVEL=0 CFG_CC_OPTIMIZE_FOR_SIZE=y CFG_DEBUG_INFO=n - _make CFG_TEE_CORE_MALLOC_DEBUG=y - _make CFG_CORE_SANITIZE_UNDEFINED=y - _make CFG_CORE_SANITIZE_KADDRESS=y @@ -37,7 +38,7 @@ build: - _make CFG_RPMB_FS=y CFG_RPMB_TESTKEY=y - _make CFG_REE_FS=n CFG_RPMB_FS=y - _make CFG_WITH_USER_TA=n CFG_CRYPTO=n CFG_SE_API=n CFG_PCSC_PASSTHRU_READER_DRV=y - - _make CFG_WITH_PAGER=y CFG_WITH_LPAE=y CFG_RPMB_FS=y CFG_DT=y CFG_TEE_CORE_LOG_LEVEL=1 CFG_TEE_CORE_DEBUG=y DEBUG=1 + - _make CFG_WITH_PAGER=y CFG_WITH_LPAE=y CFG_RPMB_FS=y CFG_DT=y CFG_TEE_CORE_LOG_LEVEL=1 CFG_TEE_CORE_DEBUG=y CFG_CC_OPTIMIZE_FOR_SIZE=n CFG_DEBUG_INFO=y - _make CFG_WITH_PAGER=y CFG_WITH_LPAE=y CFG_RPMB_FS=y CFG_DT=y CFG_TEE_CORE_LOG_LEVEL=0 CFG_TEE_CORE_DEBUG=n DEBUG=0 - _make CFG_BUILT_IN_ARGS=y CFG_PAGEABLE_ADDR=0 CFG_NS_ENTRY_ADDR=0 CFG_DT_ADDR=0 CFG_DT=y - _make CFG_TA_GPROF_SUPPORT=y CFG_ULIBS_GPROF=y -- cgit v1.2.3