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.

C2000 6.2.x Linker problems

I'm using 6.2.x tools on a build that previously worked fine on 6.1.x tools and now I get the following errors. I've verified all source file compiler flags have the v28 and FPU32 options set (nothing changed from 6.1). Any ideas?

Here are my specific errors:

"../lib/SFO_TI_Build_V5.lib<SFO-FMD.obj>": compatibility cannot be

determined

error #16008-D: file "../lib/SFO_TI_Build_V5.lib<SFO-FMD.obj>" specifies ISA

revision "C2800", which is not compatible with ISA revision "C28FPU32"

specified in a previous file or on the command line

warning #16002-D: build attribute vendor section TI missing in

"../lib/SFO_TI_Build_V5.lib<SFO-SME.obj>": compatibility cannot be

determined

error #16008-D: file "../lib/SFO_TI_Build_V5.lib<SFO-SME.obj>" specifies ISA

revision "C2800", which is not compatible with ISA revision "C2700"

specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<atof.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<atoi.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<atol.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<boot.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<ctype.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<exit.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<fd_div.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<fd_mpy.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<fd_sub.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

error #16008-D: file

"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib/rts2800_fpu32.lib<fd_toul.obj>"

specifies ISA revision "C28FPU32", which is not compatible with ISA revision

"C2700" specified in a previous file or on the command line

..and on and on with all the FP library .obj files.

 

 

  • Bob D. said:
    I've verified all source file compiler flags have the v28 and FPU32 options set

    Please do the same thing for all the files that come from libraries like SFO_TI_Build_V5.lib.

    Thanks and regards,

    -George

  • Hi George,

     I checked the SFO lib files and they too had the v28 and fpu32 options set. I stubbed out the HRPWM code and the the SFO includes from the build and it compiled/linked without errors, as expected. Then I put the code back in and rebuilt the project. This time everything linked without errors. I'm not sure why, but at this point it appears to be working correctly. Perhaps they linker didn't rebuild the SFO libraries until they were added back in after removing them? Strange, but it's working.

    Thanks.

  • My guess is that there are glitches in the build environment -- I've now run into this problem with a project and all I had to do was try to change the compiler version.In addition to this problem it caused something unrelated where one of the subprojects stopped building because the builder kept truncating "ccsv5" to "cvsv5", something that I spent many hours looking for before giving up and just making a new version of the project.

    The usual response to these issues is "check settings / reinstall / reset" and so on. I've done this (many times)(obviously) but the problem isn't with the compiler and linker tools, they work fine, its this dumb IDE.CCSv5 is like all of these Eclipse IDEs, its a collection of hacks to what was originally a Java development system and the resulting mess is (IMHO) unmaintainable.

    The irony in my situation is that the project I'm working with has been building and running just fine for a long time, I was just trying out different versions of the compiler because we seemed to have run into a compiler bug. Changing the toolset should be just a matter of pointing the environment at the new tools, there is absolutely no reason why the IDE should explode on me like this. (...and if there was a problem, changing it back should fix it, shouldn't it?). But it does, and we get stuck because the prevailing meme in this business is that "its complicated" so we should expect to spend days fiddling around with baulky software practicing a sort of voodoo on the toolsets. This is not the way to generate reliable product......

  • Some advice that may be useful ... This wiki article is all about building projects with CCS.  This section of that article carefully walks through how to change the compiler version.  If any of this does not work for you, we'd appreciate hearing about it in enough detail for us to address it.

    Thanks and regards,

    -George

  • Thanks for your feedback.

    As you can imagine, I've been through the manual(s) in some detail, and in fact before I got this problem I had been swapping compiler versions between 6.1.0, 6.1.5 and 6.1.6 without any issues. The problems started when I added version 6.2.4 to the mix. I'm quite sure that the compiler version is irrelevant, at least in a traditional Makefile build environment it isn't, you're just pointing the appropriate macros at the toolset you intend to use. The trouble materialized in several phases, but eventually the problem settled down to this type of fault:-

    C:\Users\musher\Series_400\Apps_300\Debug>Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

    C:\Users\musher\Series_400\Apps_300\Debug>"C:/ti/ccsv5/tools/compiler/c2000_6.2.4/bin/cl2000" -v28 -ml -mt -O3 --opt_for_speed=4 --preinclude="C:/ti/ccsv5/tools/compiler/c2000_6.2.4/include/stdlib.h" --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.2.4/include" --include_path="C:/Users/musher/Series_400/DriverResource" --preproc_with_compile --preproc_dependency="AlgorithmBase.pp"  "../AlgorithmBase.cpp"
    'csv5' is not recognized as an internal or external command,
    operable program or batch file.
    subdir_rules.mk:21: recipe for target `AlgorithmBase.obj' failed
    make: *** [AlgorithmBase.obj] Error 1

    If you change the compiler version you just get appropriate path changes. After much installation and re-installation of things, up to and including CCS (twice) I fixed this problem by creating another project, importing the sources to it, with the result (for this file)...

    'Building file: ../AlgorithmBase.cpp'
    'Invoking: C2000 Compiler'
    "C:/ti/ccsv5/tools/compiler/c2000_6.2.4/bin/cl2000" -v28 -ml -mt -O3 --opt_for_speed=3 --preinclude="C:/ti/ccsv5/tools/compiler/c2000_6.2.4/include/stdlib.h" --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.2.4/include" --include_path="C:/Users/musher/Series_400/DriverResource" -g --diag_warning=225 --display_error_number --diag_wrap=off --preproc_with_compile --preproc_dependency="AlgorithmBase.pp"  "../AlgorithmBase.cpp"
    'Finished building: ../AlgorithmBase.cpp'

    (You just know its an IDE problem because you can snip out the command line from the console window and run it from the command prompt.)

    The second problem is the linking issue, the one where there's a complaint about a file built for a C27 which won't link with the rest of the C28 project. This problem has mysteriously fixed itself -- I was rebuilding the code to get a sample message for you and it just built  -- with both the 6.1.0 and 6.2.4 versions of the compiler. I'm pretty sure I know what this problem is caused by and I'd welcome some feedback because its a serious timewaster. The error messages referred to a file incompatibility but the incompatible -- the C27 -- file didn't have a name. This suggests an empty name, a file that didn't open because it didn't exist. Since I'd guess that C27 files didn't have section markers to indicate that they were C27 files its also a good guess that no marker is taken as a C27 file. So instead of complaining about trying to open a non-existent file the code 'read' that file, decided it was the wrong format and produced what it thought was an appropriate error message. Obviously between then and now I've moved or changed an option that's eliminated this problem......but what was it?

  • Martin Usher said:
    C:\Users\musher\Series_400\Apps_300\Debug>"C:/ti/ccsv5/tools/compiler/c2000_6.2.4/bin/cl2000" -v28 -ml -mt -O3 --opt_for_speed=4 --preinclude="C:/ti/ccsv5/tools/compiler/c2000_6.2.4/include/stdlib.h" --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.2.4/include" --include_path="C:/Users/musher/Series_400/DriverResource" --preproc_with_compile --preproc_dependency="AlgorithmBase.pp"  "../AlgorithmBase.cpp"
    'csv5' is not recognized as an internal or external command,
    operable program or batch file.
    subdir_rules.mk:21: recipe for target `AlgorithmBase.obj' failed
    make: *** [AlgorithmBase.obj] Error 1

    That's very strange.  Notice how 'csv5' does not appear in that compiler invocation line.  It does look like a problem with the CCS IDE.  Please start a new thread in the CCS forum about this.  They will need a test case which allows them to reproduce the error.  You would need to send a full project plus detailed instructions on how to get things to that point.  I'm confident they will find and fix whatever is wrong.

    Martin Usher said:
    The second problem is the linking issue, the one where there's a complaint about a file built for a C27 which won't link with the rest of the C28 project. This problem has mysteriously fixed itself

    I realize you won't like this answer ... As with the previous problem, until we can reproduce this problem ourselves, there is nothing we can do.

    Thanks and regards,

    -George

  • It just happens that I have a test workspace with a couple of self-contained projects in it that generate both of these errors - one does the 'csv5' and other the 'C27'. For this type of error I'd expect to submit a snapshot of the entire workspace. Its not that big -- about 1.6MByte compressed -- but its too big to just post here. How do we get this type of binary to you?