Hi,

 

It’s interesting case. I cannot reproduce the problem with IAR V9.30.1.335 in Windows host using CMake v3.21.7.
There are warnings but your configuration builds and all artifacts are installed. I could try install and build using your version later this week.

 

Hope that helps,

Anton

 

From: David Hazi via TF-M <tf-m@lists.trustedfirmware.org>
Sent: Tuesday, July 1, 2025 1:49 PM
To: Inhelder Nicolas <nicolas.inhelder@belimo.ch>; tf-m@lists.trustedfirmware.org
Subject: [TF-M] Re: Iar Linker duplicate file

 

Hi,

It could happen because we have a circular dependency somewhere. Other compilers don’t care about this, but IAR could process libraries multiple times.

For quick and dirty “solution” you can suppress these warnings, the real solution would be to find the circular dependencies and resolve them. There could be a cmake option for that, it needs more investigation.

 

Dávid

 

From: Inhelder Nicolas via TF-M <tf-m@lists.trustedfirmware.org>
Sent: 01 July 2025 13:22
To: tf-m@lists.trustedfirmware.org
Subject: [TF-M] Iar Linker duplicate file

 

Hi

When compiling with IAR bxarm 9.7.1 i get the following linker errors:

 

cmake -S . -B cmake_build -DTFM_PLATFORM=arm/mps2/an521 -DTFM_TOOLCHAIN_FILE=toolchain_IARARM.cmake

cmake --build cmake_build -- install

 

[25/31] Linking C executable bin/tfm_s.axf

Warning[Li065]: duplicate file: "/home/ubuntu/import/source/trusted-firmware-m/

          cmake_build/platform/libplatform_s.a"

Warning[Li065]: duplicate file: "/home/ubuntu/import/source/trusted-firmware-m/

          cmake_build/secure_fw/partitions/lib/runtime/libtfm_sprt.a"

Warning[Li065]: duplicate file: "/home/ubuntu/import/source/trusted-firmware-m/

          cmake_build/secure_fw/spm/libtfm_spm.a"

 

In the build.ninja file you can see that all those libraries are includes twice. 

  LINK_LIBRARIES = platform/libplatform_s.a  secure_fw/partitions/lib/runtime/libtfm_sprt.a  secure_fw/spm/libtfm_spm.a  secure_fw/partitions/internal_trusted_storage/libtfm_psa_rot_partition_its.a  secure_fw/partitions/platform/libtfm_psa_rot_partition_platform.a  platform/libplatform_s.a  secure_fw/partitions/lib/runtime/libtfm_sprt.a  secure_fw/spm/libtfm_spm.a  secure_fw/partitions/internal_trusted_storage/libtfm_psa_rot_partition_its.a  secure_fw/partitions/platform/libtfm_psa_rot_partition_platform.a

 

 

Is there a reason this is not resolved or this just the way Cmake works?
Is there an easy way to resolve this on the platform level?

I used the an521 as a template to create my platform.

 

In my platform this list grows with every feature I activate:

 

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/platform/libplatform_s.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/lib/runtime/libtfm_sprt.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/spm/libtfm_spm.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/platform/libplatform_crypto_keys.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/crypto/mbedcrypto/library/libmbedcrypto.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/crypto/libtfm_psa_rot_partition_crypto.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/internal_trusted_storage/libtfm_psa_rot_partit

          ion_its.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/platform/libtfm_psa_rot_partition_platform.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/firmware_update/libtfm_psa_rot_partition_fwu.a

          "

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/lib/runtime/libtfm_sp_log.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/platform/libplatform_s.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/lib/runtime/libtfm_sprt.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/spm/libtfm_spm.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/platform/libplatform_crypto_keys.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/crypto/mbedcrypto/library/libmbedcrypto.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/crypto/libtfm_psa_rot_partition_crypto.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/internal_trusted_storage/libtfm_psa_rot_partit

          ion_its.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/platform/libtfm_psa_rot_partition_platform.a"

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/firmware_update/libtfm_psa_rot_partition_fwu.a

          "

Warning[Li065]: duplicate file: "/home/source/trusted-firmware-m/cmake_buil

          d/secure_fw/partitions/lib/runtime/libtfm_sp_log.a"

 

If possible, I want to build without warnings.

 

 

Thanks for your help

 

Kind regards,
Nico