Closed Defects in Release

ID Summary State Reported In Release Target Release Workaround Release Notes
CODEGEN-1444 The PRU 2.1.x compiler is TSPA, but includes a LICENSE.txt file with the old non-TSPA license. Fixed PRU_2.1.2, PRU_2.1.0, PRU_2.1.1 PRU_2.1.3 The PRU 2.1.x compiler stream is TSPA. The file PRU_Code_Generation_Tools_2.1.x_manifest.html contains the TSPA license information. The LICENSE.txt file contains the old license used by other compiler products and does not apply to the PRU 2.1.x compiler tools. The LICENSE.txt file should be ignored. The PRU 2.1.x compiler stream is TSPA. The file PRU_Code_Generation_Tools_2.1.x_manifest.html contains the TSPA license information. The LICENSE.txt file contains the old license used by other compiler products and does not apply to the PRU 2.1.x compiler tools. The LICENSE.txt file should be ignored.
CODEGEN-1333 Structure assignment causes compiler to fail with INTERNAL ERROR: Decomposition error Fixed PRU_2.1.2 PRU_2.1.3 Replace struct assignments involving packed structures with a memcpy() call to copy the contents of the RHS of the struct assign to the LHS.
SDSCM00052833 Linker INTERNAL ERROR with object files with DWARF information compiled by IAR compiler Fixed PRU_2.1.0 PRU_2.1.3 Add option --compress_dwarf=off
SDSCM00052723 Compiler seg faults with use of --opt_level=4 Fixed PRU_2.1.0 PRU_2.1.3 Use optimization level 3 or below.
SDSCM00052699 Compiler discards write to a volatile local struct member Fixed PRU_2.1.0 PRU_2.1.3 No workaround.
SDSCM00052529 Optimizer assumes enum variable can only have value of enumeration constants Fixed PRU_2.1.0 PRU_2.1.3 Don't make enumerated types with constants only for 0 and 1 if other values may be used. Either add a third value, or use values different than 0 and 1, or avoid using values that aren't the enumeration constants.
SDSCM00052468 Inline assembly may cause codegen to segmentation fault Fixed PRU_2.1.0 PRU_2.1.3 None.
SDSCM00052397 Optimizer crashes on unreachable integer divide-by-zero Fixed PRU_2.1.0 PRU_2.1.2 None.
SDSCM00052375 In some instances, compiler computes 64-bit add incorrectly Fixed PRU_2.1.0 PRU_2.1.2 If more than 32 bits of precision are needed, there is no workaround. Otherwise, using 32 bit integers will avoid this issue.
SDSCM00052339 demangler --output option does not work at all Fixed PRU_2.1.0 PRU_2.1.2 armdem file.asm > file.dis
SDSCM00052301 Linker crashes when --ecc:ecc_error is used Fixed PRU_2.1.0 PRU_2.1.2 None.
SDSCM00052281 ARM Parser Segfaults on OSX at Template Class Fixed PRU_2.1.0 PRU_2.1.2 None.
SDSCM00052265 Flexible array with initializer not handle correctly Fixed PRU_2.1.0 PRU_2.1.2 None.
SDSCM00052257 Use of --opt_level=4 causes link to fail with message symbol "name" redeclared with incompatible type Fixed PRU_2.1.0 PRU_2.1.2 Change all anonymous members of the types involved to have an explicit name.
SDSCM00052238 Strong function symbol removed from linked ICODE with -o4 Fixed PRU_2.1.0 PRU_2.1.2 Use --opt_level=3 or below.
SDSCM00052212 PRU does not issue a NOP between writing the source registers of the MAC unit and reading the result Fixed PRU_2.1.0 PRU_2.1.2 The workaround is to use the --silicon_version=2 option. This option will prevent the compiler from using the hardware loop instruction.
SDSCM00052144 RTS libraries do not get automatically built if the library is missing (Mac OS X) Fixed PRU_2.1.0 PRU_2.1.2 Copy the libraries from a Windows/Linux machine.
SDSCM00052114 Windows Stack Size for Parser Should be Raised Fixed PRU_2.1.0 PRU_2.1.2 There are at least two options: 1. On Windows, if you have Visual Studio available, the stack for an executable may be raised with editbin. For example, to raise the stack to 8MB for the acpia6x parser, you would use: editbin /stack:8388608 acpia6x.exe 2. Use the linux toolchain. The default stack is much higher. Even if that limit is reached, the soft limit for the stack size of user applications may be raised with ulimit. For example, to raise the stack to 16MB, you would use: ulimit -S -s 16384 (This could be placed in the startup script, such as .bashrc)
SDSCM00052014 Cannot read files with inode > 4B Fixed PRU_2.1.0 PRU_2.1.2 None.
SDSCM00051809 "if (P) X=A; else X=B;" may compile incorrectly when A and B are 0/1 and P is 0/1 with a side effect Fixed PRU_2.1.0 PRU_2.1.2 Typically such an IF is equivalent to "X=P" or "X=!P"; write it that way to avoid the problem. Adding statements to either arm of the IF can also help.
SDSCM00051762 Dot expression adding align(64) computes hugely incorrect size Fixed PRU_2.1.0 PRU_2.1.2 None.
SDSCM00051740 AP modified before V4 saved, potentially corrupting the stack pointer Fixed PRU_2.1.0 PRU_2.1.2 None.
SDSCM00051708 Loop downcounter may be mistakenly typed too small Fixed PRU_2.1.0 PRU_2.1.2 Lower the level of optimization.
SDSCM00051668 Using -o4 with cout or cin will cause an incompatible types error Fixed PRU_2.1.0 PRU_2.1.2 Don't use link time optimization with iostream.
SDSCM00051629 Compiler seg faults in C++ copy constructor call Fixed PRU_2.1.0 PRU_2.1.1 In some cases, using a different ABI option may avoid this error. However, the most safe option is to avoid the use of a copy constructor.
SDSCM00051621 Redeclaring extern "C" function as static causes parser to hang Fixed PRU_2.1.0 PRU_2.1.1 Use consistent function declarations.
SDSCM00051602 Parser may seg fault on template arguments with ! operator Fixed PRU_2.1.0 PRU_2.1.2 Using the --strict_ansi option will avoid this behavior. If this is not possible, changing template arguments of the form !foo to 0==foo will also avoid this behavior.
SDSCM00051555 The instruction LDI R3, ((0x4<<8) | (0x2<<1)) Fixed PRU_2.1.0 PRU_2.1.1 Removing the parenthesis around the shift operations allows the instruction to assemble. LDI R3, (0x4<<8 | 0x2<<1)
SDSCM00051472 Conditionals that use shift operator may be optimized out Fixed PRU_2.1.0 PRU_2.1.1 This behavior may be avoided by lowering the optimization level to -o1 or -o0. Moving the conditional check result to a variable so that the shift is not in the conditional may in some cases also avoid this behavior.
SDSCM00051464 If a host image file is the first object file on the command line, the linker will issue an ABI incompatibility error Fixed PRU_2.1.0 PRU_2.1.1 Reorder the inputs to armcl so that a host image file is not the first input.
SDSCM00051312 Linker mistakenly issues output section warning diagnostic for sections pre-bound to hard coded addresses Fixed PRU_2.1.0 PRU_2.1.1 Ignore the warning
SDSCM00051261 The exception handling (_eh) version of runtime library is not automatically built when --exceptions option is enabled Fixed PRU_2.1.0 PRU_2.1.1 You can build the library manually. In a command terminal, browse to the lib dir of the code gen folder (ex. C:\ti\ccsv6\tools\compiler\c2000_6.2.7\lib) and run the following command: > set PATH=%PATH%;C:\ti\ccsv6\tools\compiler\c2000_6.2.7\bin > mklib --pattern=rts2800_eh.lib --index=libc.a --install_to=C:/ti/ccsv6/tools/compiler/c2000_6.2.7/lib Update the paths to the CGT folder to match your install. Change the library name that is passed to the --patter option to build the other libraries for floating point (rts2800_fpu32_eh.lib) or large memory model (rts2800_ml_eh.lib).
SDSCM00051241 Output section splitting creates a zero-length section Fixed PRU_2.1.0 PRU_2.1.1 1) Do not split the section in question. 2) Change the zero-length section so that it has at least one more byte.
SDSCM00051212 MSP 4.4.0 changes to _lock.h declaration of _nop(void) instead of _nop() breaking driverlib Fixed PRU_2.1.0 PRU_2.1.1 Update _lock.h in the rts source folder, rename the library you are using, and it will automatically be rebuilt during next compile. To find compiler install location, click on project properties and click on: Resource->Linked Resources The "Path Variable" will have an entry for: CG_TOOL_ROOT c:\install_location\ccsv6\tools\compiler\msp430_4.3.4 Within above folder look for: .\lib\src\_lock.h .\include\_lock.h Edit both of above files and change below line 47: _CODE_ACCESS void _nop(void); to remove void argument and instead be: _CODE_ACCESS void _nop(); Rename the library you are using with suffix .old: .\lib\rtsx_lc_sd_eabi.lib change to a temp name .\lib\rtsx_lc_sd_eabi.lib.old Rebuild your project and the rts should automatically rebuild.
SDSCM00051128 Alias missed on address of local passed as function argument Fixed PRU_2.1.0 PRU_2.1.1 Use the -ma (--aliased_variables) option.
SDSCM00051097 Output section splitting creates a zero-length section Fixed PRU_2.1.0 PRU_2.1.1 1) Do not split the section in question. 2) Change the zero-length section so that it has at least one more byte.
SDSCM00051004 Compiler emits a reference to a symbol without declaring it in assembly. Fixed PRU_2.1.0 PRU_2.1.1 None.
SDSCM00050992 The optimizer should not make a symbol an alias if it has either the location or code_section pragmas applied. Fixed PRU_2.1.0 PRU_2.1.1 Available workarounds are to: 1. Reduce the optimization level to -o2. 2. If using a COFF abi, you can move the functions into separate files. 3. Add an __asm("NOP") to the function which will prevent an alias from being created.
SDSCM00050959 SIGSSEGV when using % in an option argument Fixed PRU_2.1.0 PRU_2.1.1 Don't use any printf-special characters like % in a compiler argument
SDSCM00050834 Assembler doesn't generate relocation entry for weak symbol Fixed PRU_2.1.0 PRU_2.1.2 Use --gen_func_subsections.
SDSCM00050764 Bound function has incorrect address in DWARF debug info Fixed PRU_2.1.0 PRU_2.1.1 Set a breakpoint at the bound function and run to it, rather than attempting to step into it.
SDSCM00050005 Compiler mistakenly issues MISRA diagnostic 12.9 for a float point type Fixed PRU_2.1.0 PRU_2.1.3

Generated on Wed Nov 16 09:52:37 2016