Hi Bohdan, 

Does this help?

https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/44258

Thanks,
Antonio

Sent from Outlook for Mac

From: Bohdan.Hunko--- via TF-M <tf-m@lists.trustedfirmware.org>
Date: Friday, 14 November 2025 at 12:43
To: tf-m@lists.trustedfirmware.org <tf-m@lists.trustedfirmware.org>
Cc: Hennadiy.Kytsun@infineon.com <Hennadiy.Kytsun@infineon.com>
Subject: [TF-M] IAR + FIH issue

Hi all,

 

I am trying to build TFM with IAR with TFM_FIH_PROFILE=HIGH and I am facing the issue with the FIH labels.

 

I see following errors:

[ 98%] Linking C executable ../bin/tfm_s.axf

Error[Li006]: duplicate definitions for "FIH_LABEL_FIH_CALL_END_46_1"; in

          "main.o(libtfm_spm.a)", and "tfm_hal_platform.o(libtfm_spm.a)"

Error[Li006]: duplicate definitions for "FIH_LABEL_FIH_CALL_START_46_1"; in

          "main.o(libtfm_spm.a)", and "tfm_hal_platform.o(libtfm_spm.a)"

Error[Li006]: duplicate definitions for "FIH_LABEL_FIH_CALL_END_35_0"; in

          "tfm_hal_platform.o(libtfm_spm.a)", and

          "platform_svc_handler.o(libtfm_spm.a)"

Error[Li006]: duplicate definitions for "FIH_LABEL_FIH_CALL_START_35_0"; in

          "tfm_hal_platform.o(libtfm_spm.a)", and

          "platform_svc_handler.o(libtfm_spm.a)"

 

I did some investigations and I believe I know the root cause:

            Looks like __COUNTER__ for IAR is unique only for a translation unit (.c file) – thus when 2 files have FIH call in same line with the same number of FIH calls before – it creates a label which overlaps with labels in other file.

 

For example tfm_hal_platform.c in our case has first FIH CALL in line 46 (which creates label FIH_LABEL_FIH_CALL_END_46_1) but main.c in our code also has first FIH CALL in line 46 which also results in FIH_LABEL_FIH_CALL_END_46_1 label.

 

 

The question is – how can we solve this issue? Any ideas I can try?

 

 

Regards,

Bohdan Hunko

 

Cypress Semiconductor Ukraine

Engineer

CSUKR CSS ICW SW FW

Mobile: +38099 50 19 714
Bohdan.Hunko@infineon.com