Multiple definitions of <ctype.h> functions 'isprintf' etc

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multiple definitions of <ctype.h> functions 'isprintf' etc

Jump to solution
2,682 Views
martinthompson
Contributor III

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

0 Kudos
Reply
1 Solution
2,277 Views
jiri_kral
NXP Employee
NXP Employee

Hi Martin, 

you can add -z muldef linker option: Right click on project name -> Properties -> Settings 

pastedImage_1.png

Jiri

View solution in original post

0 Kudos
Reply
2 Replies
2,278 Views
jiri_kral
NXP Employee
NXP Employee

Hi Martin, 

you can add -z muldef linker option: Right click on project name -> Properties -> Settings 

pastedImage_1.png

Jiri

0 Kudos
Reply
2,277 Views
martinthompson
Contributor III

That works a treat - thanks Jiri

0 Kudos
Reply