Skip to content

Fix: Long path issue on Windows when using build_tfm.py #25

@jainvikas8

Description

@jainvikas8

The build fails when using the script. For example, if standalone script is executed:

$python3 build_tfm.py -m ARM_MUSCA_B1 -t GNUARM -c ConfigRegressionIPC.cmake

[Build-TF-M] 15:57:22: [  8%] [32mBuilding C object secure_fw/CMakeFiles/tfm_s_obj_lib.dir/__/platform/ext/target/musca.b1/Native_Driver/musca_b1_eflash_drv.o[0m
.Build-TF-M] 15:57:23: Assembler messages:
[Build-TF-M] 15:57:23: Fatal error: can't create CMakeFiles/tfm_s_obj_lib.dir/__/platform/ext/target/musca_b1/Native_Dri.er/musca_b1_eflash_drv.o: No such file or directory
[Build-TF-M] 15:57:23: make.exe[2]: *** [secure_fw/CMakeFiles/tfm_s_obj_lib.dir/build.make:591: secure_fw/CMakeFiles/tfm.s_obj_lib.dir/__/platform/ext/target/musca_b1/Native_Driver/musca_b1_eflash_drv.o] Error 1
.Build-TF-M] 15:57:23: make.exe[1]: *** [CMakeFiles/Makefile2:109: secure_fw/CMakeFiles/tfm_s_obj_lib.dir/all] Error 2
.Build-TF-M] 15:57:23: make.exe: *** [Makefile:130: all] Error 2

On closer investigation, it seems to be Windows O.S limitation with path being too long

[Build-TF-M] 17:43:01: CMake Warning in secure_fw/services/internal_trusted_storage/CMakeLists.txt:.
[Build-TF-M] 17:43:01:   The object file directory.
[Build-TF-M] 17:43:01: .
[Build-TF-M] 17:43:01:     C:/Work/Workspace/mbed-os-tf-m-regression-tests/mbed-os/features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_IGNORE/trusted-firmware-m/cmake_build/secure_fw/services/internal_trusted_storage/CMakeFiles/tfm_internal_trusted_storage.dir/.
[Build-TF-M] 17:43:01: .
[Build-TF-M] 17:43:01:   has 246 characters.  The maximum full path to an object file is 250.
[Build-TF-M] 17:43:01:   characters (see CMAKE_OBJECT_PATH_MAX).  Object file.
[Build-TF-M] 17:43:01: .
[Build-TF-M] 17:43:01:     flash_fs/its_flash_fs.o.
[Build-TF-M] 17:43:01: .
[Build-TF-M] 17:43:01:   cannot be safely placed under this directory.  The build may not work.
[Build-TF-M] 17:43:01:   correctly..

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions