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.

Strange behaviour with linker options particularly with inlcude libraries

I use XDC for builds and have different options used - one common set and another per module basis. In case when I have extra include libraries, the final linker command has libraries at different positions (as compiled by xdc).

For examples, the following one does give compilation errors and I do not understand why. Even if I tried this command on CMD window, I get compilation errors for the function in dsplib.

c:\tools\c7xx\cgen7_2_04\c6000\cgtools/bin/lnk6x -q -u _c_int00 -fs package/cfg/./. -I C:\PROGRA~2\TEXASI~1\dsplib_c66x_3_0_0_8\packages -l ../lib/dsplib.ae66 -q -o TestPRACHreceiver.xe66 package/cfg/TestPRACHreceiver_pe66.oe66  package/cfg/TestPRACHreceiver/unittest/prachReceiver_test.oe66 package/cfg/TestPRACHreceiver/unittest/cycle_measure.oe66 package/cfg/TestPRACHreceiver/unittestCplxMac/CplxMac_ref.oe66 package/cfg/TestPRACHreceiver/unittest/touch.oe66  package/cfg/TestPRACHreceiver_pe66.xdl --abi=eabi -c -m package/cfg//TestPRACHreceiver.xe66.map -l c:\tools\c7xx\cgen7_2_04\c6000\cgtools/lib/rts6600_elf.lib

when I try the following on the CMD window, it works fine. The only change I did is to pull the extra lines to end.

c:\tools\c7xx\cgen7_2_04\c6000\cgtools/bin/lnk6x -q -u _c_int00 -fs package/cfg/./. -q -o TestPRACHreceiver.xe66 package/cfg/TestPRACHreceiver_pe66.oe66  package/cfg/TestPRACHreceiver/unittest/prachReceiver_test.oe66 package/cfg/TestPRACHreceiver/unittest/cycle_measure.oe66 package/cfg/TestPRACHreceiver/unittestCplxMac/CplxMac_ref.oe66 package/cfg/TestPRACHreceiver/unittest/touch.oe66  package/cfg/TestPRACHreceiver_pe66.xdl --abi=eabi -c -m package/cfg//TestPRACHreceiver.xe66.map -l c:\tools\c7xx\cgen7_2_04\c6000\cgtools/lib/rts6600_elf.lib -I C:\PROGRA~2\TEXASI~1\dsplib_c66x_3_0_0_8\packages -l ../lib/dsplib.ae66

In the next experiment, I moved the rts to the front and kept my dsplib at the end. I get link errors for RTS functions.

 c:\tools\c7xx\cgen7_2_04\c6000\cgtools/bin/lnk6x -q -u _c_int00 -fs package/cfg/./.  -l c:\tools\c7xx\cgen7_2_04\c6000\cgtools/lib/rts6600_elf.lib -q -o TestPRACHreceiver.xe66 package/cfg/TestPRACHreceiver_pe66.oe66  package/cfg/TestPRACHreceiver/unittest/prachReceiver_test.oe66 package/cfg/TestPRACHreceiver/unittest/cycle_measure.oe66 package/cfg/TestPRACHreceiver/unittestCplxMac/CplxMac_ref.oe66 package/cfg/TestPRACHreceiver/unittest/touch.oe66  package/cfg/TestPRACHreceiver_pe66.xdl --abi=eabi -c -m package/cfg//TestPRACHreceiver.xe66.map -I C:\PROGRA~2\TEXASI~1\dsplib_c66x_3_0_0_8\packages -l ../lib/dsplib.ae66

Can someone help me understand the issue?

I was told by another coleague to use -x or --reread_libs in the linker option. With that I do not see linker issue.