Hi,
I have an S32DS project for S32K144_100 which fails to link when a function defined in <ctype.h> is referenced from my C code. This has occurred with both tolower() and isprintf()
C:/NXP/S32DS_ARM_v2018.R1/S32DS/arm_ewl2/lib/armv7e-m/fpu\libc99.a(isprint.o): S32DS/arm_ewl2/EWL_C/src/ctype/isprint.c first defined here
make: *** [makefile:70: myproject.elf] Error 1
S32DS/arm_ewl2/EWL_C/src/arm/ctype_aeabi.c multiple definition of `isprint'
Can anyone tell me why the EWL version of isprintf() is being used as well as the C99 library version? How can this error be fixed?
I'm new to S32DS and I think the project is misconfigured somehow. I want to use FreeRTOS and have console I/O directed to a UART. For the latter reason the project links with EWL with -specs=ewl_c9x_noio.specs
The compiler options are
-DCPU_S32K144HFT0VLLT -DUSING_OS_FREERTOS -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/arm_ewl2/EWL_C/include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/arm_ewl2/EWL_C/include/arm" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/arm_ewl2/EWL_Runtime/include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/arm_ewl2/EWL_Runtime/include/arm" -I"C:\work\Transics\src\S32DS\workspace\dongle_evb/Generated_Code" -I"C:\work\Transics\src\S32DS\workspace\dongle_evb/Sources" -I"C:\work\Transics\src\S32DS\workspace\dongle_evb/Include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/lin" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K144/startup" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/rtos/osif" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/middleware/sbc/sbc_uja1169/include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/common" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/sai" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K144/include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/enet" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/flexio" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/middleware/lin/include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K142/startup" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/middleware/lin/coreapi" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/eim" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K148/startup" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/adc" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/erm" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/pins" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K146/include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/clock/S32K1xx" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/middleware/lin/transport" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/ewm" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/inc" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K148/include" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/quadspi" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/wdog" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/pal/spi/inc" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/rtc" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K146/startup" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/drivers/src/flexcan" -I"C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/S32SDK_S32K14x_EAR_0.8.6/platform/devices/S32K142/include" -I"C:\work\Transics\src\S32DS\workspace\myproject/Generated_Code" -I"C:\work\Transics\src\S32DS\workspace\myproject/Sources" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/platform/drivers/src/clock/S32K1xx" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/platform/devices" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/platform/devices/common" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/platform/devices/S32K144/include" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/platform/devices/S32K144/startup" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/platform/drivers/inc" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/rtos/osif/" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/rtos/FreeRTOS_S32K/Source/include" -I"C:\work\Transics\src\S32DS\workspace\myproject/SDK/rtos/FreeRTOS_S32K/Source/portable/GCC/ARM_CM4F" -O0 -g3 -Wall -c -fmessage-length=0 -ffunction-sections -fdata-sections -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -specs=ewl_c9x_noio.specs --sysroot="C:\NXP\S32DS_ARM_v2018.R1\eclipse\../S32DS/arm_ewl2"
Thanks in advance
--Martin
Solved! Go to Solution.
Hi Martin,
you can add -z muldef linker option: Right click on project name -> Properties -> Settings
Jiri
Hi Martin,
you can add -z muldef linker option: Right click on project name -> Properties -> Settings
Jiri
That works a treat - thanks Jiri