Sent from Outlook for Mac
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