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.

ARM linker can't find SPHENC1_xxx

Hello,

I probably missed something in the codec and/or server package configuration. While trying to build the application using xdc I get the following:

# lnkv5T g711_debug.xv5T ...
/opt/omap3evm/toolchain/arm-2009q1/bin/arm-none-linux-gnueabi-gcc  -g  -o g711_debug.xv5T package/cfg/g711_debug/g711.ov5T package/cfg/g711_debug_xv5T.ov5T  package/cfg/g711_debug_xv5T.xdl   -L/opt/omap3evm/toolchain/arm-2009q1/arm-none-linux-gnueabi/lib -lpthread
package/cfg/g711_debug/g711.ov5T: In function `main':
/home/yehuda_b/workdir/apps/g711/g711.c:139: undefined reference to `SPHENC1_create'
/home/yehuda_b/workdir/apps/g711/g711.c:162: undefined reference to `SPHENC1_process'
/home/yehuda_b/workdir/apps/g711/g711.c:187: undefined reference to `SPHDEC1_create'
/home/yehuda_b/workdir/apps/g711/g711.c:210: undefined reference to `SPHDEC1_process'
/home/yehuda_b/workdir/apps/g711/g711.c:224: undefined reference to `SPHDEC1_delete'
/home/yehuda_b/workdir/apps/g711/g711.c:225: undefined reference to `SPHENC1_delete'
package/cfg/g711_debug_xv5T.ov5T:(.data.rel+0x8): undefined reference to `SPHENC1_STUBS'
package/cfg/g711_debug_xv5T.ov5T:(.data.rel+0x30): undefined reference to `SPHDEC1_STUBS'
collect2: ld returned 1 exit status
gmake[1]: *** [g711_debug.xv5T] Error 1
gmake: *** [/home/yehuda_b/workdir/apps/g711,.executables] Error 2

My guess is that somthing is missing in the codec package so xdc can't "give" the correct info to the linker while trying to build the application but I have no idea what I missed. Any idea?

Thanks,

Yehuda.

  • This is almost always because the app's .cfg script didn't integrate a codec that implements ISPHDEC1 and/or ISPHENC1.  Double check your .cfg scripts (if you're using createFromServer(), check your _server_ .cfg script) and ensure you have a codec that implements these interfaces in it.

    The codec package's <Module>.xdc file should say it '... inherits ti.sdo.ce.ispeech1.ISPHDEC1' (or ISPHENC1).  That's where the dependency on the 'ti.sdo.ce.spheech1" package is introduced... and once the dependency is in place, the ti.sdo.ce.speech1 package will provide it's libraries (including the SPHDEC1/SPHENC1 APIs the linker's complaining about).

    Chris

  • Hello Chris,

    I know, have it in my xdc file:

    metaonly module G711DEC inherits ti.sdo.ce.speech1.ISPHDEC1
    {
        /*!
         *  ======== ialgFxns ========
         *  name of this algorithm's xDAIS alg fxn table
         */
        override readonly config String ialgFxns = "G711DEC_RAD_ISPHDEC1";

        config String configuration = "Release";

        config String codeSection;  /* Code Section               */
        config String udataSection; /* Uninitialized Data Section */
        config String dataSection;  /* Initialized Data Section   */
    }

    and the server find the library when I create it [:)].

    I get the error when I try to create the application on the ARM, and the starngest thing is that it worked few days ago (I was able to create the application) and suddenly I started to get this error. I tried to remember what I did between the succesful compilation the the current failure without luck [:(]. It looks like something else went wrong but I have no idea [:S]

    Any ideas?

    Thanks,

    Yehuda.