Failed to define MBEDTLS_X509_CRT_WRITE_C even after adding appropriate configs in prj.conf file

Hello,

I am having nRF9160 with modem FW = 1.3.6 and nrf sdk version 2.7.0

I am using MBEDTLS library for generating self-signed & CSR certificates with EC-Key and RSA key. I am adding following configs in my prj.conf file

    MBEDTLS_X509_CSR_WRITE_C
    MBEDTLS_X509_CREATE_C
    MBEDTLS_ENTROPY_C
    MBEDTLS_CTR_DRBG_C
    MBEDTLS_PK_WRITE_C
    MBEDTLS_ZEPHYR_ENTROPY
    MBEDTLS
    MBEDTLS_ENABLE_HEAP
    MBEDTLS_TLS_LIBRARY
    MBEDTLS_X509_LIBRARY
    NRF_SECURITY_ADVANCED
    NORDIC_SECURITY_BACKEND
    MBEDTLS_DHM_C
    MBEDTLS_ECDH_C
    MBEDTLS_ECDSA_C
    MBEDTLS_ECP_C
    MBEDTLS_ECJPAKE_C
    MBEDTLS_GCM_C
    MBEDTLS_CIPHER_C
    MBEDTLS_RSA_C
    PSA_WANT_RSA_KEY_SIZE_2048
Even after enabling this configs MBEDTLS_X509_CRT_WRITE_C is not getting enabled in autoconf.h file. Because of this I am not able to compile the code and go ahead.
Can you please suggest probable reason or steps to get this resolved.
Parents
  • Attaching my compilation logs for your reference

    [268/399] Building CXX object CMakeFiles/app.dir/src/CertStoreMgnr/CertStoreMgnr.cpp.obj
    FAILED: CMakeFiles/app.dir/src/CertStoreMgnr/CertStoreMgnr.cpp.obj 
    ccache zephyr-sdk-0.16.5-1/arm-zephyr-eabi/bin/arm-zephyr-eabi-g++ -DAPP_VERSION=v2.7.0 -DKERNEL -DK_HEAP_MEM_POOL_SIZE=16384 -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DMBEDTLS_PSA_CRYPTO_CONFIG -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE=\"nrf-psa-crypto-want-config.h\" -DMBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE=\"nrf-psa-crypto-config.h\" -DNRF9160_XXAA -DNRF_SKIP_FICR_NS_COPY_TO_RAM -DNRF_TRUSTZONE_NONSECURE -DTFM_PSA_API -DUSE_PARTITION_MANAGER=1 -DZCBOR_ASSERTS -D_ANSI_SOURCE -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -I_dev//src/Sockets/. -I_dev//src/Common/ATJSON/. -I_dev//src/Common/BuildInfo/. -I_dev//src/Common/UART/. -I_dev//src/Common/Version/. -I_dev//src/Common/CertMgmt/. -I_dev//src/Common/. -I_dev//src/ExtFlash/. -I_dev//src/CertStoreMgnr/. -I_dev//src/. -I_dev/zephyr/include -I_dev//build/zephyr/include/generated -I_dev/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf91 -I_dev/zephyr/lib/libc/newlib/include -I_dev/zephyr/include/zephyr/posix -I_dev/modules/soc-hwmv1/soc/arm/nordic_nrf/common/. -I_dev/nrf/include -I_dev/nrf/lib/at_cmd_parser/include -I_dev//build/tfm/api_ns/interface/include -I_dev/nrf/modules/trusted-firmware-m/. -I_dev/nrf/include/tfm -I_dev/nrf/tests/include -I_dev/modules/hal/cmsis/CMSIS/Core/Include -I_dev/zephyr/modules/cmsis/. -I_dev/modules/hal/nordic/nrfx -I_dev/modules/hal/nordic/nrfx/drivers/include -I_dev/modules/hal/nordic/nrfx/mdk -I_dev/zephyr/modules/hal_nordic/nrfx/. -I_dev/modules/debug/segger/SEGGER -I_dev/modules/debug/segger/Config -I_dev/modules/lib/zcbor/include -I_dev/nrfxlib/nrf_modem/include -I_dev//build/modules/nrf/subsys/nrf_security/src/include/generated -I_dev/nrf/subsys/nrf_security/include -I_dev/modules/crypto/oberon-psa-crypto/include -I_dev/modules/crypto/oberon-psa-crypto/library -I_dev/modules/crypto/mbedtls/library -I_dev/modules/crypto/mbedtls/include -I_dev/modules/crypto/mbedtls/include/library -I_dev/nrfxlib/crypto/nrf_oberon/include/mbedtls -I_dev/nrfxlib/crypto/nrf_oberon/include -isystem _dev/zephyr/lib/libc/common/include -fno-strict-aliasing -Og -fcheck-new -std=c++11 -fno-rtti -imacros _dev//build/zephyr/include/generated/autoconf.h -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -mfp16-format=ieee --sysroot=zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi -imacros _dev/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-pic -fno-pie -fno-asynchronous-unwind-tables -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop -fmacro-prefix-map=_dev/=CMAKE_SOURCE_DIR -fmacro-prefix-map=_dev/zephyr=ZEPHYR_BASE -fmacro-prefix-map=_dev=WEST_TOPDIR -ffunction-sections -fdata-sections -D_POSIX_THREADS -MD -MT CMakeFiles/app.dir/src/CertStoreMgnr/CertStoreMgnr.cpp.obj -MF CMakeFiles/app.dir/src/CertStoreMgnr/CertStoreMgnr.cpp.obj.d -o CMakeFiles/app.dir/src/CertStoreMgnr/CertStoreMgnr.cpp.obj -c _dev//src/CertStoreMgnr/CertStoreMgnr.cpp
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp: In static member function 'static bool CertStoreMgnr::GenerateSelfSignedCertificate(certificateGenerationInfo_t*, mbedtls_pk_context*, mbedtls_ctr_drbg_context*, mbedtls_entropy_context*, CertData_t*)':
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1027:5: error: 'mbedtls_x509write_crt_init' was not declared in this scope; did you mean 'mbedtls_x509write_csr_init'?
     1027 |     mbedtls_x509write_crt_init(&crt);
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
          |     mbedtls_x509write_csr_init
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1038:13: error: 'mbedtls_x509write_crt_set_serial' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_md_alg'?
     1038 |         if (mbedtls_x509write_crt_set_serial(&crt, &serial) != 0)
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             mbedtls_x509write_csr_set_md_alg
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1046:13: error: 'mbedtls_x509write_crt_set_version' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_extension'?
     1046 |             mbedtls_x509write_crt_set_version(&crt, MBEDTLS_X509_CRT_VERSION_3);
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             mbedtls_x509write_csr_set_extension
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1047:13: error: 'mbedtls_x509write_crt_set_md_alg' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_md_alg'?
     1047 |             mbedtls_x509write_crt_set_md_alg(&crt, MBEDTLS_MD_SHA256);
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             mbedtls_x509write_csr_set_md_alg
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1048:13: error: 'mbedtls_x509write_crt_set_subject_key' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_subject_name'?
     1048 |             mbedtls_x509write_crt_set_subject_key(&crt, key);
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             mbedtls_x509write_csr_set_subject_name
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1049:13: error: 'mbedtls_x509write_crt_set_issuer_key' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_key'?
     1049 |             mbedtls_x509write_crt_set_issuer_key(&crt, key);
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |             mbedtls_x509write_csr_set_key
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1054:17: error: 'mbedtls_x509write_crt_set_validity' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_key'?
     1054 |             if (mbedtls_x509write_crt_set_validity(&crt, validFrom.c_str(), validTo.c_str()) != 0)
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                 mbedtls_x509write_csr_set_key
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1067:21: error: 'mbedtls_x509write_crt_set_subject_name' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_subject_name'?
     1067 |                 if (mbedtls_x509write_crt_set_subject_name(&crt, subjectName.c_str()) != 0)
          |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                     mbedtls_x509write_csr_set_subject_name
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1074:25: error: 'mbedtls_x509write_crt_set_issuer_name' was not declared in this scope; did you mean 'mbedtls_x509write_csr_set_subject_name'?
     1074 |                     if (mbedtls_x509write_crt_set_issuer_name(&crt, subjectName.c_str()) != 0)
          |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                         mbedtls_x509write_csr_set_subject_name
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1087:27: error: 'mbedtls_x509write_crt_pem' was not declared in this scope; did you mean 'mbedtls_x509write_csr_pem'?
     1087 |                 int ret = mbedtls_x509write_crt_pem(&crt, (unsigned char *)(pCertData->certData), sizeof(pCertData->certData), mbedtls_ctr_drbg_random, ctr_drbg);
          |                           ^~~~~~~~~~~~~~~~~~~~~~~~~
          |                           mbedtls_x509write_csr_pem
    _dev//src/CertStoreMgnr/CertStoreMgnr.cpp:1105:5: error: 'mbedtls_x509write_crt_free' was not declared in this scope; did you mean 'mbedtls_x509write_csr_free'?
     1105 |     mbedtls_x509write_crt_free(&crt);
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
          |     mbedtls_x509write_csr_free
    [289/397] Building CXX object CMakeFiles/app.dir/src/Common/ATJSON/AtJsonCommander.cpp.obj
    In file included from zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:67,
                     from zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/vector:60,
                     from _dev//src/Sockets/./listenSockets.h:19,
                     from _dev//src/Common/ATJSON/AtJsonCommander.cpp:14:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_iterator.h: In function '_Iterator std::__niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container>) [with _Iterator = const nlohmann::json_abi_v3_11_2::basic_json<>*; _Container = vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_iterator.h:1353:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
     1353 |     __niter_base(__gnu_cxx::__normal_iterator<_Iterator, _Container> __it)
          |     ^~~~~~~~~~~~
    In file included from zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/map:60,
                     from _dev//src/Common/ATJSON/./json.hpp:164,
                     from _dev//src/Common/ATJSON/./AtJson.h:21,
                     from _dev//src/Sockets/./listenSockets.h:20:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h: In member function 'std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(const_iterator, const key_type&) [with _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h:2209:5: note: parameter passing for argument of type 'std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > > >::const_iterator' changed in GCC 7.1
     2209 |     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h: In member function 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_erase_aux(const_iterator) [with _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h:2488:5: note: parameter passing for argument of type 'std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > > >::const_iterator' changed in GCC 7.1
     2488 |     _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h: In member function 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::erase(iterator) [with _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h:1209:21: note: parameter passing for argument of type 'std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > > >::const_iterator' changed in GCC 7.1
     1209 |         _M_erase_aux(__position);
          |         ~~~~~~~~~~~~^~~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h: In function 'bool std::__equal_aux(_II1, _II1, _II2) [with _II1 = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >; _II2 = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1216:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
     1216 |     __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
          |     ^~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1216:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1216:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
    In function 'bool std::equal(_II1, _II1, _II2) [with _II1 = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >; _II2 = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >]',
        inlined from 'bool std::operator==(const vector<_Tp, _Alloc>&, const vector<_Tp, _Alloc>&) [with _Tp = nlohmann::json_abi_v3_11_2::basic_json<>; _Alloc = allocator<nlohmann::json_abi_v3_11_2::basic_json<> >]' at zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_vector.h:2037:21:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1555:30: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
     1555 |       return std::__equal_aux(__first1, __last1, __first2);
          |              ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h: In static member function 'static bool std::__equal<_BoolType>::equal(_II1, _II1, _II2) [with _II1 = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _II2 = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; bool _BoolType = false]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1158:9: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
     1158 |         equal(_II1 __first1, _II1 __last1, _II2 __first2)
          |         ^~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1158:9: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1158:9: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h: In function 'bool std::__equal_aux(_II1, _II1, _II2) [with _II1 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _II2 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1216:5: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
     1216 |     __equal_aux(_II1 __first1, _II1 __last1, _II2 __first2)
          |     ^~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1216:5: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1216:5: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
    In function 'bool std::__equal_aux1(_II1, _II1, _II2) [with _II1 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _II2 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]',
        inlined from 'bool std::__equal_aux(_II1, _II1, _II2) [with _II1 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _II2 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]' at zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1218:31:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1210:43: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
     1210 |       return std::__equal<__simple>::equal(__first1, __last1, __first2);
          |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function 'bool std::equal(_II1, _II1, _II2) [with _II1 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _II2 = _Rb_tree_const_iterator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]',
        inlined from 'bool std::operator==(const _Rb_tree<__cxx11::basic_string<char>, pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >, _Select1st<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >, less<__cxx11::basic_string<char> >, allocator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > > >&, const _Rb_tree<__cxx11::basic_string<char>, pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >, _Select1st<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >, less<__cxx11::basic_string<char> >, allocator<pair<const __cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > > >&)' at zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h:1607:17:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_algobase.h:1555:30: note: parameter passing for argument of type 'std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >' changed in GCC 7.1
     1555 |       return std::__equal_aux(__first1, __last1, __first2);
          |              ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h: In member function 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>, std::tuple<>}; _Key = std::__cxx11::basic_string<char>; _Val = std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >; _KeyOfValue = std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_tree.h:2457:7: note: parameter passing for argument of type 'std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > > >::const_iterator' changed in GCC 7.1
     2457 |       _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
          |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/map:61:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_map.h: In member function 'std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = nlohmann::json_abi_v3_11_2::basic_json<>; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_map.h:511:44: note: parameter passing for argument of type 'std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, nlohmann::json_abi_v3_11_2::basic_json<> > > >::const_iterator' changed in GCC 7.1
      511 |           __i = _M_t._M_emplace_hint_unique(__i, std::piecewise_construct,
          |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      512 |                                             std::tuple<const key_type&>(__k),
          |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      513 |                                             std::tuple<>());
          |                                             ~~~~~~~~~~~~~~~
    In file included from zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/vector:64:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_vector.h: In member function 'std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(const_iterator) [with _Tp = nlohmann::json_abi_v3_11_2::basic_json<>; _Alloc = std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> >]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_vector.h:1529:7: note: parameter passing for argument of type 'std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > >::const_iterator' changed in GCC 7.1
     1529 |       erase(const_iterator __position)
          |       ^~~~~
    _dev//src/Common/ATJSON/./json.hpp: In member function 'IteratorType nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>::erase(IteratorType) [with IteratorType = nlohmann::json_abi_v3_11_2::detail::iter_impl<nlohmann::json_abi_v3_11_2::basic_json<> >; typename std::enable_if<(std::is_same<InputIT, nlohmann::json_abi_v3_11_2::detail::iter_impl<nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass> > >::value || std::is_same<InputIT, nlohmann::json_abi_v3_11_2::detail::iter_impl<const nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass> > >::value), int>::type <anonymous> = 0; ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long long int; NumberUnsignedType = long long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::json_abi_v3_11_2::adl_serializer; BinaryType = std::vector<unsigned char>; CustomBaseClass = void]':
    _dev//src/Common/ATJSON/./json.hpp:21691:66: note: parameter passing for argument of type 'std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > >::const_iterator' changed in GCC 7.1
    21691 |                 result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator);
          |                                              ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/vector:63:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h: In function '_ForwardIterator std::__do_uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >; _ForwardIterator = nlohmann::json_abi_v3_11_2::basic_json<>*]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h:113:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
      113 |     __do_uninit_copy(_InputIterator __first, _InputIterator __last,
          |     ^~~~~~~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h:113:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h: In function '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >; _ForwardIterator = nlohmann::json_abi_v3_11_2::basic_json<>*]':
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h:163:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
      163 |     uninitialized_copy(_InputIterator __first, _InputIterator __last,
          |     ^~~~~~~~~~~~~~~~~~
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h:163:5: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
    In static member function 'static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >; _ForwardIterator = nlohmann::json_abi_v3_11_2::basic_json<>*; bool _TrivialValueTypes = false]',
        inlined from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >; _ForwardIterator = nlohmann::json_abi_v3_11_2::basic_json<>*]' at zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h:185:15:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h:137:39: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
      137 |         { return std::__do_uninit_copy(__first, __last, __result); }
          |                  ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    In function '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, vector<nlohmann::json_abi_v3_11_2::basic_json<>, allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >; _ForwardIterator = nlohmann::json_abi_v3_11_2::basic_json<>*; _Tp = nlohmann::json_abi_v3_11_2::basic_json<>]',
        inlined from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = nlohmann::json_abi_v3_11_2::basic_json<>; _Alloc = std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> >]' at zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_vector.h:601:31:
    zephyr-sdk-0.16.5-1/arm-zephyr-eabi/arm-zephyr-eabi/include/c++/12.2.0/bits/stl_uninitialized.h:372:37: note: parameter passing for argument of type '__gnu_cxx::__normal_iterator<const nlohmann::json_abi_v3_11_2::basic_json<>*, std::vector<nlohmann::json_abi_v3_11_2::basic_json<>, std::allocator<nlohmann::json_abi_v3_11_2::basic_json<> > > >' changed in GCC 7.1
      372 |       return std::uninitialized_copy(__first, __last, __result);
          |              ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
    ninja: build stopped: subcommand failed.
    FATAL ERROR: command exited with status 1: /usr/bin/cmake --build _dev//build
    
     *  The terminal process "/bin/bash '-c', 'sh -c 'BUILD_ARGS=$(python3 _dev//imageMetadataUtil.py -type local) && west build --board  --pristine=auto --no-sysbuild -- -DNCS_TOOLCHAIN_VERSION:STRING=NONE -DBOARD_ROOT:STRING=_dev/ -DCONFIG_DEBUG_OPTIMIZATIONS:STRING=y -DCONFIG_DEBUG_THREAD_INFO:STRING=y -DCONF_FILE:STRING=_dev//prj.conf -DDTC_OVERLAY_FILE:STRING=_dev//app.overlay $BUILD_ARGS && echo Build flags = $BUILD_ARGS''" terminated with exit code: 1. 

  • Hi,

    Do you use PSA? Can you check what happens when you add Kconfig options shown below?

    CONFIG_MBEDTLS_USE_PSA_CRYPTO=y
    CONFIG_MBEDTLS_PK_PARSE_C=y
    CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y
    


    Best regards,
    Dejan

  • Hi,

    What is the result if you add "default y" to MBEDTLS_X509_CRT_WRITE_C in Kconfig.tls?

    If you have build folder, can you try to find nrf-prefixed configuration (find | grep nrf-) and post it here.
    If you do not have build folder yet, please upload your complete project configuration.

    Best regards,
    Dejan

  • Hello Dejan,

    I went over to try the change you suggest but surprisingly found that in I am not seeing MBEDTLS_X509_CRT_WRITE_C config in kconfig.tls file. 

    The nrf version we are using is v2.7.0.

    Can you please suggest the link you shared refers to which nrf version

    sdk-nrf/subsys/nrf_security/Kconfig.tls at 27bd6be1ccdbf4b434f450ef8eaf6e2e3a0bfe4d · nrfconnect/sdk-nrf

    - Below is the nrf-prefixed config from build directory:

    ./modules/nrf/subsys/nrf_security/src/include/generated/nrf-psa-crypto-want-config.h
    ./modules/nrf/subsys/nrf_security/src/include/generated/nrf-config.h
    ./modules/nrf/subsys/nrf_security/src/include/generated/nrf-psa-crypto-config.h
    ./tfm/secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/include/generated/nrf-psa-crypto-want-config.h
    ./tfm/secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/include/generated/nrf-config.h
    ./tfm/secure_fw/partitions/crypto/mbedcrypto/nrf_security_src/include/generated/nrf-psa-crypto-config.h
    ./tfm/api_ns/platform/common/core/common/nrf-pinctrl.h

    Thanks,

    Akshay

  • Hi Akshay,

    Here is a correct link to Kconfig file in NCS v2.7.0
    github.com/.../Kconfig.tls

    AR Jadhav said:
    I went over to try the change you suggest but surprisingly found that in I am not seeing MBEDTLS_X509_CRT_WRITE_C config in kconfig.tls file. 

    You are correct. Thank you for pointing this out. I double-checked in NCS v2.7.0 and could not find specific Kconfig as well. There will be PR for fixing this. Until then, you could try to add it manually for testing.

    Best regards,
    Dejan

  • Thanks for the update Dejan.

    So how this fix will be? A patch on same version v2.7.0 or you will be suggesting a closer version to current version which has this fix?

  • Hi,

    I will provide more information about the fix PR when it becomes available. I expect to get back to you during next week.

    Best regards,
    Dejan

Reply Children
No Data
Related