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.

RTOS/PROCESSOR-SDK-OMAPL138: Linker errors for undefined references to SYS/BIOS library functions

Part Number: PROCESSOR-SDK-OMAPL138
Other Parts Discussed in Thread: OMAPL138, SYSBIOS

Tool/software: TI-RTOS

I am trying to compile a simple test program using SYS/BIOS 6.52.0.12 and XDCtools 3.50.3.33_core and I'm getting linker errors for library functions that should definitely be in the library path. Here's the build output:


**** Build of configuration Debug for project ClockTest ****

"C:\\ti\\ccsv7\\utils\\bin\\gmake" -k -j 8 all -O
'Building file: ../packages/TestBoard/package/package_TestBoard.c'
'Invoking: C6000 Compiler'
"C:/ti/ti-cgt-c6000_8.2.2/bin/cl6x" -mv6740 --include_path="C:/Users/sk/Documents/workspaceCCS7/ClockTest" --include_path="C:/ti/ti-cgt-c6000_8.2.2/include" --define=omapl138 -g --diag_warning=225 --diag_wrap=off --display_error_number --preproc_with_compile --preproc_dependency="packages/TestBoard/package/package_TestBoard.d_raw" --obj_directory="packages/TestBoard/package" --cmd_file="configPkg/compiler.opt" "../packages/TestBoard/package/package_TestBoard.c"
'Finished building: ../packages/TestBoard/package/package_TestBoard.c'
' '
'Building file: ../main.c'
'Invoking: C6000 Compiler'
"C:/ti/ti-cgt-c6000_8.2.2/bin/cl6x" -mv6740 --include_path="C:/Users/sk/Documents/workspaceCCS7/ClockTest" --include_path="C:/ti/ti-cgt-c6000_8.2.2/include" --define=omapl138 -g --diag_warning=225 --diag_wrap=off --display_error_number --preproc_with_compile --preproc_dependency="main.d_raw" --cmd_file="configPkg/compiler.opt" "../main.c"
'Finished building: ../main.c'
' '
'Building target: ClockTest.out'
'Invoking: C6000 Linker'
"C:/ti/ti-cgt-c6000_8.2.2/bin/cl6x" -mv6740 --define=omapl138 -g --diag_warning=225 --diag_wrap=off --display_error_number -z -m"ClockTest.map" --heap_size=0x800 --stack_size=0x800 -i"C:/ti/ti-cgt-c6000_8.2.2/lib" -i"C:/ti/ti-cgt-c6000_8.2.2/include" --reread_libs --define=DSP_CORE=1 --diag_wrap=off --display_error_number --warn_sections --xml_link_info="ClockTest_linkInfo.xml" --rom_model -o "ClockTest.out" "./main.obj" "./packages/TestBoard/package/package_TestBoard.obj" -l"configPkg/linker.cmd" -llibc.a
<Linking>

 undefined                        first referenced
  symbol                              in file     
 ---------                        ----------------
 ti_sysbios_BIOS_exit__E          ./main.obj      
 ti_sysbios_BIOS_start__E         ./main.obj      
 ti_sysbios_knl_Clock_getTicks__E ./main.obj      
 ti_sysbios_knl_Task_create       ./main.obj      
 ti_sysbios_knl_Task_sleep__E     ./main.obj      
 xdc_runtime_Error_init__E        ./main.obj      
 xdc_runtime_System_flush__E      ./main.obj      
 xdc_runtime_System_printf__E     ./main.obj      

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "ClockTest.out" not built

>> Compilation failure
makefile:143: recipe for target 'ClockTest.out' failed
gmake[1]: *** [ClockTest.out] Error 1
makefile:139: recipe for target 'all' failed
gmake: *** [all] Error 2

**** Build Finished ****

The correct products and repositories are selected under Properties->General->Products, and I have these modules declared in the app.cfg file:

var BIOS = xdc.useModule('ti.sysbios.BIOS');
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
var Swi = xdc.useModule('ti.sysbios.knl.Swi');
var Task = xdc.useModule('ti.sysbios.knl.Task');
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');

I can't figure out why the libraries are not getting included. Where else can I look to figure out this linker error?

  • The sw team is notified. They will post their feedback directly here.

    Best Regards,
    Yordan
  • Hello Sam,

    I couldn't reproduce this issue on my end. Can you provide the steps you took to create the project?

    This is what my build settings look like:

  • Hello Sahin,

    In trying to reproduce the steps for you, I discovered that there was an issue with the custom platform I was using for our product board. I'm not sure why it wasn't working, but after I created a new custom platform and removed the .config directory within the project, (it was not being regenerated and caused a xdc.PACKAGE_NOT_FOUND compile error when looking for the old platform path) the build started to work. Thanks for letting me bounce the problem off of you. Even if you didn't find the problem, your question helped put me on the right path.