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.

CCS/PGA900EVM: Strange build error

Part Number: PGA900EVM

Tool/software: Code Composer Studio

Hi, I'm getting this strange error when I try to build my project in CCS. It is strange because until yesterday I had no problem building my project. So I am fairly certain it is not a problem in my code but rather something related to a project setting or build configuration. The error details are shown below.

Does anyone have an idea what is going wrong?


#10010 errors encountered during linking; "PGA900.out" not built    TIDA-00851_Firmware_4-20mA             C/C++ Problem

#10234-D unresolved symbols remain    TIDA-00851_Firmware_4-20mA             C/C++ Problem

unresolved symbol __aeabi_cfcmpeq, first referenced in ./source/core/algorithm.obj    TIDA-00851_Firmware_4-20mA             C/C++ Problem

  • The error, in general, means that the definition for that particular symbol referenced by algorithm.obj is not found anywhere. Typically it would be defined in the runtime library.

    I do not see the error when building the example project. This is likely because there is no reference to that symbol in the example project. I don't see any source file named "algorithm" in the example, so I presume it is one that you added to your custom project.

    Are you using the pre-built rtsv6M0_T_le_eabi.lib provided with the PGA900 Firmware package? If so, I did some analysis and found that the rts in the package was built with an even older version of the linker than 5.2.5 and seems to missing that symbol definition for some reason. You can change the project setting so an updated runtime library using version 5.2.5 linker gets automatically built during project build.

    To do that, go into Project Properties->Build->Linker->File Search Path, remove the existing path to the rts library and add "libc.a" instead. This will tell the linker to automatically build the rtsv6M0_T_le_eabi.lib at project build time, and that should resolve the undefined symbol error.

    Let us know if this helps.

  • Thanks for the reply. It did not solve the problem however and I still get the same error. Do you recommend I keep libc.a instead of the path to rtsv6M0_T_le_eabi.lib ?

  • user4998643 said:
    Do you recommend I keep libc.a instead of the path to rtsv6M0_T_le_eabi.lib ?

    I don't think it will hurt to leave it as libc.a.

    If you still need help resolving the error, we would need the project so we can reproduce the issue first and then investigate the reason for it. If you could zip up the project and attach it here, we could take a look.

  • I figured out what caused the problem. It was my code after all, but I still find it strange.

    So I have a few places in the code where I would like to do a check on a variable to make sure I don't divide by zero. Like shown here (a and b are unsigned short and c and d are signed short).

    The error occurs if I uncomment the if statement. And it doesn't matter if it's "if (d != 0.0)" or "if (d != 0)".

  • Do you mean that the unresolved symbol error is generated even when linking with the runtime library that is auto-generated by the build step? If that's the case, we would still need to see the complete project to better understand what is happening.

  • This issue was worked and resolved offline.

    As mentioned earlier, the root cause of the linker error was the pre-built rtsv6M0_T_le_eabi.lib provided with the PGA900 Firmware package that the user was linking into their project.That rts library was built with an older version of the compiler tools and, for some reason, was missing the definition for a symbol that was being referenced by the user's project . An updated runtime library built using version 5.2.5 compiler tools was sent to the customer and that fixed the linker errors.