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.

CCSv5 Linux and Windows

Hello

 

We would like to ask about CCS Linux version.

 

If we build the code which we use the same version for all components in both Linux and Windows, can TI guarantee each two generated binaries are completely same one?

Our customer wants to know about it because they want to use Windows for their development and want to use Linux for their manufacturing line that is built automatically.

 

Best Regards,

 

Nobu Arai

  • It is a challenge to build the same source code on two different systems and get an identical executable.  Of course, the versions of all the tools must match precisely.  Of particular difficulty is getting the invocation of the linker to match.  The linker must see the exact same inputs in the exact same order.  Any deviation can result in differences in the executable.

    Another challenge is how to see whether the executables match.  An executable file contains lots of meta-data that is not loaded to the target.  Debug information used by Code Composer Studio is the best example of such meta-data.  Differences in the meta-data do not matter, and should be ignored.  The utility objdiff, from the cg_xml package, can be used to compare two executables. By default, it ignores the meta-data.  

    Nobu Arai said:
    If we build the code which we use the same version for all components in both Linux and Windows, can TI guarantee each two generated binaries are completely same one?

    Because of the heavy role of the end user in getting a match between two builds on different systems, TI cannot issue such a guarantee.  That said, if you do find a case where the executable bits loaded to the target system are different, and the only difference in the build is the host OS, we would view that as a bug and treat it accordingly.

    Thanks and regards,

    -George

  • George-san,

     

    Thank you for the answer.

     

    I understand that TI cannot guarantee these two executable files are identical.

    Please let me confirm one thing again.

     

    You mean that these two executables should not be same due to two points below.

    1. The working of linker may be different between Windows and Linux environment

    2. Meta data may be different between these two environments.

     

    Do you mean two executable files may be different but the bits of two executables that are loaded to the target should be same?

    In other words, do you mean except for Meta data, these two executables may be same from the functional point of view?

     

    Thank you for your comment.

     

    Best Regards,

     

    Nobu Arai

  • In general, when you do cross-platform development like with Qt, building and deploying for Blackberry, the binaries generated are for sure functionally equal. That is the intention, but there might be bugs here and there though in the implementation. :)

    I am not a TI employee, so cannot say much about this platform, but that is how it should work in general.

  • Nobu Arai said:
    Do you mean two executable files may be different but the bits of two executables that are loaded to the target should be same?

    Yes.

    Nobu Arai said:
    In other words, do you mean except for Meta data, these two executables may be same from the functional point of view?

    Yes.

    Thanks and regards,

    -George

  • George-san,

    Thank you for the comment. I understood.

    I am sorry that I have not  clicked "Verified Answer".

     

    Nobu Arai

  • Hello George-san,

     

    I am sorry for asking again, but please let me ask an additional question.

     

    Regarding the meta-data, our customer does not matter because they have already expected it.

    However, they would like to know more details about the linker.

     

    They want to know what is the difference of actual working of linker between Windows CCS and Linux

    CCS. Is it possible to provide this kind of information?

     

    They just want to know whether or not there is any difference on the object code level.

    I know you cannot guarantee the two binaries are identical. But is it possible to say that

    the generated codes are same on the oblect code level?

     

    It would be helpful if you have any comment.

     

    Best Regards,

     

    Nobu Arai

  • May I ask the reason why your customer cares so much about this?

  • Nobu Arai said:
    They want to know what is the difference of actual working of linker between Windows CCS and Linux CCS. Is it possible to provide this kind of information?

    The linker is implemented in C++ source code.  The exact same source code is used to build the Windows and Linux linker executables.  It is our intention that, given the same input in the same order, the resulting executable image is the same.  I already discussed how the meta-data may be different.

    Nobu Arai said:
    is it possible to say that the generated codes are same on the oblect code level?

    Yes.

    Thanks and regards,

    -George