nRF9160 HTTPS sample project fails to compile

I'm trying to compile the nrf/samples/nrf9160/https_client sample application. I'm using the Connect SDK v2.3.0 (current version at time of writing), installed in C:\nrf\.

I've tried to build it both for the nrf9160dk_nrf9160_ns and the thingy91_nrf9160_ns boards. In both cases, I get the following error:

[9/134] Building C object secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/CMakeFiles/crypto_service_mbedcrypto.dir/C_/ncs/v2.3.0/modules/crypto/mbedtls/library/psa_crypto_client.o
FAILED: secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/CMakeFiles/crypto_service_mbedcrypto.dir/C_/ncs/v2.3.0/modules/crypto/mbedtls/library/psa_crypto_client.o
C:\ncs\toolchains\v2.3.0\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-gcc.exe -DBL1_HEADER_SIZE=0x000 -DBL1_TRAILER_SIZE=0x000 -DBL2_HEADER_SIZE=0x000 -DBL2_TRAILER_SIZE=0x000 -DCONFIG_HW_UNIQUE_KEY -DCONFIG_HW_UNIQUE_KEY_RANDOM -DCONFIG_TFM_DOORBELL_API=1 -DCONFIG_TFM_FP=0 -DCONFIG_TFM_PARTITION_META -DDAUTH_CHIP_DEFAULT -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DMBEDTLS_USER_CONFIG_FILE=\"nrf-config-user.h\" -DMCUBOOT_IMAGE_NUMBER=1 -DNRF9160_XXAA -DNRF_ALLOW_NON_SECURE_RESET -DNRF_NS_STORAGE -DNRF_SKIP_FICR_NS_COPY_TO_RAM -DPLATFORM_DEFAULT_BL1 -DPSA_CRYPTO_SECURE -DTFM_FIH_PROFILE_OFF -DTFM_INTERNAL_TRUSTED_STORAGE_SERVICE_SID=0x00000070 -DTFM_LVL=1 -DTFM_PARTITION_CRYPTO -DTFM_PARTITION_LOG_LEVEL=TFM_PARTITION_LOG_LEVEL_SILENCE -DTFM_PARTITION_PLATFORM -DTFM_PSA_API -DTFM_SPM_LOG_LEVEL=TFM_SPM_LOG_LEVEL_SILENCE -D__NRF_TFM__ -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/secure_fw/partitions/crypto -Isecure_fw/partitions/crypto/mbedcrypto/nrf_security_src/include/generated -IC:/ncs/v2.3.0/nrfxlib/nrf_security/tfm/../include -IC:/ncs/v2.3.0/nrfxlib/nrf_security/tfm/../include/mbedtls -IC:/ncs/v2.3.0/nrfxlib/nrf_security/tfm/../include/psa -IC:/ncs/v2.3.0/modules/crypto/mbedtls/include -IC:/ncs/v2.3.0/modules/crypto/mbedtls/include/mbedtls -IC:/ncs/v2.3.0/modules/crypto/mbedtls/include/psa -IC:/ncs/v2.3.0/modules/crypto/mbedtls/library -IC:/ncs/v2.3.0/nrfxlib/nrf_security/tfm/../../crypto/nrf_oberon/include -IC:/ncs/v2.3.0/nrfxlib/nrf_security/tfm/../../crypto/nrf_oberon/include/mbedtls -IC:/ncs/v2.3.0/nrfxlib/nrf_security/tfm/../../crypto/nrf_oberon/include/psa -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/interface/include -Igenerated/interface/include -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/ext/target/nordic_nrf/common/core/. -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/ext/target/nordic_nrf/common/core/native_drivers -IC:/ncs/v2.3.0/modules/hal/nordic/nrfx -IC:/ncs/v2.3.0/modules/hal/nordic/nrfx/mdk -IC:/ncs/v2.3.0/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/ext/target/nordic_nrf/common/core/common -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/.. -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/ext/target/nordic_nrf/common/core/services/include -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/ext/target/nordic_nrf/common/nrf9160/. -IC:/ncs/v2.3.0/nrf/modules/tfm/tfm/boards/partition -I../zephyr/include/generated -IC:/ncs/v2.3.0/nrf/modules/tfm/tfm/boards/board -I../zephyr/misc/generated/syscalls_links/include -IC:/ncs/v2.3.0/zephyr/include/zephyr -IC:/ncs/v2.3.0/zephyr/include -IC:/ncs/v2.3.0/nrf/modules/tfm/tfm/boards/services/include -IC:/ncs/v2.3.0/nrf/include -IC:/ncs/v2.3.0/nrf/modules/tfm/tfm/boards/include -IC:/ncs/v2.3.0/nrf/include/tfm -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/ext/accelerator/interface -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/./ext -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/./ext/cmsis -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/./ext/common -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/./ext/driver -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/platform/./include -IC:/ncs/v2.3.0/modules/tee/tf-m/trusted-firmware-m/lib/fih/inc -isystem C:/ncs/v2.3.0/nrfxlib/crypto/nrf_cc310_platform/include -isystem C:/ncs/v2.3.0/nrfxlib/crypto/nrf_oberon/include/psa -isystem C:/ncs/v2.3.0/nrfxlib/crypto/nrf_oberon/include -isystem C:/ncs/v2.3.0/nrfxlib/crypto/nrf_oberon/include/mbedtls -mcpu=cortex-m33+nodsp -O2 -g -DNDEBUG --specs=nano.specs -Wall -Wno-format -Wno-return-type -Wno-unused-but-set-variable -c -fdata-sections -ffunction-sections -fno-builtin -fshort-enums -funsigned-char -mthumb -nostdlib -std=c99 -gdwarf-4 -g -imacros C:/{REPO_PATH}/https_client/build_1/zephyr/include/generated/autoconf.h -Wno-unused-function -Wno-unused-variable -Wno-unused-const-variable -Wno-unused-parameter -mfloat-abi=soft -mcmse -Wno-unused-value -MD -MT secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/CMakeFiles/crypto_service_mbedcrypto.dir/C_/ncs/v2.3.0/modules/crypto/mbedtls/library/psa_crypto_client.o -MF secure_fw\partitions\crypto\mbedcrypto\nrf_security_src\CMakeFiles\crypto_service_mbedcrypto.dir\C_\ncs\v2.3.0\modules\crypto\mbedtls\library\psa_crypto_client.o.d -o secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/CMakeFiles/crypto_service_mbedcrypto.dir/C_/ncs/v2.3.0/modules/crypto/mbedtls/library/psa_crypto_client.o -c C:/ncs/v2.3.0/modules/crypto/mbedtls/library/psa_crypto_client.c
C:\ncs\v2.3.0\modules\crypto\mbedtls\library\psa_crypto_client.c:80:1: fatal error: opening dependency file secure_fw\partitions\crypto\mbedcrypto\nrf_security_src\CMakeFiles\crypto_service_mbedcrypto.dir\C_\ncs\v2.3.0\modules\crypto\mbedtls\library\psa_crypto_client.o.d: No such file or directory
80 | }
| ^
compilation terminated.
ninja: build stopped: subcommand failed.
FAILED: modules/trusted-firmware-m/tfm-prefix/src/tfm-stamp/tfm-build tfm/secure_fw/s_veneers.o tfm/tf-m-tests/app/libtfm_api_ns.a tfm/generated/interface/include/psa_manifest/sid.h tfm/platform/libplatform_ns.a tfm/bin/tfm_s.elf tfm/bin/tfm_s.bin tfm/bin/tfm_s.hex tfm/bin/tfm_ns.bin tfm/bin/tfm_ns.hex tfm/bin/tfm_s_signed.bin tfm/bin/tfm_ns_signed.bin tfm/bin/tfm_s_ns_signed.bin tfm/install/interface/src/tfm_platform_ipc_api.c tfm/install/interface/src/tfm_ps_ipc_api.c tfm/install/interface/src/tfm_its_ipc_api.c tfm/install/interface/src/tfm_crypto_ipc_api.c tfm/install/interface/src/tfm_initial_attestation_ipc_api.c tfm/install/interface/src/tfm_firmware_update_ipc_api.c tfm/install/interface/src/tfm_psa_ns_api.c tfm/install/interface/src/tfm_platform_func_api.c tfm/install/interface/src/tfm_ps_func_api.c tfm/install/interface/src/tfm_its_func_api.c tfm/install/interface/src/tfm_crypto_func_api.c tfm/install/interface/src/tfm_initial_attestation_func_api.c tfm/install/interface/src/tfm_firmware_update_func_api.c tfm/install/interface/src/tfm_ioctl_core_ns_api.c
cmd.exe /C "cd /D C:\{REPO_PATH}\https_client\build_1\tfm && C:\ncs\toolchains\v2.3.0\opt\bin\cmake.exe --build . -j 1"
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: 'c:\ncs\toolchains\v2.3.0\opt\bin\cmake.EXE' --build 'c:\{REPO_PATH}\https_client\build_1'


This is an out-of-the-box sample with a compatible board and an up-to-date SDK, so this should definitely be building.

Parents
  • Hi,

    Please share the complete build log.

    Can you try updating the SDK and see if this gives any errors? In the Toolchain Manager, click the down arrow and select "Open bash" or "Open command prompt".

    Make sure you are inside C:\ncs\v2.3.0, then run west update. Please upload the complete output from the command here.

    Best regards,
    Marte

  • Ah, yep, found the issue higher in the build log.

    CMake Warning in C:/ncs/v2.3.0/nrfxlib/nrf_security/src/CMakeLists.txt:
    The object file directory

    C:/{REPO_PATH}/https_client/build/tfm/secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/CMakeFiles/crypto_service_mbedcrypto.dir/./

    has 201 characters. The maximum full path to an object file is 250
    characters (see CMAKE_OBJECT_PATH_MAX). Object file

    C_/ncs/v2.3.0/modules/crypto/mbedtls/library/psa_crypto_hash.o

    cannot be safely placed under this directory. The build may not work
    correctly.

    Two questions on this:
    1. Is it possible to increase the value for CMAKE_OBJECT_PATH_MAX? If so, how?
    2. Why is it using the full path name as the filename for the library? It could name this library psa_crypto_hash.o instead and the build would work just fine.

  • Hi,

    JordanK said:
    1. Is it possible to increase the value for CMAKE_OBJECT_PATH_MAX? If so, how?

    It is possible to change the path in CMake with the set command, for example, set(CMAKE_OBJECT_PATH_MAX 250). However, I recommend shortening the path instead of changing CMAKE_OBJECT_PATH_MAX, as it might cause other issues.

    JordanK said:
    2. Why is it using the full path name as the filename for the library? It could name this library psa_crypto_hash.o instead and the build would work just fine.

    CMake needs to know where the file is located to find the file, and thus it needs to be given the path of the file.

    Please try placing the project in a directory closer to the root directory C:\ to reduce the path length.

    Best regards,

    Marte

Reply
  • Hi,

    JordanK said:
    1. Is it possible to increase the value for CMAKE_OBJECT_PATH_MAX? If so, how?

    It is possible to change the path in CMake with the set command, for example, set(CMAKE_OBJECT_PATH_MAX 250). However, I recommend shortening the path instead of changing CMAKE_OBJECT_PATH_MAX, as it might cause other issues.

    JordanK said:
    2. Why is it using the full path name as the filename for the library? It could name this library psa_crypto_hash.o instead and the build would work just fine.

    CMake needs to know where the file is located to find the file, and thus it needs to be given the path of the file.

    Please try placing the project in a directory closer to the root directory C:\ to reduce the path length.

    Best regards,

    Marte

Children
No Data
Related