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.

TMS570LS3137: CGT API/ABI compatibility with v.5.1.6

Part Number: TMS570LS3137


Hello,

we are going to use a library compiled with CGT v.5.1.6 for TMS570LS3137 MCU.

We would like to use a more up-to-date compiler toolset. Can you tell, what is the most recent version of CGT, that is fully API/ABI-compatible with thу version above, so we can safely integrate the library to our project.

  • Your concern is justified.  It has been about 7 years since TI ARM compiler version 5.1.6 was released.  

    I presume this old library is built for EABI.

    To understand more about compatibility between compiler releases, please read the article Compiler Version Numbers and What They Mean.  Focus on the part near the end titled Compatibility Between Different Compiler Versions.  

    Unfortunately, we do not explicitly test for compatibility between all the different compiler releases.  I suggest you try out the latest version of the TI ARM compiler, which is presently version 20.2.4.LTS.  Linking in the old library will probably work with no issues.  But no guarantee can be made.

    Thanks and regards,

    -George

  • Hi, George

    Thank you for the reply, although not fully helpful.

    I have a couple of related questions:

    1. As an expert, could you estimate whether our library is compatible with 20.2.4.LTS? Would you personaly expect any problems with its usage? The library is stated to be fully ANSI C99 compliant.
    2. If we can expect problems (for example, I see ABI/EABI difference starting from 18.12.0.LTS), is it possible to enable any option for backward compatibility?
    3. If any problems arise, would they be detected during linking stage, or we can only find them only during runtime?
    4. Should we expect, that the new Clang compliers would be compatible with old CGT libraries?

  • Sergey pl said:
    As an expert, could you estimate whether our library is compatible with 20.2.4.LTS?

    It is probably compatible.

    Sergey pl said:
    Would you personaly expect any problems with its usage?

    No

    Sergey pl said:
    If we can expect problems (for example, I see ABI/EABI difference starting from 18.12.0.LTS), is it possible to enable any option for backward compatibility?

    Compiler options have been supplied to support preserving compatibility, but not always.

    Sergey pl said:
    If any problems arise, would they be detected during linking stage, or we can only find them only during runtime?

    Either one is a possibility.

    Sergey pl said:
    Should we expect, that the new Clang compliers would be compatible with old CGT libraries?

    Both compilers adhere to the Application Binary Interface for the ARM Architecture.  That said, we do not explicitly test all combinations for compatibility.

    Thanks and regards,

    -George

  • George Mock said:

    I presume this old library is built for EABI.

    I have found in  CGT documentation, that EABI was introduced since version 18. So, the old library should, probably, built as ABI, right?

    Does it affect any of your answers from the previous post?

  • The TI ARM compiler version 4.1.0 introduced support for EABI in April 2004.  Version 5.1.6 was released in May 2014, about 10 years later.  So, while it is likely your library was built with the newer EABI, it remains possible that is was built with the older TI_ARM9_ABI.  If the library was built with the older ABI, then nothing I have said in this thread is accurate.

    Thanks and regards,

    -George

  • Thank you, George.

    It is clear that nothing is clear :)

    we will test the library functionality thoroughly.