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.
I have a problem similar to http://e2e.ti.com/support/embedded/linux/f/354/t/148636.aspx but it seems to be a different cause.
I am porting code from another platform (Intel, using IPP), and have just started adding the DSPLIB equivalents with DSPF_sp_fftSPxSP
When I build, I get an unresolved symbol, I am building for Little-endian ELF format and have linked the .ae66 library.
Unlike the link above, the library is included after the code which calls it, I can't see what the problem might be. I have confirmed with nm6x.exe that the linked file includes the function:
00006a8 t $C$L8
00000000 t .text
00000000 t .text:optimized
00000000 T DSPF_sp_fftSPxSP
00000000 a DSPF_sp_fftSPxSP.asm
00000000 u
000000e0 t $C$L3
I have included both the lib directory and the specific .ae66 file while trying to track down the problem. This is the output (long list of files trimmed, replaced by [...] ):
'Building target: benchmark.out'
'Invoking: C6000 Linker'
"C:/ti/ccsv5/tools/compiler/c6000_7.4.11/bin/cl6x" -mv6600 --abi=eabi -g --gcc --display_error_number --diag_warning=225 --diag_wrap=off -z -m"benchmark.map" -i"C:/ti/ccsv5/tools/compiler/c6000_7.4.11/lib" -i"C:/ti/dsplib_c66x_3_1_0_0/lib" -i"C:/ti/ccsv5/tools/compiler/c6000_7.4.11/include" --reread_libs --warn_sections --display_error_number --diag_wrap=off --rom_model -o "benchmark.out" -l"./configPkg/linker.cmd" [...] "./signal/signal_code.obj" [...] -l"C:\ti\dsplib_c66x_3_1_0_0\lib\dsplib.ae66" -l"libc.a"
<Linking>
warning #10247-D: creating output section ".TI.tls" without a SECTIONS specification
warning #10247-D: creating output section ".TI.tls_init" without a SECTIONS specification
undefined first referenced
symbol in file
--------- ----------------
DSPF_sp_fftSPxSP(int, float *, float *, float *, unsigned char *, int, int, int) ./signal/signal_code.obj
error #10234-D: unresolved symbols remain
>> Compilation failure
error #10010: errors encountered during linking; "benchmark.out" not built
gmake: *** [benchmark.out] Error 1
gmake: Target `all' not remade because of errors.
**** Build Finished ****
Can anyone suggest how to fix this?
I think I've found the problem, it appears to be the C++ name mangling issue mentioned at http://e2e.ti.com/support/embedded/linux/f/354/t/148029.aspx
I have added
#ifdef __cplusplus
extern "C" {
#endif
to the header file and it now appears to have moved on to the next set of errors :-)
I hope that helps someone else.
Hello Relingor,
Thanks for your information. Definitely it would help others.
Regards,
Senthil