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.

Compiler/TMS320C6678: Compile and linking issue with openMP!

Part Number: TMS320C6678

Tool/software: TI C/C++ Compiler

Hello,

I have been working on a single core of c6678 so far and my project was working fine on ccs V5 comiler v7.4.  I wanted to add the multithreading support from openMP.  I first started with the hello and matvec example with omp and was able to compile and run them with omp_1_01_03_02.  But when I try to add the omp in my existing project I get all kinds of compile and linker errors.  I have added --openmp and included omp.h.  I have added the paths to the include files and the ti.omp.ae66 library file.  The latest errors I get is:

>> Compilation failure
undefined first referenced
symbol in file
--------- ----------------
SharedRegion_getCacheLineSize C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<alloc.oe66>
SharedRegion_getHeap C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<alloc.oe66>
gomp_barrier_destroy C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<team.oe66>
gomp_barrier_init C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<team.oe66>
gomp_barrier_reinit C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<team.oe66>
gomp_barrier_wait C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<team.oe66>
gomp_dynamic_max_threads C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<parallel.oe66>
gomp_init_thread_affinity C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<team.oe66>
gomp_team_barrier_wait C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<barrier.oe66>
gomp_thread_create C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<team.oe66>
gomp_thread_getspecific C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<barrier.oe66>
gomp_thread_setspecific C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<team.oe66>
ti_omp_utils_OpenMP_ompHwSem__C C:\ti\omp_1_01_03_02\packages\ti\omp\lib\debug\ti.omp.ae66<parallel.oe66>

error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "myEVMstart.out" not built
gmake: *** [myEVMstart.out] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

Would you please tell me what's going on?

I appreciate any response.

  • Hi Maryam,

    I'd recommend copying the matrix multiply project example, renaming it and deleting the files yo don't want.  then add in your own files.  See here:

    From the error messages you are seeing it looks like some other supporting libraries from the OMP/IPC/BIOS/PDK directories are not included in your build.  the OpenMP runtime uses these other lower-level software packages.  You should have an omp_config.cfg file (like the one in the matrix multiply example) that will pull these libraries into your build.  The platform and config files are processed by the CCS build system (via a tool called xdc) to configure  the TI software packages and the build environment.  The platform file defines the memory map and cache configuration for your board (you should be using the one from the openmp examples directory) and the omp_config.cfg configures the OMP/IPC/BIOS/PDK packages.


    Also, if you migrate at some point to more recently released tools, check out the documentation here:

    I hope that helps.

    Eric