This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[K2G] MessageQ example build failed with PROFILE=release in makefile


Hi,

I'm using ipc_3_43_01_03 with bios_6_45_01_29 and xdctools_3_32_00_06_core. I tried ex02_messageq example on my K2G EVM and it worked fine with default makefile configurations. However, when I changed the build profile from debug to release, I saw the following link error during the build process:

# Making bin/release/app_host.xa15fg ...
c:/ti/ccsv6/tools/compiler/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc -o
bin/release/app_host.xa15fg -mfloat-abi=hard -nostartfiles -Wl,-static -Wl,--g
c-sections -Wl,-Map=bin/release/obj/app_host.xa15fg.map bin/release/obj/MainHost
.oa15fg bin/release/obj/App.oa15fg -Wl,-T,bin/release/configuro/linker.cmd \
-lgcc -lc -lm -lnosys -Lc:/ti/xdctools_3_32_00_06_core/packages/
gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg: In function `ti_sdo_ipc_gates_GateHWSem_O
bject__create(void) static':
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro/package/cfg/Host_pa15fg.c:31138: undefined reference to `ti_sdo_ipc_gates
_GateHWSem_Instance_init__E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg: In function `ti_sdo_ipc_GateMP_RemoteSyst
emProxy_getReservedMask__E':
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro/package/cfg/Host_pa15fg.c:27904: undefined reference to `ti_sdo_ipc_gates
_GateHWSem_getReservedMask__E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg: In function `ti_sdo_ipc_GateMP_RemoteSyst
emProxy_sharedMemReq__E':
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro/package/cfg/Host_pa15fg.c:27910: undefined reference to `ti_sdo_ipc_gates
_GateHWSem_sharedMemReq__E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg: In function `ti_sdo_ipc_Notify_SetupProxy
_attach__E':
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro/package/cfg/Host_pa15fg.c:28039: undefined reference to `ti_sdo_ipc_famil
y_tci663x_NotifyCircSetup_attach__E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg: In function `ti_sdo_ipc_Notify_SetupProxy
_sharedMemReq__E':
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro/package/cfg/Host_pa15fg.c:28045: undefined reference to `ti_sdo_ipc_famil
y_tci663x_NotifyCircSetup_sharedMemReq__E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg: In function `ti_sdo_ipc_Notify_SetupProxy
_numIntLines__E':
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro/package/cfg/Host_pa15fg.c:28051: undefined reference to `ti_sdo_ipc_famil
y_tci663x_NotifyCircSetup_numIntLines__E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg: In function `.LANCHOR45':
Host_pa15fg.c:(.rodata.ti_sdo_ipc_gates_GateHWSem_Module__FXNS__C+0x8): undefine
d reference to `ti_sdo_ipc_gates_GateHWSem_query__E'
Host_pa15fg.c:(.rodata.ti_sdo_ipc_gates_GateHWSem_Module__FXNS__C+0xc): undefine
d reference to `ti_sdo_ipc_gates_GateHWSem_enter__E'
Host_pa15fg.c:(.rodata.ti_sdo_ipc_gates_GateHWSem_Module__FXNS__C+0x10): undefin
ed reference to `ti_sdo_ipc_gates_GateHWSem_leave__E'
Host_pa15fg.c:(.rodata.ti_sdo_ipc_gates_GateHWSem_Module__FXNS__C+0x14): undefin
ed reference to `ti_sdo_ipc_gates_GateHWSem_getReservedMask__E'
Host_pa15fg.c:(.rodata.ti_sdo_ipc_gates_GateHWSem_Module__FXNS__C+0x18): undefin
ed reference to `ti_sdo_ipc_gates_GateHWSem_sharedMemReq__E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg:(.rodata.xdc_runtime_Startup_sfxnTab__A+0x
3c): undefined reference to `ti_sdo_ipc_family_tci663x_Interrupt_Module_startup_
_E'
C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\bin\release\con
figuro\package\cfg\Host_pa15fg.oa15fg:(.rodata.xdc_runtime_Startup_sfxnTab__A+0x
40): undefined reference to `ti_sdo_ipc_gates_GateHWSem_Module_startup__E'
collect2.exe: error: ld returned 1 exit status
gmake.exe[2]: *** [bin/release/app_host.xa15fg] Error 1
gmake.exe[2]: Leaving directory `C:/ti/ipc_3_43_01_03/examples/66AK2G_bios_elf/e
x02_messageq/host'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `C:/ti/ipc_3_43_01_03/examples/66AK2G_bios_elf/ex02_
messageq/host'
gmake: *** [host] Error 2


To reproduce the issue, please follow the instructions as below:

1. Go to C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq and modify product.mak to meet your environment. The following is my setup for your reference. Please note these product dependencies should be verified with ProcessorSDK(RTOS) v3.00.00.04.

DEPOT = c:/ti

#### BIOS-side dependencies ####
BIOS_INSTALL_DIR = $(DEPOT)/bios_6_45_01_29
IPC_INSTALL_DIR = $(DEPOT)/ipc_3_43_01_03
XDC_INSTALL_DIR = $(DEPOT)/xdctools_3_32_00_06_core

2. issue the following command in your command prompt and confirm the build is successfully done.

cd C:/ti/ipc_3_43_01_03/examples/66AK2G_bios_elf/ex02_messageq
set MAKE=C:/ti/xdctools_3_32_00_06_core/gmake.exe
gmake clean
gmake all

3. now open C:\ti\ipc_3_43_01_03\examples\66AK2G_bios_elf\ex02_messageq\host\makefile and modifythe profile from debug to release and rebuild the projects. You will see the build error.

all:
# $(MAKE) PROFILE=debug app_host.x
$(MAKE) PROFILE=release app_host.x

Best Regards,
Naoki

  • I've moved your thread to the device forum. They are supporting the IPC questions now.

    Todd
  • Naoki,

    There is a small change, you can make to fix the build for the release configuration by modifying line 70 in Host.cfg

    Build.libType = (RB ? Build.LibType_Custom : Build.LibType_Debug);

    Currently, the release configuration is setting IPC module to build using Build.LibType_NonInstrumented which is another version of debug library with logging and asserions enabled. this needs to be changed to Custom which is the optimized version of the library as described here:

     

    I suspect that instrumented and non-instrumented Build_libType is not supported for IPC yet which is why it may be reporting the error.

    Let me know if this change doesn`t fix the issue

    Regards,

    Rahul

    PS: Instrument and non-Instumented libraries are supported only on devices where A15 cores are used in SMP mode. Since 66K2G02 has only one ARM and DSP , the ARM is never used in SMP mode.

  • HI Rahul,

    Thank you four your reply. Understood. Forcing libType Custom works fine for me. I close the thread.

    Best Regards,
    Naoki