Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M tf-m@lists.trustedfirmware.org Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hi Ildiko,
I've uploaded two changes/fixes, one for the windows build (error caused by command line escaping) and one for the nxp platform build (error caused by vector table naming and IAR vector table size "overhead").
Please check: https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/17515 https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/17516
Best regards, Dávid Házi
Hi Ildiko,
NXP build gets a new fix, the last one have been abandoned, please check.
Windows build fix: https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/17515 NXP IAR build fix: https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/17518
Best regards, Dávid Házi
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on Win x64 for NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]: explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]: attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]: expected a declaration
void Reset_Handler(void) ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]: a declaration here must declare a parameter
{ ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]: expected a ";" At end of source Warning[Pe012]: parsing restarts here after previous syntax error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]: standard requires that parameter "__vector_table" be given a type by a subsequent declaration ("int" assumed) At end of source Error[Pe130]: expected a "{" At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]: entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]: declaration does not match its alias variable "__vector_table @ ".intvec"" make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2 make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2 make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Perl (missing: PERL_EXECUTABLE) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance. Ildikó
From: Anton Komlev Anton.Komlev@arm.com Sent: Monday, October 31, 2022 2:11 PM To: Pocsai Ildiko LCPF-CH Ildiko.Pocsai@mt.com; tf-m@lists.trustedfirmware.org Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hi Ildikó,
You might have multiple versions of Python installed on your Windows machine. In command shell, type C:> where python You might see something like C:\Program Files\Python37\python.exe C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python.exe
The TF-M build system might located the latest version of Python (e.g. 3.10), but when you run pip3 install -r tools\requirements.txt It might install the modules in an older version (e.g. 3.7).
To make sure you are installing the Python tools to the right version of Python, you can specify which Python to use when running pip: C:>C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python -m pip install -r tools\requirements.txt
Hope this solve the Python problem. Regards, Joseph
From: Pocsai Ildiko LCPF-CH via TF-M tf-m@lists.trustedfirmware.org Sent: 24 November 2022 15:50 To: Anton Komlev Anton.Komlev@arm.com; tf-m@lists.trustedfirmware.org Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on Win x64 for NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]: explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]: attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]: expected a declaration
void Reset_Handler(void) ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]: a declaration here must declare a parameter
{ ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]: expected a ";" At end of source Warning[Pe012]: parsing restarts here after previous syntax error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]: standard requires that parameter "__vector_table" be given a type by a subsequent declaration ("int" assumed) At end of source Error[Pe130]: expected a "{" At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]: entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]: declaration does not match its alias variable "__vector_table @ ".intvec"" make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2 make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2 make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Perl (missing: PERL_EXECUTABLE) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance. Ildikó
From: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com> Sent: Monday, October 31, 2022 2:11 PM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hi Joseph,
Thanks for the hint regarding Python. I double-checked it, but it seems to be fine.
However, I still have issues with building the release 1.6.1. I figured it out that I need to install the 32-bit Strawberry Perl and with that CMake can find the Perl installation, but I get an error while configuring the project. You can find the full log below:
C:\Work\TF-M\trusted-firmware-m-TF-Mv1.6.1>cmake -G"Unix Makefiles" -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_IARARM.cmake -DCMAKE_BUILD_TYPE=Relwithdebinfo -DBL2=OFF fatal: not a git repository (or any of the parent directories): .git CMake Error at cmake/version.cmake:13 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:15 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:16 (string): string sub-command REGEX, mode MATCH needs at least 5 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
-- Populating tfm_test_repo -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/tfm_test_repo-subbuild [ 11%] Creating directories for 'tfm_test_repo-populate' [ 22%] Performing download step (git clone) for 'tfm_test_repo-populate' Cloning into 'tfm_test_repo-src'... remote: Enumerating objects: 2122, done. remote: Counting objects: 100% (2122/2122), done. remote: Compressing objects: 100% (1172/1172), done. remote: Total 3873 (delta 1868), reused 959 (delta 950), pack-reused 1751 Receiving objects: 100% (3873/3873), 2.35 MiB | 1.66 MiB/s, done. Resolving deltas: 100% (2715/2715), done. HEAD is now at 723905d Test: Fix bug in BL1 TRNG testsuite [ 33%] Performing update step for 'tfm_test_repo-populate' [ 44%] No patch step for 'tfm_test_repo-populate' [ 55%] No configure step for 'tfm_test_repo-populate' [ 66%] No build step for 'tfm_test_repo-populate' [ 77%] No install step for 'tfm_test_repo-populate' [ 88%] No test step for 'tfm_test_repo-populate' [100%] Completed 'tfm_test_repo-populate' [100%] Built target tfm_test_repo-populate CMake Warning at CMakeLists.txt:56 (project): VERSION keyword not followed by a value or was followed by a value that expanded to nothing.
-- The C compiler identification is IAR ARM 8.50.9 -- The ASM compiler identification is IAR ARM 8.50.9 -- Found assembler: C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/arm/bin/iasmarm.exe -- Found Git: C:/Users/pocsai-1/AppData/Local/Programs/Git/cmd/git.exe (found version "2.36.0.windows.1") -- Populating mbedcrypto -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/mbedcrypto-subbuild [ 11%] Creating directories for 'mbedcrypto-populate' [ 22%] Performing download step (git clone) for 'mbedcrypto-populate' Cloning into 'mbedcrypto-src'... remote: Enumerating objects: 22978, done. remote: Counting objects: 100% (22978/22978), done. remote: Compressing objects: 100% (11490/11490), done. remote: Total 22978 (delta 17960), reused 15329 (delta 11323), pack-reused 0 Receiving objects: 100% (22978/22978), 24.25 MiB | 2.13 MiB/s, done. Resolving deltas: 100% (17960/17960), done. HEAD is now at d65aeb37 Merge pull request #871 from ronald-cron-arm/mbedtls-3.1.0rc0-pr [ 33%] Performing update step for 'mbedcrypto-populate' [ 44%] Performing patch step for 'mbedcrypto-populate' [ 55%] No configure step for 'mbedcrypto-populate' [ 66%] No build step for 'mbedcrypto-populate' [ 77%] No install step for 'mbedcrypto-populate' [ 88%] No test step for 'mbedcrypto-populate' [100%] Completed 'mbedcrypto-populate' [100%] Built target mbedcrypto-populate -- Found Python3: C:/Users/pocsai-1/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.5") found components: Interpreter Start to generate partition files: Generating Protected Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/protected_storage Generating TF-M Internal Trusted Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/internal_trusted_storage Generating TFM Crypto Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/crypto Generating TFM Platform Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/platform Generating TFM Initial Attestation Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/initial_attestation Per-partition files done: -- ---------- Display crypto configuration - start -------------- -- CRYPTO_RNG_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_MODULE_DISABLED is set to FALSE -- CRYPTO_AEAD_MODULE_DISABLED is set to FALSE -- CRYPTO_MAC_MODULE_DISABLED is set to FALSE -- CRYPTO_CIPHER_MODULE_DISABLED is set to FALSE -- CRYPTO_HASH_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_DERIVATION_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_SIGN_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_ENCRYPT_MODULE_DISABLED is set to FALSE -- CRYPTO_ENGINE_BUF_SIZE is set to 0x2080 -- CRYPTO_CONC_OPER_NUM is set to 8 -- CRYPTO_IOVEC_BUFFER_SIZE is set to 5120 -- ---------- Display crypto configuration - stop --------------- -- Found Perl: C:/Strawberry/perl/bin/perl.exe (found version "5.32.1") -- ----------- Display storage configuration - start ------------ -- PS_CREATE_FLASH_LAYOUT is set to ON -- PS_ENCRYPTION is set to ON -- PS_RAM_FS is set to OFF -- PS_ROLLBACK_PROTECTION is set to ON -- PS_VALIDATE_METADATA_FROM_FLASH is set to ON -- PS_MAX_ASSET_SIZE is set to 512 -- PS_NUM_ASSETS is set to 5 -- PS_CRYPTO_AEAD_ALG is set to PSA_ALG_GCM -- ITS_CREATE_FLASH_LAYOUT is set to ON -- ITS_RAM_FS is set to OFF -- ITS_VALIDATE_METADATA_FROM_FLASH is set to ON -- ITS_MAX_ASSET_SIZE is set to 512 -- ITS_NUM_ASSETS is set to 10 -- ITS_BUF_SIZE is not set (defaults to ITS_MAX_ASSET_SIZE) -- ----------- Display storage configuration - stop ------------- -- Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk -- Configuring incomplete, errors occurred! See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeOutput.log". See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeError.log".
Do you have any idea what could be wrong? I cannot find any useful information in CMakeError.log or CMakeOutput.log. The step Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk is OK because the files are pulled from the NXP git repo. So, it must be somewhere in the configuration, but I have no idea where to look. The last release that I could build successfully on Windows was 1.4.1. All newer releases than that have build issues on my Windows machine.
Thanks in advance. Ildikó
From: Joseph Yiu Joseph.Yiu@arm.com Sent: Friday, November 25, 2022 10:48 AM To: Pocsai Ildiko LCPF-CH Ildiko.Pocsai@mt.com; Anton Komlev Anton.Komlev@arm.com; tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildikó,
You might have multiple versions of Python installed on your Windows machine. In command shell, type C:> where python You might see something like C:\Program Files\Python37\python.exe C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python.exe
The TF-M build system might located the latest version of Python (e.g. 3.10), but when you run pip3 install -r tools\requirements.txt It might install the modules in an older version (e.g. 3.7).
To make sure you are installing the Python tools to the right version of Python, you can specify which Python to use when running pip: C:>C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python -m pip install -r tools\requirements.txt
Hope this solve the Python problem. Regards, Joseph
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: 24 November 2022 15:50 To: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on Win x64 for NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]: explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]: attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]: expected a declaration
void Reset_Handler(void) ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]: a declaration here must declare a parameter
{ ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]: expected a ";" At end of source Warning[Pe012]: parsing restarts here after previous syntax error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]: standard requires that parameter "__vector_table" be given a type by a subsequent declaration ("int" assumed) At end of source Error[Pe130]: expected a "{" At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]: entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]: declaration does not match its alias variable "__vector_table @ ".intvec"" make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2 make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2 make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Perl (missing: PERL_EXECUTABLE) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance. Ildikó
From: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com> Sent: Monday, October 31, 2022 2:11 PM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hi Joseph,
I finally managed to figure out what was the config issue with the release 1.6.1. Below some feedback from my side.
If you use the trusted-firmware-m-TF-Mv1.6.1.tar.gz from trusted-firmware-m.git - Trusted Firmware for M profile Arm CPUshttps://git.trustedfirmware.org/TF-M/trusted-firmware-m.git/, just like I did, CMake will report the config error because the version.cmake tries to execute a git command to get the version, but since the tar.gz is not a git repo, the command fails. Maybe it would be good in the future to fix this if you provide releases this way. So, one can either comment out include(cmake/version.cmake) from CMakeLists.txt as a quick and dirty fix, or better checkout the tag directly from the git repo. After that, I was able to successfully run CMake.
Another point is regarding the IAR compiler: the "Getting Started" guide indicates the following IAR compiler versions: "IAR Arm compiler v8.42.x, v8.50.x" So, I took the IAR 8.50.9. But, the release 1.6.1 uses the --fpu compiler option, which is not supported by IAR 8.50.x. I took the IAR 9.10.2 and with that I managed to build the release 1.6.1 with the regression tests.
Maybe it would be a good idea to update the IAR version in the "Getting Started" guide to the version that you use for the testing.
I'll be doing some experiments with the release 1.6.1 next and try to create a wrapper for our OS to be able run the regression tests with that.
Hope that this feedback is useful for you.
Kind regards, Ildikó
From: Pocsai Ildiko LCPF-CH Sent: Friday, November 25, 2022 3:21 PM To: Joseph Yiu Joseph.Yiu@arm.com; Anton Komlev Anton.Komlev@arm.com; tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Joseph,
Thanks for the hint regarding Python. I double-checked it, but it seems to be fine.
However, I still have issues with building the release 1.6.1. I figured it out that I need to install the 32-bit Strawberry Perl and with that CMake can find the Perl installation, but I get an error while configuring the project. You can find the full log below:
C:\Work\TF-M\trusted-firmware-m-TF-Mv1.6.1>cmake -G"Unix Makefiles" -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_IARARM.cmake -DCMAKE_BUILD_TYPE=Relwithdebinfo -DBL2=OFF fatal: not a git repository (or any of the parent directories): .git CMake Error at cmake/version.cmake:13 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:15 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:16 (string): string sub-command REGEX, mode MATCH needs at least 5 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
-- Populating tfm_test_repo -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/tfm_test_repo-subbuild [ 11%] Creating directories for 'tfm_test_repo-populate' [ 22%] Performing download step (git clone) for 'tfm_test_repo-populate' Cloning into 'tfm_test_repo-src'... remote: Enumerating objects: 2122, done. remote: Counting objects: 100% (2122/2122), done. remote: Compressing objects: 100% (1172/1172), done. remote: Total 3873 (delta 1868), reused 959 (delta 950), pack-reused 1751 Receiving objects: 100% (3873/3873), 2.35 MiB | 1.66 MiB/s, done. Resolving deltas: 100% (2715/2715), done. HEAD is now at 723905d Test: Fix bug in BL1 TRNG testsuite [ 33%] Performing update step for 'tfm_test_repo-populate' [ 44%] No patch step for 'tfm_test_repo-populate' [ 55%] No configure step for 'tfm_test_repo-populate' [ 66%] No build step for 'tfm_test_repo-populate' [ 77%] No install step for 'tfm_test_repo-populate' [ 88%] No test step for 'tfm_test_repo-populate' [100%] Completed 'tfm_test_repo-populate' [100%] Built target tfm_test_repo-populate CMake Warning at CMakeLists.txt:56 (project): VERSION keyword not followed by a value or was followed by a value that expanded to nothing.
-- The C compiler identification is IAR ARM 8.50.9 -- The ASM compiler identification is IAR ARM 8.50.9 -- Found assembler: C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/arm/bin/iasmarm.exe -- Found Git: C:/Users/pocsai-1/AppData/Local/Programs/Git/cmd/git.exe (found version "2.36.0.windows.1") -- Populating mbedcrypto -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/mbedcrypto-subbuild [ 11%] Creating directories for 'mbedcrypto-populate' [ 22%] Performing download step (git clone) for 'mbedcrypto-populate' Cloning into 'mbedcrypto-src'... remote: Enumerating objects: 22978, done. remote: Counting objects: 100% (22978/22978), done. remote: Compressing objects: 100% (11490/11490), done. remote: Total 22978 (delta 17960), reused 15329 (delta 11323), pack-reused 0 Receiving objects: 100% (22978/22978), 24.25 MiB | 2.13 MiB/s, done. Resolving deltas: 100% (17960/17960), done. HEAD is now at d65aeb37 Merge pull request #871 from ronald-cron-arm/mbedtls-3.1.0rc0-pr [ 33%] Performing update step for 'mbedcrypto-populate' [ 44%] Performing patch step for 'mbedcrypto-populate' [ 55%] No configure step for 'mbedcrypto-populate' [ 66%] No build step for 'mbedcrypto-populate' [ 77%] No install step for 'mbedcrypto-populate' [ 88%] No test step for 'mbedcrypto-populate' [100%] Completed 'mbedcrypto-populate' [100%] Built target mbedcrypto-populate -- Found Python3: C:/Users/pocsai-1/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.5") found components: Interpreter Start to generate partition files: Generating Protected Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/protected_storage Generating TF-M Internal Trusted Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/internal_trusted_storage Generating TFM Crypto Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/crypto Generating TFM Platform Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/platform Generating TFM Initial Attestation Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/initial_attestation Per-partition files done: -- ---------- Display crypto configuration - start -------------- -- CRYPTO_RNG_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_MODULE_DISABLED is set to FALSE -- CRYPTO_AEAD_MODULE_DISABLED is set to FALSE -- CRYPTO_MAC_MODULE_DISABLED is set to FALSE -- CRYPTO_CIPHER_MODULE_DISABLED is set to FALSE -- CRYPTO_HASH_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_DERIVATION_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_SIGN_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_ENCRYPT_MODULE_DISABLED is set to FALSE -- CRYPTO_ENGINE_BUF_SIZE is set to 0x2080 -- CRYPTO_CONC_OPER_NUM is set to 8 -- CRYPTO_IOVEC_BUFFER_SIZE is set to 5120 -- ---------- Display crypto configuration - stop --------------- -- Found Perl: C:/Strawberry/perl/bin/perl.exe (found version "5.32.1") -- ----------- Display storage configuration - start ------------ -- PS_CREATE_FLASH_LAYOUT is set to ON -- PS_ENCRYPTION is set to ON -- PS_RAM_FS is set to OFF -- PS_ROLLBACK_PROTECTION is set to ON -- PS_VALIDATE_METADATA_FROM_FLASH is set to ON -- PS_MAX_ASSET_SIZE is set to 512 -- PS_NUM_ASSETS is set to 5 -- PS_CRYPTO_AEAD_ALG is set to PSA_ALG_GCM -- ITS_CREATE_FLASH_LAYOUT is set to ON -- ITS_RAM_FS is set to OFF -- ITS_VALIDATE_METADATA_FROM_FLASH is set to ON -- ITS_MAX_ASSET_SIZE is set to 512 -- ITS_NUM_ASSETS is set to 10 -- ITS_BUF_SIZE is not set (defaults to ITS_MAX_ASSET_SIZE) -- ----------- Display storage configuration - stop ------------- -- Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk -- Configuring incomplete, errors occurred! See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeOutput.log". See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeError.log".
Do you have any idea what could be wrong? I cannot find any useful information in CMakeError.log or CMakeOutput.log. The step Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk is OK because the files are pulled from the NXP git repo. So, it must be somewhere in the configuration, but I have no idea where to look. The last release that I could build successfully on Windows was 1.4.1. All newer releases than that have build issues on my Windows machine.
Thanks in advance. Ildikó
From: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com> Sent: Friday, November 25, 2022 10:48 AM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildikó,
You might have multiple versions of Python installed on your Windows machine. In command shell, type C:> where python You might see something like C:\Program Files\Python37\python.exe C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python.exe
The TF-M build system might located the latest version of Python (e.g. 3.10), but when you run pip3 install -r tools\requirements.txt It might install the modules in an older version (e.g. 3.7).
To make sure you are installing the Python tools to the right version of Python, you can specify which Python to use when running pip: C:>C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python -m pip install -r tools\requirements.txt
Hope this solve the Python problem. Regards, Joseph
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: 24 November 2022 15:50 To: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on Win x64 for NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]: explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]: attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]: expected a declaration
void Reset_Handler(void) ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]: a declaration here must declare a parameter
{ ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]: expected a ";" At end of source Warning[Pe012]: parsing restarts here after previous syntax error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]: standard requires that parameter "__vector_table" be given a type by a subsequent declaration ("int" assumed) At end of source Error[Pe130]: expected a "{" At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]: entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]: declaration does not match its alias variable "__vector_table @ ".intvec"" make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2 make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2 make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Perl (missing: PERL_EXECUTABLE) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance. Ildikó
From: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com> Sent: Monday, October 31, 2022 2:11 PM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hi Ildikó,
Good to hear that you managed to run TF-M and thanks for sharing your findings. True, we need a fix for building out of Git repository.
Sorry for the slow reply. I knew David Hazi worked on the LPC and IAR issue, recently fixed here: https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/18092
There were few more fixes for IAR, the latest is here: https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/17880.
Those changes are in latest master branch but not included in v1.6.1, you are using. You might want to rebase on latest code or cherry-pick IAR fixes.
As you know, IAR toolchain is not in OpenCIhttps://ci.trustedfirmware.org/view/TF-M/ yet hence is not checked automatically but maintained by IAR Systems or Vendors who support it. TF-M platforms maintained by platform ownershttps://tf-m-user-guide.trustedfirmware.org/contributing/maintainers.html. Some boards, including LPC are in LAVAhttps://tf.validation.linaro.org/scheduler/device_types automatic test lab and regularly tested there.
Thanks, and hope that helps, Anton
From: Pocsai Ildiko LCPF-CH Ildiko.Pocsai@mt.com Sent: Tuesday, November 29, 2022 10:13 AM To: Joseph Yiu Joseph.Yiu@arm.com; Anton Komlev Anton.Komlev@arm.com; tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Joseph,
I finally managed to figure out what was the config issue with the release 1.6.1. Below some feedback from my side.
If you use the trusted-firmware-m-TF-Mv1.6.1.tar.gz from trusted-firmware-m.git - Trusted Firmware for M profile Arm CPUshttps://git.trustedfirmware.org/TF-M/trusted-firmware-m.git/, just like I did, CMake will report the config error because the version.cmake tries to execute a git command to get the version, but since the tar.gz is not a git repo, the command fails. Maybe it would be good in the future to fix this if you provide releases this way. So, one can either comment out include(cmake/version.cmake) from CMakeLists.txt as a quick and dirty fix, or better checkout the tag directly from the git repo. After that, I was able to successfully run CMake.
Another point is regarding the IAR compiler: the "Getting Started" guide indicates the following IAR compiler versions: "IAR Arm compiler v8.42.x, v8.50.x" So, I took the IAR 8.50.9. But, the release 1.6.1 uses the --fpu compiler option, which is not supported by IAR 8.50.x. I took the IAR 9.10.2 and with that I managed to build the release 1.6.1 with the regression tests.
Maybe it would be a good idea to update the IAR version in the "Getting Started" guide to the version that you use for the testing.
I'll be doing some experiments with the release 1.6.1 next and try to create a wrapper for our OS to be able run the regression tests with that.
Hope that this feedback is useful for you.
Kind regards, Ildikó
From: Pocsai Ildiko LCPF-CH Sent: Friday, November 25, 2022 3:21 PM To: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Joseph,
Thanks for the hint regarding Python. I double-checked it, but it seems to be fine.
However, I still have issues with building the release 1.6.1. I figured it out that I need to install the 32-bit Strawberry Perl and with that CMake can find the Perl installation, but I get an error while configuring the project. You can find the full log below:
C:\Work\TF-M\trusted-firmware-m-TF-Mv1.6.1>cmake -G"Unix Makefiles" -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_IARARM.cmake -DCMAKE_BUILD_TYPE=Relwithdebinfo -DBL2=OFF fatal: not a git repository (or any of the parent directories): .git CMake Error at cmake/version.cmake:13 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:15 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:16 (string): string sub-command REGEX, mode MATCH needs at least 5 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
-- Populating tfm_test_repo -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/tfm_test_repo-subbuild [ 11%] Creating directories for 'tfm_test_repo-populate' [ 22%] Performing download step (git clone) for 'tfm_test_repo-populate' Cloning into 'tfm_test_repo-src'... remote: Enumerating objects: 2122, done. remote: Counting objects: 100% (2122/2122), done. remote: Compressing objects: 100% (1172/1172), done. remote: Total 3873 (delta 1868), reused 959 (delta 950), pack-reused 1751 Receiving objects: 100% (3873/3873), 2.35 MiB | 1.66 MiB/s, done. Resolving deltas: 100% (2715/2715), done. HEAD is now at 723905d Test: Fix bug in BL1 TRNG testsuite [ 33%] Performing update step for 'tfm_test_repo-populate' [ 44%] No patch step for 'tfm_test_repo-populate' [ 55%] No configure step for 'tfm_test_repo-populate' [ 66%] No build step for 'tfm_test_repo-populate' [ 77%] No install step for 'tfm_test_repo-populate' [ 88%] No test step for 'tfm_test_repo-populate' [100%] Completed 'tfm_test_repo-populate' [100%] Built target tfm_test_repo-populate CMake Warning at CMakeLists.txt:56 (project): VERSION keyword not followed by a value or was followed by a value that expanded to nothing.
-- The C compiler identification is IAR ARM 8.50.9 -- The ASM compiler identification is IAR ARM 8.50.9 -- Found assembler: C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/arm/bin/iasmarm.exe -- Found Git: C:/Users/pocsai-1/AppData/Local/Programs/Git/cmd/git.exe (found version "2.36.0.windows.1") -- Populating mbedcrypto -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/mbedcrypto-subbuild [ 11%] Creating directories for 'mbedcrypto-populate' [ 22%] Performing download step (git clone) for 'mbedcrypto-populate' Cloning into 'mbedcrypto-src'... remote: Enumerating objects: 22978, done. remote: Counting objects: 100% (22978/22978), done. remote: Compressing objects: 100% (11490/11490), done. remote: Total 22978 (delta 17960), reused 15329 (delta 11323), pack-reused 0 Receiving objects: 100% (22978/22978), 24.25 MiB | 2.13 MiB/s, done. Resolving deltas: 100% (17960/17960), done. HEAD is now at d65aeb37 Merge pull request #871 from ronald-cron-arm/mbedtls-3.1.0rc0-pr [ 33%] Performing update step for 'mbedcrypto-populate' [ 44%] Performing patch step for 'mbedcrypto-populate' [ 55%] No configure step for 'mbedcrypto-populate' [ 66%] No build step for 'mbedcrypto-populate' [ 77%] No install step for 'mbedcrypto-populate' [ 88%] No test step for 'mbedcrypto-populate' [100%] Completed 'mbedcrypto-populate' [100%] Built target mbedcrypto-populate -- Found Python3: C:/Users/pocsai-1/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.5") found components: Interpreter Start to generate partition files: Generating Protected Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/protected_storage Generating TF-M Internal Trusted Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/internal_trusted_storage Generating TFM Crypto Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/crypto Generating TFM Platform Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/platform Generating TFM Initial Attestation Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/initial_attestation Per-partition files done: -- ---------- Display crypto configuration - start -------------- -- CRYPTO_RNG_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_MODULE_DISABLED is set to FALSE -- CRYPTO_AEAD_MODULE_DISABLED is set to FALSE -- CRYPTO_MAC_MODULE_DISABLED is set to FALSE -- CRYPTO_CIPHER_MODULE_DISABLED is set to FALSE -- CRYPTO_HASH_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_DERIVATION_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_SIGN_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_ENCRYPT_MODULE_DISABLED is set to FALSE -- CRYPTO_ENGINE_BUF_SIZE is set to 0x2080 -- CRYPTO_CONC_OPER_NUM is set to 8 -- CRYPTO_IOVEC_BUFFER_SIZE is set to 5120 -- ---------- Display crypto configuration - stop --------------- -- Found Perl: C:/Strawberry/perl/bin/perl.exe (found version "5.32.1") -- ----------- Display storage configuration - start ------------ -- PS_CREATE_FLASH_LAYOUT is set to ON -- PS_ENCRYPTION is set to ON -- PS_RAM_FS is set to OFF -- PS_ROLLBACK_PROTECTION is set to ON -- PS_VALIDATE_METADATA_FROM_FLASH is set to ON -- PS_MAX_ASSET_SIZE is set to 512 -- PS_NUM_ASSETS is set to 5 -- PS_CRYPTO_AEAD_ALG is set to PSA_ALG_GCM -- ITS_CREATE_FLASH_LAYOUT is set to ON -- ITS_RAM_FS is set to OFF -- ITS_VALIDATE_METADATA_FROM_FLASH is set to ON -- ITS_MAX_ASSET_SIZE is set to 512 -- ITS_NUM_ASSETS is set to 10 -- ITS_BUF_SIZE is not set (defaults to ITS_MAX_ASSET_SIZE) -- ----------- Display storage configuration - stop ------------- -- Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk -- Configuring incomplete, errors occurred! See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeOutput.log". See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeError.log".
Do you have any idea what could be wrong? I cannot find any useful information in CMakeError.log or CMakeOutput.log. The step Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk is OK because the files are pulled from the NXP git repo. So, it must be somewhere in the configuration, but I have no idea where to look. The last release that I could build successfully on Windows was 1.4.1. All newer releases than that have build issues on my Windows machine.
Thanks in advance. Ildikó
From: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com> Sent: Friday, November 25, 2022 10:48 AM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildikó,
You might have multiple versions of Python installed on your Windows machine. In command shell, type C:> where python You might see something like C:\Program Files\Python37\python.exe C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python.exe
The TF-M build system might located the latest version of Python (e.g. 3.10), but when you run pip3 install -r tools\requirements.txt It might install the modules in an older version (e.g. 3.7).
To make sure you are installing the Python tools to the right version of Python, you can specify which Python to use when running pip: C:>C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python -m pip install -r tools\requirements.txt
Hope this solve the Python problem. Regards, Joseph
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: 24 November 2022 15:50 To: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on Win x64 for NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]: explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]: attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]: expected a declaration
void Reset_Handler(void) ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]: a declaration here must declare a parameter
{ ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]: expected a ";" At end of source Warning[Pe012]: parsing restarts here after previous syntax error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]: standard requires that parameter "__vector_table" be given a type by a subsequent declaration ("int" assumed) At end of source Error[Pe130]: expected a "{" At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]: entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]: declaration does not match its alias variable "__vector_table @ ".intvec"" make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2 make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2 make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Perl (missing: PERL_EXECUTABLE) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance. Ildikó
From: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com> Sent: Monday, October 31, 2022 2:11 PM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Thanks Ildikó, these are very useful feedback.
TF-M team is working on documentation update (mostly for 1.7) but I will work with TF-M team to see how to improve these areas.
Regards, Joseph (PS: technically I am not in the TF-M team, but I work with the TF-M team :-D )
From: Pocsai Ildiko LCPF-CH Ildiko.Pocsai@mt.com Sent: 29 November 2022 10:13 To: Joseph Yiu Joseph.Yiu@arm.com; Anton Komlev Anton.Komlev@arm.com; tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Joseph,
I finally managed to figure out what was the config issue with the release 1.6.1. Below some feedback from my side.
If you use the trusted-firmware-m-TF-Mv1.6.1.tar.gz from trusted-firmware-m.git - Trusted Firmware for M profile Arm CPUshttps://git.trustedfirmware.org/TF-M/trusted-firmware-m.git/, just like I did, CMake will report the config error because the version.cmake tries to execute a git command to get the version, but since the tar.gz is not a git repo, the command fails. Maybe it would be good in the future to fix this if you provide releases this way. So, one can either comment out include(cmake/version.cmake) from CMakeLists.txt as a quick and dirty fix, or better checkout the tag directly from the git repo. After that, I was able to successfully run CMake.
Another point is regarding the IAR compiler: the "Getting Started" guide indicates the following IAR compiler versions: "IAR Arm compiler v8.42.x, v8.50.x" So, I took the IAR 8.50.9. But, the release 1.6.1 uses the --fpu compiler option, which is not supported by IAR 8.50.x. I took the IAR 9.10.2 and with that I managed to build the release 1.6.1 with the regression tests.
Maybe it would be a good idea to update the IAR version in the "Getting Started" guide to the version that you use for the testing.
I'll be doing some experiments with the release 1.6.1 next and try to create a wrapper for our OS to be able run the regression tests with that.
Hope that this feedback is useful for you.
Kind regards, Ildikó
From: Pocsai Ildiko LCPF-CH Sent: Friday, November 25, 2022 3:21 PM To: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Joseph,
Thanks for the hint regarding Python. I double-checked it, but it seems to be fine.
However, I still have issues with building the release 1.6.1. I figured it out that I need to install the 32-bit Strawberry Perl and with that CMake can find the Perl installation, but I get an error while configuring the project. You can find the full log below:
C:\Work\TF-M\trusted-firmware-m-TF-Mv1.6.1>cmake -G"Unix Makefiles" -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_IARARM.cmake -DCMAKE_BUILD_TYPE=Relwithdebinfo -DBL2=OFF fatal: not a git repository (or any of the parent directories): .git CMake Error at cmake/version.cmake:13 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:15 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:16 (string): string sub-command REGEX, mode MATCH needs at least 5 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
-- Populating tfm_test_repo -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/tfm_test_repo-subbuild [ 11%] Creating directories for 'tfm_test_repo-populate' [ 22%] Performing download step (git clone) for 'tfm_test_repo-populate' Cloning into 'tfm_test_repo-src'... remote: Enumerating objects: 2122, done. remote: Counting objects: 100% (2122/2122), done. remote: Compressing objects: 100% (1172/1172), done. remote: Total 3873 (delta 1868), reused 959 (delta 950), pack-reused 1751 Receiving objects: 100% (3873/3873), 2.35 MiB | 1.66 MiB/s, done. Resolving deltas: 100% (2715/2715), done. HEAD is now at 723905d Test: Fix bug in BL1 TRNG testsuite [ 33%] Performing update step for 'tfm_test_repo-populate' [ 44%] No patch step for 'tfm_test_repo-populate' [ 55%] No configure step for 'tfm_test_repo-populate' [ 66%] No build step for 'tfm_test_repo-populate' [ 77%] No install step for 'tfm_test_repo-populate' [ 88%] No test step for 'tfm_test_repo-populate' [100%] Completed 'tfm_test_repo-populate' [100%] Built target tfm_test_repo-populate CMake Warning at CMakeLists.txt:56 (project): VERSION keyword not followed by a value or was followed by a value that expanded to nothing.
-- The C compiler identification is IAR ARM 8.50.9 -- The ASM compiler identification is IAR ARM 8.50.9 -- Found assembler: C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/arm/bin/iasmarm.exe -- Found Git: C:/Users/pocsai-1/AppData/Local/Programs/Git/cmd/git.exe (found version "2.36.0.windows.1") -- Populating mbedcrypto -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/mbedcrypto-subbuild [ 11%] Creating directories for 'mbedcrypto-populate' [ 22%] Performing download step (git clone) for 'mbedcrypto-populate' Cloning into 'mbedcrypto-src'... remote: Enumerating objects: 22978, done. remote: Counting objects: 100% (22978/22978), done. remote: Compressing objects: 100% (11490/11490), done. remote: Total 22978 (delta 17960), reused 15329 (delta 11323), pack-reused 0 Receiving objects: 100% (22978/22978), 24.25 MiB | 2.13 MiB/s, done. Resolving deltas: 100% (17960/17960), done. HEAD is now at d65aeb37 Merge pull request #871 from ronald-cron-arm/mbedtls-3.1.0rc0-pr [ 33%] Performing update step for 'mbedcrypto-populate' [ 44%] Performing patch step for 'mbedcrypto-populate' [ 55%] No configure step for 'mbedcrypto-populate' [ 66%] No build step for 'mbedcrypto-populate' [ 77%] No install step for 'mbedcrypto-populate' [ 88%] No test step for 'mbedcrypto-populate' [100%] Completed 'mbedcrypto-populate' [100%] Built target mbedcrypto-populate -- Found Python3: C:/Users/pocsai-1/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.5") found components: Interpreter Start to generate partition files: Generating Protected Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/protected_storage Generating TF-M Internal Trusted Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/internal_trusted_storage Generating TFM Crypto Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/crypto Generating TFM Platform Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/platform Generating TFM Initial Attestation Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/initial_attestation Per-partition files done: -- ---------- Display crypto configuration - start -------------- -- CRYPTO_RNG_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_MODULE_DISABLED is set to FALSE -- CRYPTO_AEAD_MODULE_DISABLED is set to FALSE -- CRYPTO_MAC_MODULE_DISABLED is set to FALSE -- CRYPTO_CIPHER_MODULE_DISABLED is set to FALSE -- CRYPTO_HASH_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_DERIVATION_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_SIGN_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_ENCRYPT_MODULE_DISABLED is set to FALSE -- CRYPTO_ENGINE_BUF_SIZE is set to 0x2080 -- CRYPTO_CONC_OPER_NUM is set to 8 -- CRYPTO_IOVEC_BUFFER_SIZE is set to 5120 -- ---------- Display crypto configuration - stop --------------- -- Found Perl: C:/Strawberry/perl/bin/perl.exe (found version "5.32.1") -- ----------- Display storage configuration - start ------------ -- PS_CREATE_FLASH_LAYOUT is set to ON -- PS_ENCRYPTION is set to ON -- PS_RAM_FS is set to OFF -- PS_ROLLBACK_PROTECTION is set to ON -- PS_VALIDATE_METADATA_FROM_FLASH is set to ON -- PS_MAX_ASSET_SIZE is set to 512 -- PS_NUM_ASSETS is set to 5 -- PS_CRYPTO_AEAD_ALG is set to PSA_ALG_GCM -- ITS_CREATE_FLASH_LAYOUT is set to ON -- ITS_RAM_FS is set to OFF -- ITS_VALIDATE_METADATA_FROM_FLASH is set to ON -- ITS_MAX_ASSET_SIZE is set to 512 -- ITS_NUM_ASSETS is set to 10 -- ITS_BUF_SIZE is not set (defaults to ITS_MAX_ASSET_SIZE) -- ----------- Display storage configuration - stop ------------- -- Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk -- Configuring incomplete, errors occurred! See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeOutput.log". See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeError.log".
Do you have any idea what could be wrong? I cannot find any useful information in CMakeError.log or CMakeOutput.log. The step Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk is OK because the files are pulled from the NXP git repo. So, it must be somewhere in the configuration, but I have no idea where to look. The last release that I could build successfully on Windows was 1.4.1. All newer releases than that have build issues on my Windows machine.
Thanks in advance. Ildikó
From: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com> Sent: Friday, November 25, 2022 10:48 AM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildikó,
You might have multiple versions of Python installed on your Windows machine. In command shell, type C:> where python You might see something like C:\Program Files\Python37\python.exe C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python.exe
The TF-M build system might located the latest version of Python (e.g. 3.10), but when you run pip3 install -r tools\requirements.txt It might install the modules in an older version (e.g. 3.7).
To make sure you are installing the Python tools to the right version of Python, you can specify which Python to use when running pip: C:>C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python -m pip install -r tools\requirements.txt
Hope this solve the Python problem. Regards, Joseph
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: 24 November 2022 15:50 To: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on Win x64 for NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]: explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]: attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]: expected a declaration
void Reset_Handler(void) ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]: a declaration here must declare a parameter
{ ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]: expected a ";" At end of source Warning[Pe012]: parsing restarts here after previous syntax error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]: standard requires that parameter "__vector_table" be given a type by a subsequent declaration ("int" assumed) At end of source Error[Pe130]: expected a "{" At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]: entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]: declaration does not match its alias variable "__vector_table @ ".intvec"" make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2 make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2 make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Perl (missing: PERL_EXECUTABLE) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance. Ildikó
From: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com> Sent: Monday, October 31, 2022 2:11 PM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hi,
I would like to add a comment related to storing the version number.
In TS we only use the git tag to help easy retrieval of releases, but store the release and version IDs in files. I suggest adopting the same approach in TF-M. Please refer to our documentation to read about the concept [1].
This is how the implementation look like: This is the file for the release id [1] and this is the file storing the version id of a component [2]. This how the cmake project reads and sets its version ID [3] and this is the cmake module reading the version file.
1: https://trusted-services.readthedocs.io/en/integration/project/versioning_po... 2: https://review.trustedfirmware.org/plugins/gitiles/TS/trusted-services/+/f0b... 3: https://review.trustedfirmware.org/plugins/gitiles/TS/trusted-services/+/f0b... 4: https://review.trustedfirmware.org/plugins/gitiles/TS/trusted-services/+/f0b... 5: https://review.trustedfirmware.org/plugins/gitiles/TS/trusted-services/+/f0b...
Thanks!
/George
From: Joseph Yiu via TF-M tf-m@lists.trustedfirmware.org Sent: 29 November 2022 12:24 To: Pocsai Ildiko LCPF-CH Ildiko.Pocsai@mt.com; Anton Komlev Anton.Komlev@arm.com; tf-m@lists.trustedfirmware.org Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Thanks Ildikó, these are very useful feedback.
TF-M team is working on documentation update (mostly for 1.7) but I will work with TF-M team to see how to improve these areas.
Regards, Joseph (PS: technically I am not in the TF-M team, but I work with the TF-M team :-D )
From: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com> Sent: 29 November 2022 10:13 To: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Joseph,
I finally managed to figure out what was the config issue with the release 1.6.1. Below some feedback from my side.
If you use the trusted-firmware-m-TF-Mv1.6.1.tar.gz from trusted-firmware-m.git - Trusted Firmware for M profile Arm CPUshttps://git.trustedfirmware.org/TF-M/trusted-firmware-m.git/, just like I did, CMake will report the config error because the version.cmake tries to execute a git command to get the version, but since the tar.gz is not a git repo, the command fails. Maybe it would be good in the future to fix this if you provide releases this way. So, one can either comment out include(cmake/version.cmake) from CMakeLists.txt as a quick and dirty fix, or better checkout the tag directly from the git repo. After that, I was able to successfully run CMake.
Another point is regarding the IAR compiler: the "Getting Started" guide indicates the following IAR compiler versions: "IAR Arm compiler v8.42.x, v8.50.x" So, I took the IAR 8.50.9. But, the release 1.6.1 uses the --fpu compiler option, which is not supported by IAR 8.50.x. I took the IAR 9.10.2 and with that I managed to build the release 1.6.1 with the regression tests.
Maybe it would be a good idea to update the IAR version in the "Getting Started" guide to the version that you use for the testing.
I'll be doing some experiments with the release 1.6.1 next and try to create a wrapper for our OS to be able run the regression tests with that.
Hope that this feedback is useful for you.
Kind regards, Ildikó
From: Pocsai Ildiko LCPF-CH Sent: Friday, November 25, 2022 3:21 PM To: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Joseph,
Thanks for the hint regarding Python. I double-checked it, but it seems to be fine.
However, I still have issues with building the release 1.6.1. I figured it out that I need to install the 32-bit Strawberry Perl and with that CMake can find the Perl installation, but I get an error while configuring the project. You can find the full log below:
C:\Work\TF-M\trusted-firmware-m-TF-Mv1.6.1>cmake -G"Unix Makefiles" -S . -B build -DTFM_PLATFORM=nxp/lpcxpresso55s69 -DTFM_TOOLCHAIN_FILE=toolchain_IARARM.cmake -DCMAKE_BUILD_TYPE=Relwithdebinfo -DBL2=OFF fatal: not a git repository (or any of the parent directories): .git CMake Error at cmake/version.cmake:13 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:15 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
CMake Error at cmake/version.cmake:16 (string): string sub-command REGEX, mode MATCH needs at least 5 arguments total to command. Call Stack (most recent call first): CMakeLists.txt:10 (include)
-- Populating tfm_test_repo -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/tfm_test_repo-subbuild [ 11%] Creating directories for 'tfm_test_repo-populate' [ 22%] Performing download step (git clone) for 'tfm_test_repo-populate' Cloning into 'tfm_test_repo-src'... remote: Enumerating objects: 2122, done. remote: Counting objects: 100% (2122/2122), done. remote: Compressing objects: 100% (1172/1172), done. remote: Total 3873 (delta 1868), reused 959 (delta 950), pack-reused 1751 Receiving objects: 100% (3873/3873), 2.35 MiB | 1.66 MiB/s, done. Resolving deltas: 100% (2715/2715), done. HEAD is now at 723905d Test: Fix bug in BL1 TRNG testsuite [ 33%] Performing update step for 'tfm_test_repo-populate' [ 44%] No patch step for 'tfm_test_repo-populate' [ 55%] No configure step for 'tfm_test_repo-populate' [ 66%] No build step for 'tfm_test_repo-populate' [ 77%] No install step for 'tfm_test_repo-populate' [ 88%] No test step for 'tfm_test_repo-populate' [100%] Completed 'tfm_test_repo-populate' [100%] Built target tfm_test_repo-populate CMake Warning at CMakeLists.txt:56 (project): VERSION keyword not followed by a value or was followed by a value that expanded to nothing.
-- The C compiler identification is IAR ARM 8.50.9 -- The ASM compiler identification is IAR ARM 8.50.9 -- Found assembler: C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.4/arm/bin/iasmarm.exe -- Found Git: C:/Users/pocsai-1/AppData/Local/Programs/Git/cmd/git.exe (found version "2.36.0.windows.1") -- Populating mbedcrypto -- Configuring done -- Generating done -- Build files have been written to: C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/lib/ext/mbedcrypto-subbuild [ 11%] Creating directories for 'mbedcrypto-populate' [ 22%] Performing download step (git clone) for 'mbedcrypto-populate' Cloning into 'mbedcrypto-src'... remote: Enumerating objects: 22978, done. remote: Counting objects: 100% (22978/22978), done. remote: Compressing objects: 100% (11490/11490), done. remote: Total 22978 (delta 17960), reused 15329 (delta 11323), pack-reused 0 Receiving objects: 100% (22978/22978), 24.25 MiB | 2.13 MiB/s, done. Resolving deltas: 100% (17960/17960), done. HEAD is now at d65aeb37 Merge pull request #871 from ronald-cron-arm/mbedtls-3.1.0rc0-pr [ 33%] Performing update step for 'mbedcrypto-populate' [ 44%] Performing patch step for 'mbedcrypto-populate' [ 55%] No configure step for 'mbedcrypto-populate' [ 66%] No build step for 'mbedcrypto-populate' [ 77%] No install step for 'mbedcrypto-populate' [ 88%] No test step for 'mbedcrypto-populate' [100%] Completed 'mbedcrypto-populate' [100%] Built target mbedcrypto-populate -- Found Python3: C:/Users/pocsai-1/AppData/Local/Programs/Python/Python310/python.exe (found version "3.10.5") found components: Interpreter Start to generate partition files: Generating Protected Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/protected_storage Generating TF-M Internal Trusted Storage Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/internal_trusted_storage Generating TFM Crypto Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/crypto Generating TFM Platform Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/platform Generating TFM Initial Attestation Service in C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/generated/secure_fw/partitions/initial_attestation Per-partition files done: -- ---------- Display crypto configuration - start -------------- -- CRYPTO_RNG_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_MODULE_DISABLED is set to FALSE -- CRYPTO_AEAD_MODULE_DISABLED is set to FALSE -- CRYPTO_MAC_MODULE_DISABLED is set to FALSE -- CRYPTO_CIPHER_MODULE_DISABLED is set to FALSE -- CRYPTO_HASH_MODULE_DISABLED is set to FALSE -- CRYPTO_KEY_DERIVATION_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_SIGN_MODULE_DISABLED is set to FALSE -- CRYPTO_ASYM_ENCRYPT_MODULE_DISABLED is set to FALSE -- CRYPTO_ENGINE_BUF_SIZE is set to 0x2080 -- CRYPTO_CONC_OPER_NUM is set to 8 -- CRYPTO_IOVEC_BUFFER_SIZE is set to 5120 -- ---------- Display crypto configuration - stop --------------- -- Found Perl: C:/Strawberry/perl/bin/perl.exe (found version "5.32.1") -- ----------- Display storage configuration - start ------------ -- PS_CREATE_FLASH_LAYOUT is set to ON -- PS_ENCRYPTION is set to ON -- PS_RAM_FS is set to OFF -- PS_ROLLBACK_PROTECTION is set to ON -- PS_VALIDATE_METADATA_FROM_FLASH is set to ON -- PS_MAX_ASSET_SIZE is set to 512 -- PS_NUM_ASSETS is set to 5 -- PS_CRYPTO_AEAD_ALG is set to PSA_ALG_GCM -- ITS_CREATE_FLASH_LAYOUT is set to ON -- ITS_RAM_FS is set to OFF -- ITS_VALIDATE_METADATA_FROM_FLASH is set to ON -- ITS_MAX_ASSET_SIZE is set to 512 -- ITS_NUM_ASSETS is set to 10 -- ITS_BUF_SIZE is not set (defaults to ITS_MAX_ASSET_SIZE) -- ----------- Display storage configuration - stop ------------- -- Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk -- Configuring incomplete, errors occurred! See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeOutput.log". See also "C:/Work/TF-M/trusted-firmware-m-TF-Mv1.6.1/build/CMakeFiles/CMakeError.log".
Do you have any idea what could be wrong? I cannot find any useful information in CMakeError.log or CMakeOutput.log. The step Pulling MCUxpresso NXP SDK drivers from https://github.com/NXPmicro/mcux-sdk is OK because the files are pulled from the NXP git repo. So, it must be somewhere in the configuration, but I have no idea where to look. The last release that I could build successfully on Windows was 1.4.1. All newer releases than that have build issues on my Windows machine.
Thanks in advance. Ildikó
From: Joseph Yiu <Joseph.Yiu@arm.commailto:Joseph.Yiu@arm.com> Sent: Friday, November 25, 2022 10:48 AM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: RE: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildikó,
You might have multiple versions of Python installed on your Windows machine. In command shell, type C:> where python You might see something like C:\Program Files\Python37\python.exe C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python.exe
The TF-M build system might located the latest version of Python (e.g. 3.10), but when you run pip3 install -r tools\requirements.txt It might install the modules in an older version (e.g. 3.7).
To make sure you are installing the Python tools to the right version of Python, you can specify which Python to use when running pip: C:>C:\Users<username>\AppData\Local\Microsoft\WindowsApps\python -m pip install -r tools\requirements.txt
Hope this solve the Python problem. Regards, Joseph
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: 24 November 2022 15:50 To: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Anton,
Just wanted to ask if there are any updates regarding the build failure on Windows with the IAR compiler. I tried to build the head version on Win x64 for NXP LPC55S69 using
IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
but I still get some errors. They are though not the same as during my previous try:
[ 77%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe260]: explicit type is missing ("int" assumed)
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1113]: attributes are not permitted in a function definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe169]: expected a declaration
void Reset_Handler(void) ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",228 Error[Pe099]: a declaration here must declare a parameter
{ ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",229 Error[Pe065]: expected a ";" At end of source Warning[Pe012]: parsing restarts here after previous syntax error
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Warning[Pe1051]: standard requires that parameter "__vector_table" be given a type by a subsequent declaration ("int" assumed) At end of source Error[Pe130]: expected a "{" At end of source Error[Pe067]: expected a "}"
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1154]: entity declared as alias cannot have definition
extern typeof(__vector_table) __attribute__ ((alias ("__vector_table"))) __Vectors; ^ "C:\Work\TF-M\head\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",218 Error[Pe1153]: declaration does not match its alias variable "__vector_table @ ".intvec"" make[2]: *** [secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o] Error 2 make[1]: *** [secure_fw/CMakeFiles/tfm_s.dir/all] Error 2 make: *** [all] Error 2
Could you please tell if there is any plan to fix these errors in the near future?
Another question regarding the latest release 1.6.1: I tried to build this too using the setup mentioned above, but I get an error for missing Perl:
CMake Error at C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Perl (missing: PERL_EXECUTABLE) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.24/Modules/FindPerl.cmake:84 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) build/lib/ext/mbedcrypto-src/library/CMakeLists.txt:115 (find_package)
I installed Straberry Perl on my machine and added it to PATH, but the error still persists. I tried also to re-run pip3 install -r tools\requirements.txt but it says that all the requirements are up-to-date. What am I missing here?
Thanks in advance. Ildikó
From: Anton Komlev <Anton.Komlev@arm.commailto:Anton.Komlev@arm.com> Sent: Monday, October 31, 2022 2:11 PM To: Pocsai Ildiko LCPF-CH <Ildiko.Pocsai@mt.commailto:Ildiko.Pocsai@mt.com>; tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: Re: EXTERNAL - Trusted Firmware M build error on Windows 10
Hi Ildiko,
Thanks for reporting. The same defect is reproducible on other platforms and possibly caused by some recent changes. Let me update you here when fix be available.
Best regards, Anton
From: Pocsai Ildiko LCPF-CH via TF-M <tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org> Sent: Monday, October 31, 2022 5:56 AM To: tf-m@lists.trustedfirmware.orgmailto:tf-m@lists.trustedfirmware.org Subject: [TF-M] Trusted Firmware M build error on Windows 10
Hello,
I'm trying to build the Trusted Firmware M on Win10 x64 for NXP LPC55S69 using the IAR compiler, but I get the following error:
[ 76%] Building C object secure_fw/CMakeFiles/tfm_s.dir/__/platform/ext/target/nxp/lpcxpresso55s69/Device/Source/startup_lpcxpresso55s69.o
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe065]: expected a ";"
extern uint32_t __INITIAL_SP; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",29 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe065]: expected a ";"
extern uint32_t __STACK_LIMIT; ^ "C:\Work\TF-M\trusted-firmware-m\platform\ext\target\nxp\lpcxpresso55s69\Device\Source\startup_lpcxpresso55s69.c",30 Error[Pe007]: unrecognized token
(VECTOR_TABLE_Type)(&__INITIAL_SP), /* Initial Stack Pointer */
In the attachment, you can find the full build log and also the CMake build file generation log.
Some details about my setup:
Win10 Enterprise x64. Version 20H2 IAR ANSI C/C++ Compiler V8.50.9.278/W32 for ARM GNU Make 3.81 git version 2.36.0.windows.1 CMake 3.24.2 Python 3.10.5
I followed the steps from the Getting started guide herehttps://tf-m-user-guide.trustedfirmware.org/getting_started/index.html than the steps to build the framework for LPC55S69 herehttps://tf-m-user-guide.trustedfirmware.org/platform/nxp/lpcxpresso55s69/README.html.
Do you have any idea what I'm missing?
In case you need any further information let me please know.
Thanks in advance.
Kind regards, Ildikó Pocsai
Hello Ildikó!
We have fixed this issue, for details please check: https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/18092
Best regards, Dávid Házi
tf-m@lists.trustedfirmware.org