We want to switch from CCS 5.1/5.2 to CCS 5.3 but when we tried out the new version we encountered some problems.
TI C/C++ Error Parser
We import our Projects into CCS as CMake-generated "Eclipse CDT4 - Unix Makefiles"/"Eclipse CDT4 - NMake Makefiles"-Projects.
When building a Make Target in CCS 5.3 with enalbed "TI C/C++ Error Parser" the error parser throws a error for every line, visible in Error Log
The Exception Stack Trace is
"java.lang.NullPointerException
at com.ti.ccstudio.errorparser.parsers.CoffErrorParser.cleanMarkersPerUnit(CoffErrorParser.java:115)
at com.ti.ccstudio.errorparser.parsers.CoffErrorParser.processLine(CoffErrorParser.java:191)
at org.eclipse.cdt.core.ErrorParserManager.processLine(ErrorParserManager.java:361)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.processLine(ConsoleOutputSniffer.java:178)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.access$0(ConsoleOutputSniffer.java:174)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.checkLine(ConsoleOutputSniffer.java:99)
at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.write(ConsoleOutputSniffer.java:58)
at java.io.OutputStream.write(Unknown Source)
at org.eclipse.cdt.internal.core.ProcessClosure$ReaderThread.run(ProcessClosure.java:55)"
In CCS 5.1 the "TI C/C++ Error Parser" was able to parse the warnings and errors of the make output and show them in the Problem view.
c6000
The Part of our Project which use the c6000 compiler doesn't build with 5.3(tested c6000 7.4.1 and 7.4.2), but did with 5.1(c6000 7.3.1)/5.2(c6000 7.3.4)
It fails at linking, printing the following errors at different occurrences:
error: symbols in the reserved far sections cannot be accessed as near; symbol
"x" in the far section
"y" is accessed as near in the section
"z"
where x and y can be
| symbol | far section |
| _ZGVNSt7codecvtIcciE2idE |
/opt/ti_5.3.0/ccsv5/tools/compiler/c6000_7.4.2/lib/rts6740_elf_eh.lib<iostream.obj>(.far:_ZGVNSt7codecvtIcciE2idE) |
| _ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE |
/opt/ti_5.3.0/ccsv5/tools/compiler/c6000_7.4.2/lib/rts6740_elf_eh.lib<locale.obj>(.far:_ZGVNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE) |
| _ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE |
/opt/ti_5.3.0/ccsv5/tools/compiler/c6000_7.4.2/lib/rts6740_elf_eh.lib<locale.obj>(.far:_ZGVNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE) |
| _ZGVNSt8numpunctIcE2idE | /opt/ti_5.3.0/ccsv5/tools/compiler/c6000_7.4.2/lib/rts6740_elf_eh.lib<locale.obj>(.far:_ZGVNSt8numpunctIcE2idE) |
and z are different sections in our code.
So it's seem to be a problem with rts6740_elf_eh.lib
Adding --mem_model:data=far to compile options solve the problem, but a solution which doesn't cost unnecessary processing time would be preferable
What also works(at least to let it build) is copying and using a rts6740_elf_eh.lib from CCS 5.2, but I'm unsure about the side effects.
So is there a way to make it work like it did with CCS 5.1/5.2?