Hi all,
I'm trying to use one of the built in sha256 libraries. As I've enabled the CONFIG_NRF_CC3XX_PLATFORM and CONFIG_NORDIC_SECURITY_BACKEND I thought I would pick this up. I'm using CC3XX to grab some entropy via nrf_cc3xx_platform_entropy_get in my app already elsewhere.
With just these options selected, my app compiles but fails to link due to missing mbedtls_sha256_ methods. Error below:-
[build] [289/297 96% :: 8.462] Linking CXX executable zephyr\zephyr_prebuilt.elf [build] FAILED: zephyr/zephyr_prebuilt.elf [build] cmd.exe /C "cd . && c:\gnuarmemb\bin\arm-none-eabi-g++.exe -g zephyr/CMakeFiles/zephyr_prebuilt.dir/misc/empty_file.c.obj -o zephyr\zephyr_prebuilt.elf -Wl,-T zephyr/linker.cmd -Wl,-Map=D:/git/skunkworks/herald-for-cpp/herald-wearable/build/zephyr/zephyr_prebuilt.map -Wl,--whole-archive app/libapp.a zephyr/libzephyr.a zephyr/arch/common/libarch__common.a zephyr/arch/arch/arm/core/aarch32/libarch__arm__core__aarch32.a zephyr/arch/arch/arm/core/aarch32/cortex_m/libarch__arm__core__aarch32__cortex_m.a zephyr/arch/arch/arm/core/aarch32/cortex_m/mpu/libarch__arm__core__aarch32__cortex_m__mpu.a zephyr/arch/arch/arm/core/aarch32/cortex_m/cmse/libarch__arm__core__aarch32__cortex_m__cmse.a zephyr/lib/libc/newlib/liblib__libc__newlib.a zephyr/lib/posix/liblib__posix.a zephyr/soc/arm/common/cortex_m/libsoc__arm__common__cortex_m.a zephyr/boards/boards/arm/nrf5340dk_nrf5340_cpuapp/libboards__arm__nrf5340dk_nrf5340.a zephyr/subsys/bluetooth/common/libsubsys__bluetooth__common.a zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a zephyr/subsys/net/libsubsys__net.a zephyr/drivers/gpio/libdrivers__gpio.a zephyr/drivers/ipm/libdrivers__ipm.a zephyr/drivers/serial/libdrivers__serial.a modules/nrf/lib/fatal_error/lib..__nrf__lib__fatal_error.a modules/nrf/drivers/hw_cc310/lib..__nrf__drivers__hw_cc310.a modules/nrfxlib/nrf_security/src/mbedtls/libmbedtls_base_vanilla.a modules/nordic/lib..__modules__hal__nordic.a modules/libmetal/libmetal/lib/libmetal.a modules/open-amp/open-amp/lib/libopen_amp.a -Wl,--no-whole-archive zephyr/kernel/libkernel.a zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj -L"d:/devtools/ncs/v1.4.0/toolchain/opt/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v8-m.main/nofp" -LD:/git/skunkworks/herald-for-cpp/herald-wearable/build/zephyr -lgcc -Wl,--print-memory-usage zephyr/arch/common/libisr_tables.a modules/nrfxlib/nrf_security/src/mbedtls/shared/libmbedcrypto_shared.a modules/nrfxlib/nrf_security/src/mbedtls/cc310/libmbedcrypto_cc3xx.a D:/devtools/ncs/v1.4.2/nrfxlib/crypto/nrf_cc312_platform/lib/cortex-m33/soft-float/no-interrupts/libnrf_cc312_platform_0.9.4.a -mcpu=cortex-m33 -mthumb -mabi=aapcs -Wl,--gc-sections -Wl,--build-id=none -Wl,--sort-common=descending -Wl,--sort-section=alignment -Wl,-u,_OffsetAbsSyms -Wl,-u,_ConfigAbsSyms -nostdlib -static -no-pie -Wl,-X -Wl,-N -Wl,--orphan-handling=warn -lstdc++ -lm -lc -lgcc -L"D:/devtools/ncs/v1.4.0/toolchain/opt/arm-none-eabi"/lib/thumb/v8-m.main/nofp -specs=nano.specs && cd ." [build] Memory region Used Size Region Size %age Used [build] FLASH: 329621 B 1 MB 31.44% [build] SRAM: 217544 B 448 KB 47.42% [build] IDT_LIST: 104 B 2 KB 5.08c:/gnuarmemb/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld.exe: app/libapp.a(sha256.cpp.obj): in function `herald::datatype::SHA256::digest(herald::datatype::Data const&)': [build] D:/git/skunkworks/herald-for-cpp/herald/src/datatype/mbedtls/sha256.cpp:74: undefined reference to `mbedtls_sha256_starts' [build] c:/gnuarmemb/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/git/skunkworks/herald-for-cpp/herald/src/datatype/mbedtls/sha256.cpp:94: undefined reference to `mbedtls_sha256_update' [build] c:/gnuarmemb/bin/../lib/gcc/arm-none-eabi/8.3.1/../../../../arm-none-eabi/bin/ld.exe: D:/git/skunkworks/herald-for-cpp/herald/src/datatype/mbedtls/sha256.cpp:99: undefined reference to `mbedtls_sha256_finish' [build] collect2.exe: error: ld returned 1 exit status [build] % [build] ninja: build stopped: subcommand failed. [build] Build finished with exit code 1
Thinking I needed a full-fledged mbedtls implementation I also tried enabling CONFIG_MBEDTLS=y. This gives me the below API incompatibilities between Zephyr's mbedtls and Nordic's mbedtls.
Can you please point me in the right direction to get at these simple sha256 functions, or an alternative (as 'secure' as possible please)? I'm sure there's a Nordic specific config entry I just cannot find, but the solution escapes me. This is preventing release of v1.2 of Herald's C++ API. (For wearable digital contact tracing).
All help gratefully received. I'd really prefer not to grab a random lightweight software sha256 library if I can help it. TIA.
Source code is here: https://github.com/adamfowleruk/herald-for-cpp/blob/feature-21/herald/src/datatype/mbedtls/sha256.cpp
App make file is here (Don't ask why its so complex...): https://github.com/adamfowleruk/herald-for-cpp/blob/feature-21/herald-wearable/CMakeLists.txt
Board config file is here (there are others included too): https://github.com/adamfowleruk/herald-for-cpp/blob/feature-21/config/zephyr/nRF5340.conf
Compile error is here (with both config settings enabled):
[build] [314/378 75% :: 7.073] Building C object modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md.c.obj [build] FAILED: modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md.c.obj [build] D:\devtools\ncs\v1.4.0\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.4.0-ncs2 -DKERNEL -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DNRF5340_XXAA_APPLICATION -DUSE_PARTITION_MANAGER=1 -D_FORTIFY_SOURCE=2 -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -ID:/devtools/ncs/v1.4.2/zephyr/include -Izephyr/include/generated -ID:/devtools/ncs/v1.4.2/zephyr/soc/arm/nordic_nrf/nrf53 -ID:/devtools/ncs/v1.4.2/zephyr/lib/libc/newlib/include -ID:/devtools/ncs/v1.4.2/zephyr/subsys/usb -ID:/devtools/ncs/v1.4.2/zephyr/subsys/settings/include -ID:/devtools/ncs/v1.4.2/zephyr/subsys/bluetooth -ID:/devtools/ncs/v1.4.2/nrf/include -ID:/devtools/ncs/v1.4.2/nrfxlib/crypto/nrf_cc312_mbedcrypto/include/mbedtls -ID:/devtools/ncs/v1.4.2/nrfxlib/crypto/nrf_cc312_mbedcrypto/include -Imodules/nrfxlib/nrf_security/include -Imodules/nrfxlib/nrf_security/include/mbedtls_generated -ID:/devtools/ncs/v1.4.2/mbedtls/include -ID:/devtools/ncs/v1.4.2/mbedtls/include/mbedtls -ID:/devtools/ncs/v1.4.2/modules/hal/cmsis/CMSIS/Core/Include -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/nrfx -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/nrfx/drivers/include -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/nrfx/mdk -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/. -Imodules/libmetal/libmetal/lib/include -ID:/devtools/ncs/v1.4.2/modules/lib/open-amp/open-amp/lib/include -ID:/devtools/ncs/v1.4.2/modules/debug/segger/rtt -ID:/devtools/ncs/v1.4.2/modules/crypto/tinycrypt/lib/include -ID:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/include -ID:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/configs -isystem D:/devtools/ncs/v1.4.2/nrfxlib/crypto/nrf_cc312_platform/include -g -Os -imacros D:/git/skunkworks/herald-for-cpp/herald-wearable/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -mcpu=cortex-m33 -mthumb -mabi=aapcs -imacros D:/devtools/ncs/v1.4.2/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=D:/git/skunkworks/herald-for-cpp/herald-wearable=CMAKE_SOURCE_DIR -fmacro-prefix-map=D:/devtools/ncs/v1.4.2/zephyr=ZEPHYR_BASE -fmacro-prefix-map=D:/devtools/ncs/v1.4.2=WEST_TOPDIR -ffunction-sections -fdata-sections -specs=nano.specs -std=c99 -MD -MT modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md.c.obj -MF modules\mbedtls\CMakeFiles\..__modules__crypto__mbedtls.dir\library\md.c.obj.d -o modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md.c.obj -c D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_free': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:213:21: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'ctx_free_func' [build] 213 | ctx->md_info->ctx_free_func( ctx->md_ctx ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_clone': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:235:17: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'clone_func' [build] 235 | dst->md_info->clone_func( dst->md_ctx, src->md_ctx ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_setup': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:252:32: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'ctx_alloc_func' [build] 252 | if( ( ctx->md_ctx = md_info->ctx_alloc_func() ) == NULL ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:260:20: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'ctx_free_func' [build] 260 | md_info->ctx_free_func( ctx->md_ctx ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_starts': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:275:25: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'starts_func' [build] 275 | return( ctx->md_info->starts_func( ctx->md_ctx ) ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_update': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:283:25: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'update_func' [build] 283 | return( ctx->md_info->update_func( ctx->md_ctx, input, ilen ) ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_finish': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:291:25: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'finish_func' [build] 291 | return( ctx->md_info->finish_func( ctx->md_ctx, output ) ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:300:20: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'digest_func' [build] 300 | return( md_info->digest_func( input, ilen, output ) ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_hmac_starts': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:356:33: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'starts_func' [build] 356 | if( ( ret = ctx->md_info->starts_func( ctx->md_ctx ) ) != 0 ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:358:33: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'update_func' [build] 358 | if( ( ret = ctx->md_info->update_func( ctx->md_ctx, key, keylen ) ) != 0 ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:360:33: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'finish_func' [build] 360 | if( ( ret = ctx->md_info->finish_func( ctx->md_ctx, sum ) ) != 0 ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:379:29: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'starts_func' [build] 379 | if( ( ret = ctx->md_info->starts_func( ctx->md_ctx ) ) != 0 ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:381:29: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'update_func' [build] 381 | if( ( ret = ctx->md_info->update_func( ctx->md_ctx, ipad, [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_hmac_update': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:396:25: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'update_func' [build] 396 | return( ctx->md_info->update_func( ctx->md_ctx, input, ilen ) ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_hmac_finish': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:410:29: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'finish_func' [build] 410 | if( ( ret = ctx->md_info->finish_func( ctx->md_ctx, tmp ) ) != 0 ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:412:29: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'starts_func' [build] 412 | if( ( ret = ctx->md_info->starts_func( ctx->md_ctx ) ) != 0 ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:414:29: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'update_func' [build] 414 | if( ( ret = ctx->md_info->update_func( ctx->md_ctx, opad, [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:417:29: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'update_func' [build] 417 | if( ( ret = ctx->md_info->update_func( ctx->md_ctx, tmp, [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:420:25: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'finish_func' [build] 420 | return( ctx->md_info->finish_func( ctx->md_ctx, output ) ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_hmac_reset': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:433:29: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'starts_func' [build] 433 | if( ( ret = ctx->md_info->starts_func( ctx->md_ctx ) ) != 0 ) [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:435:25: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'update_func' [build] 435 | return( ctx->md_info->update_func( ctx->md_ctx, ipad, [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_process': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:473:25: error: 'mbedtls_md_info_t' {aka 'const struct mbedtls_md_info_t'} has no member named 'process_func' [build] 473 | return( ctx->md_info->process_func( ctx->md_ctx, data ) ); [build] | ^~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_starts': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:276:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 276 | } [build] | ^ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_update': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:284:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 284 | } [build] | ^ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_finish': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:292:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 292 | } [build] | ^ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:301:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 301 | } [build] | ^ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_hmac_update': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:397:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 397 | } [build] | ^ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_hmac_finish': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:421:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 421 | } [build] | ^ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_hmac_reset': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:437:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 437 | } [build] | ^ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c: In function 'mbedtls_md_process': [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md.c:474:1: warning: control reaches end of non-void function [-Wreturn-type] [build] 474 | } [build] | ^ [build] [314/378 75% :: 7.085] Building C object modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md_wrap.c.obj [build] FAILED: modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md_wrap.c.obj [build] D:\devtools\ncs\v1.4.0\toolchain\opt\bin\arm-none-eabi-gcc.exe -DBUILD_VERSION=v2.4.0-ncs2 -DKERNEL -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DNRF5340_XXAA_APPLICATION -DUSE_PARTITION_MANAGER=1 -D_FORTIFY_SOURCE=2 -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -ID:/devtools/ncs/v1.4.2/zephyr/include -Izephyr/include/generated -ID:/devtools/ncs/v1.4.2/zephyr/soc/arm/nordic_nrf/nrf53 -ID:/devtools/ncs/v1.4.2/zephyr/lib/libc/newlib/include -ID:/devtools/ncs/v1.4.2/zephyr/subsys/usb -ID:/devtools/ncs/v1.4.2/zephyr/subsys/settings/include -ID:/devtools/ncs/v1.4.2/zephyr/subsys/bluetooth -ID:/devtools/ncs/v1.4.2/nrf/include -ID:/devtools/ncs/v1.4.2/nrfxlib/crypto/nrf_cc312_mbedcrypto/include/mbedtls -ID:/devtools/ncs/v1.4.2/nrfxlib/crypto/nrf_cc312_mbedcrypto/include -Imodules/nrfxlib/nrf_security/include -Imodules/nrfxlib/nrf_security/include/mbedtls_generated -ID:/devtools/ncs/v1.4.2/mbedtls/include -ID:/devtools/ncs/v1.4.2/mbedtls/include/mbedtls -ID:/devtools/ncs/v1.4.2/modules/hal/cmsis/CMSIS/Core/Include -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/nrfx -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/nrfx/drivers/include -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/nrfx/mdk -ID:/devtools/ncs/v1.4.2/modules/hal/nordic/. -Imodules/libmetal/libmetal/lib/include -ID:/devtools/ncs/v1.4.2/modules/lib/open-amp/open-amp/lib/include -ID:/devtools/ncs/v1.4.2/modules/debug/segger/rtt -ID:/devtools/ncs/v1.4.2/modules/crypto/tinycrypt/lib/include -ID:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/include -ID:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/configs -isystem D:/devtools/ncs/v1.4.2/nrfxlib/crypto/nrf_cc312_platform/include -g -Os -imacros D:/git/skunkworks/herald-for-cpp/herald-wearable/build/zephyr/include/generated/autoconf.h -ffreestanding -fno-common -g -mcpu=cortex-m33 -mthumb -mabi=aapcs -imacros D:/devtools/ncs/v1.4.2/zephyr/include/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-main -Wno-pointer-sign -Wpointer-arith -Wno-unused-but-set-variable -Werror=implicit-int -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -fno-reorder-functions -fno-defer-pop -fmacro-prefix-map=D:/git/skunkworks/herald-for-cpp/herald-wearable=CMAKE_SOURCE_DIR -fmacro-prefix-map=D:/devtools/ncs/v1.4.2/zephyr=ZEPHYR_BASE -fmacro-prefix-map=D:/devtools/ncs/v1.4.2=WEST_TOPDIR -ffunction-sections -fdata-sections -specs=nano.specs -std=c99 -MD -MT modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md_wrap.c.obj -MF modules\mbedtls\CMakeFiles\..__modules__crypto__mbedtls.dir\library\md_wrap.c.obj.d -o modules/mbedtls/CMakeFiles/..__modules__crypto__mbedtls.dir/library/md_wrap.c.obj -c D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:398:5: warning: initialization of 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] [build] 398 | MBEDTLS_MD_SHA1, [build] | ^~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:398:5: note: (near initialization for 'mbedtls_sha1_info.name') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:399:5: error: incompatible types when initializing type 'enum <anonymous>' using type 'char *' [build] 399 | "SHA1", [build] | ^~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:402:5: warning: excess elements in struct initializer [build] 402 | sha1_starts_wrap, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:402:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:403:5: warning: excess elements in struct initializer [build] 403 | sha1_update_wrap, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:403:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:404:5: warning: excess elements in struct initializer [build] 404 | sha1_finish_wrap, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:404:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:405:5: warning: excess elements in struct initializer [build] 405 | mbedtls_sha1_ret, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:405:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:406:5: warning: excess elements in struct initializer [build] 406 | sha1_ctx_alloc, [build] | ^~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:406:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:407:5: warning: excess elements in struct initializer [build] 407 | sha1_ctx_free, [build] | ^~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:407:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:408:5: warning: excess elements in struct initializer [build] 408 | sha1_clone_wrap, [build] | ^~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:408:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:409:5: warning: excess elements in struct initializer [build] 409 | sha1_process_wrap, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:409:5: note: (near initialization for 'mbedtls_sha1_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:472:5: warning: initialization of 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] [build] 472 | MBEDTLS_MD_SHA224, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:472:5: note: (near initialization for 'mbedtls_sha224_info.name') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:473:5: error: incompatible types when initializing type 'enum <anonymous>' using type 'char *' [build] 473 | "SHA224", [build] | ^~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:476:5: warning: excess elements in struct initializer [build] 476 | sha224_starts_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:476:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:477:5: warning: excess elements in struct initializer [build] 477 | sha224_update_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:477:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:478:5: warning: excess elements in struct initializer [build] 478 | sha224_finish_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:478:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:479:5: warning: excess elements in struct initializer [build] 479 | sha224_wrap, [build] | ^~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:479:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:480:5: warning: excess elements in struct initializer [build] 480 | sha224_ctx_alloc, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:480:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:481:5: warning: excess elements in struct initializer [build] 481 | sha224_ctx_free, [build] | ^~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:481:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:482:5: warning: excess elements in struct initializer [build] 482 | sha224_clone_wrap, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:482:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:483:5: warning: excess elements in struct initializer [build] 483 | sha224_process_wrap, [build] | ^~~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:483:5: note: (near initialization for 'mbedtls_sha224_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:498:5: warning: initialization of 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] [build] 498 | MBEDTLS_MD_SHA256, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:498:5: note: (near initialization for 'mbedtls_sha256_info.name') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:499:5: error: incompatible types when initializing type 'enum <anonymous>' using type 'char *' [build] 499 | "SHA256", [build] | ^~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:502:5: warning: excess elements in struct initializer [build] 502 | sha256_starts_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:502:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:503:5: warning: excess elements in struct initializer [build] 503 | sha224_update_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:503:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:504:5: warning: excess elements in struct initializer [build] 504 | sha224_finish_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:504:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:505:5: warning: excess elements in struct initializer [build] 505 | sha256_wrap, [build] | ^~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:505:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:506:5: warning: excess elements in struct initializer [build] 506 | sha224_ctx_alloc, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:506:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:507:5: warning: excess elements in struct initializer [build] 507 | sha224_ctx_free, [build] | ^~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:507:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:508:5: warning: excess elements in struct initializer [build] 508 | sha224_clone_wrap, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:508:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:509:5: warning: excess elements in struct initializer [build] 509 | sha224_process_wrap, [build] | ^~~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:509:5: note: (near initialization for 'mbedtls_sha256_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:569:5: warning: initialization of 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] [build] 569 | MBEDTLS_MD_SHA384, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:569:5: note: (near initialization for 'mbedtls_sha384_info.name') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:570:5: error: incompatible types when initializing type 'enum <anonymous>' using type 'char *' [build] 570 | "SHA384", [build] | ^~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:573:5: warning: excess elements in struct initializer [build] 573 | sha384_starts_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:573:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:574:5: warning: excess elements in struct initializer [build] 574 | sha384_update_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:574:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:575:5: warning: excess elements in struct initializer [build] 575 | sha384_finish_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:575:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:576:5: warning: excess elements in struct initializer [build] 576 | sha384_wrap, [build] | ^~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:576:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:577:5: warning: excess elements in struct initializer [build] 577 | sha384_ctx_alloc, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:577:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:578:5: warning: excess elements in struct initializer [build] 578 | sha384_ctx_free, [build] | ^~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:578:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:579:5: warning: excess elements in struct initializer [build] 579 | sha384_clone_wrap, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:579:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:580:5: warning: excess elements in struct initializer [build] 580 | sha384_process_wrap, [build] | ^~~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:580:5: note: (near initialization for 'mbedtls_sha384_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:595:5: warning: initialization of 'const char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] [build] 595 | MBEDTLS_MD_SHA512, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:595:5: note: (near initialization for 'mbedtls_sha512_info.name') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:596:5: error: incompatible types when initializing type 'enum <anonymous>' using type 'char *' [build] 596 | "SHA512", [build] | ^~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:599:5: warning: excess elements in struct initializer [build] 599 | sha512_starts_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:599:5: note: (near initialization for 'mbedtls_sha512_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:600:5: warning: excess elements in struct initializer [build] 600 | sha384_update_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:600:5: note: (near initialization for 'mbedtls_sha512_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:601:5: warning: excess elements in struct initializer [build] 601 | sha384_finish_wrap, [build] | ^~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:601:5: note: (near initialization for 'mbedtls_sha512_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:602:5: warning: excess elements in struct initializer [build] 602 | sha512_wrap, [build] | ^~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:602:5: note: (near initialization for 'mbedtls_sha512_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:603:5: warning: excess elements in struct initializer [build] 603 | sha384_ctx_alloc, [build] | ^~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:603:5: note: (near initialization for 'mbedtls_sha512_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:604:5: warning: excess elements in struct initializer [build] 604 | sha384_ctx_free, [build] | ^~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:604:5: note: (near initialization for 'mbedtls_sha512_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:605:5: warning: excess elements in struct initializer [build] 605 | sha384_clone_wrap, [build] | ^~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:605:5: note: (near initialization for 'mbedtls_sha512_info') [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:606:5: warning: excess elements in struct initializer [build] 606 | sha384_process_wrap, [build] | ^~~~~~~~~~~~~~~~~~~ [build] D:/devtools/ncs/v1.4.2/modules/crypto/mbedtls/library/md_wrap.c:606:5: note: (near initialization for 'mbedtls_sha512_info') [build] [314/378 82% :: 7.551] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/hci_core.c.obj [build] ninja: build stopped: subcommand failed. [build] Build finished with exit code 1