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.

TMS320F28386S: reproducible builds on different computers.

Part Number: TMS320F28386S

Tool/software:

Hey,

On an old thread on this subject, A TI member stated the fallowing:

"TI has never guaranteed reproducible builds"

I now need to set up the development environment on a new computer.

I will make sure to install the same version of CCS, and compiler.

However,

How can I know that the builds are the same?

How can I be sure that my system will preform exactly the same?

Not being able to get the exact .out file from both build process makes me very scared.

what are your suggestions?

  • Please consider what is meant by the term reproducible builds.

    Does it mean the behavior of the program does not change?  Every compiler guarantees to implement the behavior of the source code.  If it doesn't, then there is some sort of problem.  A difference in behavior does not necessarily mean the compiler did something wrong.  But it is one possible explanation.

    Does it mean the resulting executable file is bit identical to the previous one?  This is what standards do not require.  TI does not design or test for it.  

    Thanks and regards,

    -George

  • Hi George,
    Thanks for your replay.


    I understand, TI dose not guarantee an identical executable.

    But, please try to look at this from my perspective.

    A project has gone through hundreds of hours of development and QA.

    Now, building the project from a different computer, an identical executable would help me assure the same code is running.

    If I don't have that, how can I be sure building from a different computer will not interduce new bugs?

  • In typical practice, it is possible to obtain builds that are identical.  Here are some rules that are often followed:

    • All the source must match
    • The compiler and other tools must match
    • All the libraries must match
    • All the build scripts (make files, etc.) must match
    • Use the compiler option --keep_asm.  For an explanation, please see this post.

    This is not an exhaustive list of rules. It is not possible to produce any such list.  That said, if after using these rules you do not get an identical build, I would be interested in investigating to find out why.

    Thanks and regards,

    -George