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.

project portability with compiler 6.1.10

Other Parts Discussed in Thread: TMS320F28069

I am working on TMS320F28069(CCS: 6.1.1, compiler: 6.1.10), trying to make the project portable. The files are linked to the project (relative to PROJECT_LOC).

When the project is built from different project paths, the binaries change. when tried to analyse the obj file, I saw that the absolute project path is a part of obj & since this changes, the binaries also change.

I tried to copy the files to the project & build it. Now the CLA code does not fit -memory overflowing (no change in the file. CLA had plenty of memory before this change - 180).
only change to the build will be the relative path to the includes than the previous absolute path. 

1. why is the project absolute path & not the relative path included in the obj? Is there some setting which I missed?
2. why does the CLA code overflow if I just change how the files are linked to project? how can I resolve this?

  • Deepthi Aradhya said:
    1. why is the project absolute path & not the relative path included in the obj? Is there some setting which I missed?

    Directory paths are included in the debug information.  And debug information is part of the binary object file.  But it is not loaded to the target.  Are you comparing object files to make sure they are a 100% match?  Lots of meta-data, including the debug information, can legitimately be different, even on successive builds of the same project.  A better way to compare object files is with the objdiff utility in the cg_xml package.

    Deepthi Aradhya said:
    2. why does the CLA code overflow if I just change how the files are linked to project? how can I resolve this?

    Something else must have inadvertently changed.  Compare the map files from the two builds.  I think that will show you the cause.

    Thanks and regards,

    -George

  • Thanks George for the reply.

    1. The reason I looked at the object file was that the project when built in different directories had different executables.

    I ran the objdiff & it shows no difference, but the executable are not same. When i used beyond compare to see the difference, I saw the path name in the file.

    2. I compared the CLA obj using objdiff, & this shows difference in the memory. 

    map file also shows that the CLA code has reached its max(this is when I commented out some code for build).
    all other memory sections are almost the same with few bytes of difference. 

  • Deepthi Aradhya said:
    I ran the objdiff & it shows no difference, but the executable are not same. When i used beyond compare to see the difference, I saw the path name in the file.

    I am aware the path is present in the debug information in the executable file.  And this path is different among two otherwise identical builds.  I do not understand why this is a concern.  Once the executable is loaded (flashed, or whatever) to the target system, that difference is no longer present.  From the perspective of the device about to begin execution, there is no way to know what paths are present in the debug information of the corresponding executable file.

    Deepthi Aradhya said:
    map file also shows that the CLA code has reached its max

    Comparing the map file entries also show you the CLA object files that make up the CLA code.  Compare these object files entries one by one.  Are there any additional ones?  If so, why?  Are there any which are bigger than before?  If so, why?

    Thanks and regards,

    -George

  • If the project files are copied to the project then the executables are the same no matter what the project path is, but they are different if the files are linked. I was just curious why this happens.

    On the CLA front it was a small thing, the old project had no global optimization so I dint add any optimization. but just the cla file had optimization which was deleted when I edited the file linkage in project. If I just add optimization for cla file alone, I can build the project with the files copied & they have same executables irrespective of the project path.