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.
Tool/software: TI C/C++ Compiler
Hi
I see a strange behaviour of the compiler when I compile my code on our build server.
The error message I get is this
While compiling ..\GSI_App\Vmpg_if\TurbineIF\TurbineIF.c ->build\release_cc_tms6x\_pooma\LSI_fdsp\TurbineIF.obj command:'mkdir "build\release_cc_tms6x\_pooma\LSI_fdsp"2>NUL & C:\ti\ccsv6\tools\compiler\C6000_7.4.12\bin\cl6x -k -al -pr -pden -mv6710 --gen_func_subsections=on -pm -pdsr232 -pdsr383 -pdsr1 -pden -O3 --symdebug:skeletal -i"C:\ti/ccsv6/tools/compiler/c6000_7.4.12/include" -i"C:\ti/bios_5_42_02_10/packages/ti/bios/include" -i"C:\ti/C6xCSL/include" -i"C:\ti/xdctools_3_22_04_46/packages" -i..\GSI_App\Appl -iAppl\ApplConfig -i..\GSI_App\Appl\ApplConfig -iCtrllLib -i..\..\SignalBlockManager\sbm_runtime\include -i..\GSI_App -i.. -i..\GSI_App\Appl\Common -i..\GSI_App\MSC\MSC_CTRL -i..\GSI_App\CPL\PlatformSupport -i..\GSI_App\CPL\PlatformSupport\PlatformIO -i..\GSI_App\CPL\driver -i..\GSI_App\CPL -i..\GSI_App\Appl\dspbios -i..\GSI_App\CPL\PlatformSupport\Flexpower -i..\GSI_App\CPL\PlatformSupport\Flexpower\DriverConfig -i..\..\Conv_Framework\if -i..\..\Conv_Framework\if\dspbios -i..\..\Conv_Framework -i..\..\Conv_Framework\driver -i..\..\Conv_Framework\dspbios\CT_460 -i..\..\Conv_Framework\IO_Common -i..\..\Conv_Framework\IO_FLEX -i..\..\Conv_Framework\Services -i..\..\Conv_Framework\Services\ParamManager -i..\..\Conv_Framework\OldLibs\CFC -d_DSPBIOS -dCHIP_6713 -d_HS_SECTIONS -d_CT_460 -d_SM_DEBUG -dDATASPACE_SERVER -dGDS_REPLICATION_ENABLED -dBENCH_MANUAL_CONTROLS -fsbuild\release_cc_tms6x\_pooma\LSI_fdsp -frbuild\release_cc_tms6x\_pooma\LSI_fdsp ..\GSI_App\Vmpg_if\TurbineIF\TurbineIF.c' output:' <Optimizing> (Local CPU 7) <Generating> <Assembling> "build\release_cc_tms6x\_pooma\LSI_fdsp\TurbineIF.asm", ERROR! at line 39: [E0300] Cannot equate an external symbol to an external symbol _TurbineIF_Handle .set _TurbineIF_EventHandler "build\release_cc_tms6x\_pooma\LSI_fdsp\TurbineIF.asm", ERROR! at EOF: [E0300] The following symbols are undefined: 2 Assembly Errors, No Assembly Warnings _TurbineIF_EventHandler Errors in Source - Assembler Aborted >> Compilation failure
Then If I just recompile without changing anything, the compilation does not fail.
The assembler file TurbineIf.asm is the same whether it fails or not
and the part where it reports an error looks like this
;****************************************************************************** ;* TMS320C6x C/C++ Codegen PC v7.4.12 * ;* Date/Time created: Tue Feb 13 13:26:22 2018 * ;****************************************************************************** .compiler_opts --abi=coffabi --c64p_l1d_workaround=default --endian=little --hll_source=on --long_precision_bits=40 --mem_model:code=near --mem_model:const=data --mem_model:data=far_aggregates --object_format=coff --silicon_version=6710 --symdebug:skeletal ;****************************************************************************** ;* GLOBAL FILE PARAMETERS * ;* * ;* Architecture : TMS320C671x * ;* Optimization : Enabled at level 3 * ;* Optimizing for : Speed * ;* Based on options: -o3, no -ms * ;* Endian : Little * ;* Interrupt Thrshld : Disabled * ;* Data Access Model : Far Aggregate Data * ;* Pipelining : Enabled * ;* Speculate Loads : Enabled with threshold = 0 * ;* Memory Aliases : Presume are aliases (pessimistic) * ;* Debug Info : DWARF Debug for Program Analysis w/Optimization * ;* * ;****************************************************************************** .asg A15, FP .asg B14, DP .asg B15, SP .global $bss $C$DW$CU .dwtag DW_TAG_compile_unit .dwattr $C$DW$CU, DW_AT_producer("TMS320C6x C/C++ Codegen PC v7.4.12 Copyright (c) 1996-2014 Texas Instruments Incorporated") .dwattr $C$DW$CU, DW_AT_TI_version(0x01) .dwattr $C$DW$CU, DW_AT_comp_dir("D:\B\CON-CFLEXIB-JOB1\converter\FlexInvert_Appl\FLEXInvert_Appl") ;***************************************************************************** ;* FUNCTION SYNONYMS * ;***************************************************************************** .global _TurbineIF_Handle _TurbineIF_Handle .set _TurbineIF_EventHandler .global _TurbineIF_Handle_Scan _TurbineIF_Handle_Scan .set _TurbineIF_Scan$0 ;***************************************************************************** ;* CINIT RECORDS * ;***************************************************************************** .sect ".cinit" .align 8 .field 4,32 .field _TurbineIF_evtHandle+0,32 .bits 0,32 ; _TurbineIF_evtHandle @ 0 .sect ".cinit" .align 8 .field 4,32 .field _eTaskState$0+0,32 .bits 1,32 ; _eTaskState$0 @ 0
More info:
We compile from command line, and we use compiler version C6000_7.4.12.
It seems that the error only happens on our build server, and not if we build on our own PC, even though the installation on the build servers is identical to the one on our PC's.
We use Incredibuild to speed up the compilation - both on build server and from our own PC.
Any ideas on what causes this error and how to avoid it?
Best
Jens
I have two suggestions for you to consider. Because I cannot reproduce the problem, I cannot guarantee these suggestions will fix your problem. But I think your chances are very good.
Suggestion one ... Remove the build option -pm. This has no effect when you build one file at a time. To be honest, I doubt this has anything to do with your problem. That said, I've seen stranger things.
Suggestion two ... Upgrade to compiler version 7.4.23. You currently use 7.4.12. The only difference between 7.4.x releases is bug fixes. The higher the last digit, the more bugs have been fixed. Version 7.4.23 is the most recent of the 7.4.x releases. The bug fix most likely to help is CODEGEN-2098. Here is the summary on that bug ...
In some cases with a large number of compilations in parallel on Windows, the compiler could create temporary files with colliding names, resulting in strange compilation failures.
I'm pretty sure this ...
Jens Biltoft said:It seems that the error only happens on our build server, and not if we build on our own PC, even though the installation on the build servers is identical to the one on our PC's.
... is caused by CODEGEN-2098.
Thanks and regards,
-George
Hi George
I have tried compiling my code with the new compiler 7.4.23 on my local machine, and I noticed that the usage of internal memory increases significantly.
It should be noted that in order to reduce the CPU load we place the code that needs to run most in internal ram.
On one of my application the memory usage is increased by 1440 bytes
Do ou know if that is a known "feature" in the new compiler? Or do I need to set some other compiler options?
I have not had the time to check if the original problem has been solved, but I will talk to the guys managing the build servers to make them install 7.4.23.
Best
Jens
Jens Biltoft said:On one of my application the memory usage is increased by 1440 bytes
I presume this is due to increase in code size, and not data size. Please use the technique described in the article Find Source of Code Size Increase. That will show you which functions increased in size the most. By focusing on those, you may be able to work out the problem yourself. If not, you should be able to develop a small test case you can post here.
Thanks and regards,
-George