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.

Get error when link with a c64 library

Hi, i have a g.729 lib whose name is g729abenc_tii.l64P. I know it's a DSP side lib. But i link it with my Codec Engine's server, i get a error message with "undefined symbol G729ABENC_TII_IG729ABENC". So i write a simple test code to check whether the .l64P is ok.
my test code is:

#include <xdc/runtime/Diags.h>
#include <ti/sdo/ce/CERuntime.h>
extern IALG_Fxns G729ABENC_TII_IG729ABENC;
int main(int argc, char *argv[])
{
    IALG_Fxns *fun = &G729ABENC_TII_IG729ABENC;
    if (fun)
        printf ("Don't optimize\n");
    return 0;
}

compile it:

# cl6x -c  -qq -pdsw225 -mv6740 --abi=elfabi -eo.oe674 -ea.se674 -mi10 -mo  -pden -pds=195  -D_DEBUG_=1 \
 -Dxdc_target_name__=C674 -Dxdc_target_types__=ti/targets/elf/std.h -Dxdc_bld__profile_debug -Dxdc_bld__vers_1_0_7_2_0_10232 \
--symdebug:dwarf -I/usr/local/ezsdk/codec-engine_3_21_00_02/packages -I/usr/local/ezsdk/xdais_7_20_00_06/packages \
-I/usr/local/ezsdk/xdctools_3_20_05_69_eng/packages -I/usr/local/ezsdk/cgt6x_7_2_0/include g729.c

it's ok, but when i link with g729abenc_tii.l64P.

# lnk6x -w -q -u _c_int00 -q -o g729.xe674 g729.oe674 --abi=elfabi -c -l /usr/local/ezsdk/cgt6x_7_2_0/lib/rts6740_elf.lib \
--compress_dwarf -l g729abenc_tii.l64P

i got a error with "undefined symbol G729ABENC_TII_IG729ABENC":

warning: creating ".stack" section with default size of 0x400; use the -stack
   option to change the default size
warning: creating ".sysmem" section with default size of 0x400; use the -heap
   option to change the default size

 undefined                first referenced
  symbol                      in file     
 ---------                ----------------
 G729ABENC_TII_IG729ABENC g729.oe674      

error: unresolved symbols remain
error: errors encountered during linking; "g729.xe674" not built

i did find the G729ABENC_TII_IG729ABENC symbols in g729abenc_tii.l64P, as below code show:

# nm6x  /usr/local/ezsdk/codec-engine_3_21_00_02/packages/ti/sdo/ce/g729abenc/lib/g729abenc_tii.l64P \
 | grep G729ABENC_TII_IG729ABENC
00000000 B _G729ABENC_TII_IG729ABENC

so i think maybe the .l64P i got is error, or the CGT can't work with this .l64P. am i right?

btw: i use those tools to build the app
  • OS: Ubuntu 10.10
  • Linux kernel: Linux 2.6.35-30-generic
  • Installed SDK version: ezsdk_c6a816x-evm_5_00_00_56_setuplinux
  • CGT version: 7.2.0


i Appreciate your feedback.

 

mathslinux.