Page MenuHomePhabricator

tf-m always rebuilds
Open, Needs TriagePublic

Description

If I build TF-M and immediately build it again, some parts are rebuilt for no reason:

$ make
[ 17%] Built target tfm_s_obj_lib
[ 18%] Built target libtfmsprt
[ 19%] Built target tfm_s_pp_tfm_common_s_1
[ 23%] Built target mbedcrypto_lib
[ 23%] Installing Mbed Crypto to /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install
[100%] Built target mbedcrypto
Install the project...
-- Install configuration: "MinSizeRel"
-- Up-to-date: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/mbedtls/aes.h
[ lots of Up-to-date messages ]
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_accel_driver.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_compat.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_driver_common.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/
services/crypto/mbed-crypto/build/../install/include/psa/crypto_entropy_driver.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_extra.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_platform.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_se_driver.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_sizes.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_struct.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_types.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/include/psa/crypto_values.h
-- Up-to-date: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/secure_fw/services/crypto/mbed-crypto/build/../install/lib/mbedcrypto.a
[ 23%] Built target mbedcrypto_lib_install
Scanning dependencies of target tfm_crypto
[ 23%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_init.o
[ 24%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_alloc.o
[ 24%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_cipher.o
[ 25%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_hash.o
[ 25%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_mac.o
[ 25%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_key.o
[ 26%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_aead.o
[ 26%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_asymmetric.o
[ 27%] Building C object secure_fw/services/crypto/CMakeFiles/tfm_crypto.dir/crypto_key_derivation.o
[ 27%] Linking C static library tfm_crypto.a
                merging objects from mbedcrypto.a
[ 27%] Built target tfm_crypto
[ 31%] Built target tfm_storage
[ 37%] Built target tfm_internal_trusted_storage
[ 38%] Built target tfm_platform
[ 39%] Built target tfm_qcbor_encode
[ 41%] Built target tfm_t_cose_sign
[ 44%] Built target tfm_attest
[ 45%] Built target tfm_audit
[ 45%] Linking C executable tfm_s.axf
Memory region         Used Size  Region Size  %age Used
           FLASH:      182132 B     390336 B     46.66%
             RAM:       49676 B       256 KB     18.95%
        CODE_RAM:        2432 B       512 KB      0.46%
         VENEERS:         704 B        832 B     84.62%
[ 45%] Built target tfm_s
[ 46%] Built target tfm_s_1_pp_tfm_common_s_1
[ 46%] Linking C executable tfm_s_1.axf
Memory region         Used Size  Region Size  %age Used
           FLASH:      182132 B     390336 B     46.66%
             RAM:       49676 B       256 KB     18.95%
        CODE_RAM:        2432 B       512 KB      0.46%
         VENEERS:         704 B        832 B     84.62%
[ 46%] Built target tfm_s_1
[ 47%] Built target tfm_qcbor_decode
[ 49%] Built target tfm_t_cose_verify
[ 56%] Built target tfm_secure_tests
[ 58%] Built target tfm_t_cose_test
[ 61%] Built target tfm_qcbor_test
[ 72%] Built target tfm_ns_obj_lib
[ 81%] Built target tfm_non_secure_tests
[ 82%] Built target tfm_ns_pp_musca_ns_1
[ 82%] Built target tfm_ns_pp_image_macros_to_preprocess_1
[ 82%] Linking C executable tfm_ns.axf
Memory region         Used Size  Region Size  %age Used
           FLASH:       12500 B       510 KB      2.39%
             RAM:       13504 B       256 KB      5.15%
**[INFO]** Image version number set to 0.0.0+7
[ 82%] Built target tfm_ns
[ 83%] Built target tfm_ns_1_pp_image_macros_to_preprocess_1
[ 83%] Built target tfm_ns_1_pp_musca_ns_1
[ 83%] Linking C executable tfm_ns_1.axf
Memory region         Used Size  Region Size  %age Used
           FLASH:       12500 B       510 KB      2.39%
             RAM:       13504 B       256 KB      5.15%
**[INFO]** Image version number set to 0.0.0+8
[ 83%] Built target tfm_ns_1
[ 86%] Built target mbedcrypto_mcuboot_lib
[ 86%] Built target mcuboot_pp_musca_bl2_1
[ 87%] Installing Mbed Crypto to /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install
[100%] Built target mbedcrypto
Install the project...
-- Install configuration: "MinSizeRel"
-- Up-to-date: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/mbedtls/aes.h
[ lots of Up-to-date messages ]
-- Up-to-date: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/mbedtls/xtea.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_accel_driver.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_compat.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_driver_common.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_entropy_driver.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_extra.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_platform.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_se_driver.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_sizes.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_struct.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_types.h
-- Installing: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/include/psa/crypto_values.h
-- Up-to-date: /home/ross/Yocto/build/tmp/work/armv8m-poky-linux-gnueabi/trusted-firmware-m/1.0-r0/build/bl2/ext/mcuboot/mbed-crypto/build/../install/lib/mbedcrypto.a
[ 87%] Built target mbedcrypto_mcuboot_lib_install
[100%] Built target mcuboot

I imagine its where the makefiles do an in-tree install that causes the rebuild.

Event Timeline

It's great that you shared this useful information. geometry dash 23 is the perfect next part to complete this design.

The recurrent rebuilds during in tree install could be due to dependencies not being properly tracked. Consider reviewing the Makefiles to ensure a clean dependency structure.
Professional Car Rental Company in Harvard MA