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.

VoLIB TDU linking error on C674x

Hi,

I am working on C674x elf little endian.
I am trying to integrate VoLib 2.0.0.3 on this by using C64x+ library.

I started off with TDU module and getting the below linking error:

undefined         first referenced
symbol              in file
---------               ----------------
tduControl         ToneDetector.oe674
tduGetSizes      ToneDetector.oe674
tduNew             ToneDetector.oe674
tduOpen           ToneDetector.oe674
tduSendIn         ToneDetector.oe674

error: unresolved symbols remain

I have included tdu.h and types.h files in ToneDetector.c and also the library tdu_a.a64Pe and tdu_c.a64Pe are getting linked.

Please find the different modules and its version, that I am using:

bios  -  6.33.02.31

biospsp  -  3.10.5.0

xdais  -  7.21.0.2

XDCtools  -  3.23.01.43

VoLib  -  2.0.0.3

Please let me know what am I missing now here.
NOTE: I am not using CCS.

Regards,
Bharath

  • Bharath,

    You need to use LE ELF libraries in this case. You need to look at user guide what libraries are required:

    ==================================

    Includes

    The following header files must be included in any source file that references the TDU API:

    1. #include <ti/mas/types/types.h>
    2. #include <ti/mas/tdu/tdu.h>

    Note that the options below are required at compile-time. This places the <WORK>directory (path to the working directory) in the compiler's include path and defines the target for proper "types" selection.

    1. -i <WORK>
    2. -Dti_targets_<ltarg>
    Note:
    1. <ltarg> represents the long format target naming convention as in defined in the Target Naming Convention table. (Target-Naming).

    Libraries

    The following libraries must be included in the final link:

    1. ti\mas\util\c<starg>\util_a.a<starg>
    2. ti\mas\util\c<starg>\util_c.a<starg>
    3. ti\mas\tdu\c<starg>\tdu_a.a<starg>
    4. ti\mas\tdu\c<starg>\tdu_c.a<starg>

    The libraries would be *.ae64p

    Regards, Eric

  • Hi,

    Thanks for the reply.


    As per your suggestion, I have included *.ae64p libraries now and tried to compile.
    With this, I got the following error message.

    ---------------------------------------------------------------------------------------------------------------------------
    warning: creating output section ".controlProg" without a SECTIONS specification
    warning: creating output section ".initProg" without a SECTIONS specification
    warning: creating output section ".tdm2pktProg" without a SECTIONS specification
    warning: creating output section ".tdm2pktpkt2tdmProg" without a SECTIONS specification
    warning: creating output section ".plt" without a SECTIONS specification

    undefined                             first referenced
    symbol                                  in file
    ---------------                          --------------------
    fft_cos_tbl                             telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_r4                                      telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_sine_tbl                           telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_split                                  telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_split64                             telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    tduIntFwTable                    telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdutxrx.oe64P>
    tdu_calc_mag                    telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    tdu_interpolate_peak       telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdu_v18a.oe64P>
    tdu_kaiser_windowing     telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>

    error: unresolved symbols remain
    ----------------------------------------------------------------------------------------------------------------------------

    Kindly assist me in resolving this issue.

    Regards,
    Bharath

  • Bharath,

    Please check the CCS test project under \ti\volib_c64p_2_0_0_3\packages\ti\mas\tdu\test.

    First, search for .map files: test_rel_c6482_C64PLE_LE_COFF.map. The unresolved symbols you mentioned can be found in this file.

    Next, search for .cmd files how this .out/.map can be built without your problem. You can find libraries used:

     -l ../../sdk/lib/sdk_c.a64P
    -l ../../util/lib/util_c.a64P
    -l ../../util/lib/util_a.a64P
    -l ../../tdu/lib/tdu_c.a64P
    -l ../../tdu/lib/tdu_a.a64P

    You can simply try if you can build the test application without problem. Then, find out if in your C674x project all libraies included correctly or not.

    Regards, Eric

  • Hi Eric,

    As you mentioned, I checked the test_rel_c6482_CE64PLE_LE_ELF.map file. Here the above mentioned unresolved symbols are DEFINED.
    All the libraries mentioned in the .cmd file have also been included in my code.
    But still the same linking error is coming.

    Please let me know if you need any other info in resolving this issue for me.

    Regards,
    Bharath S

  • Bharath S,

    As a baseline, can you try to build the TDU test application first to see it works for you or not? 

    Regards, Eric

  • Dear Eric,

    I am able to build the TDU test application from CCS.

    Regards,

    Bharath S

  • Bharath,

    As the TDU test can be built without problem, you need to compare the compiler and linker options between CCS project and your own project to see the difference. Particularly, please double check if in your project, do you have:

    - Reread libraries; Resolve backward reference: --reread_libs -x

    -  Aid for transitioning hard-coded assembly from COFF to ELF: --strip_coff_underscore

     Regards, Eric

  • Hi,

       Me and Bharath are working on the same issue. 

       I followed all the above instructions and tried to build. Now, I am getting the following error message

       -----------------------------------------------------------------------------------------------------------------------------

       warning: creating output section ".controlProg" without a SECTIONS specification

       warning: creating output section ".initProg" without a SECTIONS specification

       warning: creating output section ".tdm2pktProg" without a SECTIONS specification

       warning: creating output section ".tdm2pktpkt2tdmProg" without a SECTIONS specification

       warning: creating output section ".plt" without a SECTIONS specification

     

            undefined                                                  first referenced 

             symbol                                                            in file
       ---------------------                                          --------------------------

       tduIntFwTable                                          packages/ti/mas/tdu/lib/tdu_c.ae64P<tdutxrx.oe64P>

       error: unresolved symbols remain

       ------------------------------------------------------------------------------------------------------------------------------

       Please help us in resolving this issue.

      Regards,

      Krupa 

  • Are you saying this is the ONLY undefined symbol when linking? That is, what we saw in the past:

    fft_cos_tbl                             telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_r4                                      telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_sine_tbl                           telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_split                                  telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    fft_split64                             telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    tdu_calc_mag                    telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>
    tdu_interpolate_peak       telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdu_v18a.oe64P>
    tdu_kaiser_windowing     telogy/packages/ti/mas/tdu/lib/tdu_c.ae64P<tdustft.oe64P>

    have been resolved?

    If yes, we are taking the right direction. The " tduIntFwTable" is external to TDU libraries. It is defined in the test application tdusim.c. So in your code you need to define the same. If you still have linking error problems, please send me the linker command file or build log showing your compiler and linking options and map file. 

    Regards, Eric                                          

     

  • Hi,

        Thanks a lot.

        Issue has been resolved.

    Regards,

    Krupa