CodeSonar: Supported Platforms, Languages, and Compilers

Overview

This article provides information on what support is given to host platform, languages and compilers. The information listed below can be found in the manual by searching for the keyword 'System Requirements' which then will result in other topics being linked thereafter.

Platform Support

OS Version Notes
Windows

Desktop: 10, 11

Server: 2016, 2019, 2022

 

Linux All flavors

glibc 2.11.3 or later (x86 and x86-64 only)

If your source tree includes non-ASCII file or directory names, then:

  • The locales package must be installed.
  • The locale environment corresponding to those file and directory names must be defined.

See the documentation for your Linux distribution if you need information on how to define a locale environment: the mechanism is distribution-dependent. For example, Ubuntu and Debian provide command locale-gen; CentOS and Fedora provide localedef.

NetBSD 8.1 x86-64 only; 64-bit build tools only
FreeBSD 10, 12 x86-64 only; 64-bit build tools only

It is important to note the the following when running CodeSonar for Java/C# analysis:

  • CodeSonar Java analysis is available on 64-bit Windows and Linux only.
  • CodeSonar C# analysis is available on 64-bit Windows only, and requires .NET Framework 4.7.2 or later.

Language Support

Language/Tiers Features Standards Notes

Tier 1

     
C

C89/C90

C99

C11

C17/C18

ANSI X.3.159-1989 / ISO/IEC 9899:1990

ISO/IEC 9899:1999

ISO/IEC 9899:2011

ISO/IEC 9899:2018

All features supported. CodeSonar parses and generates internal representation for all features from these standards

C

C23

n/a

Many features supported, see manual for more information.

C++

C++98

C++11 (C++0x)

C+14 (C++1y)

C++17 (C++1z)

C++20

C++23

C++26

ISO/IEC 14882:1998

ISO/IEC 14882:2011

ISO/IEC 14882:2014

ISO/IEC 14882:2017

ISO/IEC 14882:2020

n/a

n/a

All Features supported

All Features supported

All Features supported

All Features supported

Most Features supported

Some Features supported

No features supported

Tier 2

 

 

 

Java  

1.1-19

Android API 15-28

CodeSonar ships with its own JVM, so the analysis of Java projects is not dependent on your local Java version(s).

C# .NET Framework 

1.0, 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

CodeSonar supports C# up to version 10.0

C# .NET Core

1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1

CodeSonar supports C# up to version 10.0

C# .NET 5.0, 6.0, 7.0, 8.0

CodeSonar supports C# up to version 10.0

Tier 3: all other languages

Go, JavaScript and TypeScript, Kotlin, Python, Rust

Analysis for tier 3 source languages is provided through integration with third-party analyzers.

We provide general instructions for integrating SARIF results from any analyzer with your CodeSonar project. We also provide tool-specific instructions for a select number of third-party analyzers. Some of these are shipped with CodeSonar and some are not.

Shipped with CodeSonar.

Note that if you are already using one of these tools in your organization, we recommend using your own installed version rather than the one shipped with CodeSonar.

  • Kotlin

Not shipped with CodeSonar. See the following section for more information.

  • Clang Static Analyzer
  • ESLint, typescript-eslint, SARIF formatter for ESLint
  • Pylint
  • Rust Clippy; Rust Clippy-Sarif
  • Staticcheck

Third-Party Tools Not Shipped with CodeSonar

CodeSonar provides a number of integrations with external third-party software: software that is neither part of CodeSonar nor shipped with CodeSonar.

  • In order to use these integrations, the relevant software must be available on your local system. If it is not already available, you will need to install and configure the software.
  • These software packages are supported by their respective manufacturers.

See the manual for more information.

Compiler Support

CodeSonar comes with a number of pre-installed compiler and compiler driver models and is expected to be compatible with widely-used versions of these compilers. Other compilers not on this list can be accommodated either through the generic compiler, or with the custom compiler accompanied with some scripting. 

It is important to note that an object-code compiler is represented in CodeSonar by a compiler model.

Model Description Linux FreeBSD NetBSD Windows
armcc

ARM Real View Compiler Tools C/C++ compiler

armclang ARM Clang compiler
borland

Borland C++ for Win32, Embarcadero C++ for Win32

c++ppc

Wind River version of GNU C compiler

c251

Keil C251 C Compiler

     
c51 Keil C51 C compiler
cc Generic C compiler
ccppc

Wind River version of GNU C compiler

ccrx

Renesas C/C++ compiler for RX family

ch38

Renesas C/C++ compiler for H8S, H8/300 Series

chc12

Freescale CodeWarrior for HC12

c1 Microsoft C compiler
c130

Texas Instruments TMS320C3x/C4x Optimizing Compiler

c16x

Texas Instruments TMS320C6000 Optimizing C/C++ Compiler

clang Clang C compiler
clangpp Clang C++ compiler
cosmic Cosmic C compilers
cvavr CodeVisionAVR C compiler
dcc

Wind River C and C++ compilers

ecomppc Green Hills C Compiler
gcc

GNU Compiler Collection C Compiler

gpp

GNU Compiler Collection C++ Compiler

icc430 IAR MSP430 compiler
icc78k IAR Renesas 78k compiler
iccarm IAR ARM compiler
iccavr IAR AVR compiler
iccgeneric

IAR compilers not covered by specific models

iccm32c IAR M32C compiler
iccrx IAR Renesas RX compiler
iccstm8 IAR STM8 compiler
iccv850 IAR v850 compiler
iccm16c IAR Renesas M16C/R8C compiler
mcc18 MPLAB C18 C Compiler
mcc30 MPLAB C30 C Compiler
mcpcom Intel C/C++ compiler
mwccarm Freescale CodeWarrior for Embedded ARM compiler
mwccmcf

Freescale CodeWarrior for ColdFire compiler

picc Hi-Tech C compiler
qcc QNX C/C++ compiler
shc

Renesas C/C++ compilers for the SuperH RISC engine family

shcpp

Renesas C/C++ compilers for the SuperH RISC engine family

tasking

The TASKING TriCore, PCP, and C166/ST10 compilers

visualdsp

The SHARC, TigerSHARC and Blackfin compilers that ship with VisualDSP++

xcc Customizable C compiler

 

Supported without Compiler Models

(Windows Only) CodeSonar provides special handling for builds with CodeWarrior installations that use DLLs:

Mode Notes
DLLs If your CodeWarrior installation uses DLLs, there will be a collection of compiler plugin .dll files in an installation subdirectory. Usually the subdirectory will be something like
cw_install\bin\plugins\compiler\

where cw_install is the CodeWarrior installation directory.

In this case, use the DLL Approach (Windows only)

compiler executables If your CodeWarrior installation uses compiler executables, there will be one or more compiler .exe files in an installation subdirectory. Usually the subdirectory will be something like
cw_install\bin

where cw_install is the CodeWarrior installation directory.

In this case, use the Standard Approach

 

DLL Approach (Windows only)

If your CodeWarrior installation uses DLLs, you will need to install CodeSonar DLLs for CodeWarrior so that CodeSonar can capture full information about your software build. 

Standard Approach

If your CodeWarrior installation uses compiler executables rather than DLLs, you don't need to install any additional components. Observed compiler invocations will be recognized and mapped to Compiler Support (Pre-installed Compiler/Driver Models) using exactly the same mechanisms as are used for other tools.

There are currently three pre-installed CodeWarrior compiler models:

  • chc12: Freescale CodeWarrior for HC12 compiler model
  • mwccarm: Freescale CodeWarrior for Embedded ARM compiler
  • mwccmcf: Freescale CodeWarrior for ColdFire compiler model

Custom Compiler Models

CodeSonar ships with compiler models for many industry standard compilers. In cases where none of these models are suitable, a custom compiler model may be required.

Compiler models can be authored in C++ or Python and if you are a premium support customer you may leverage tailored support to help build out custom compiler models to fit your software project requirements. 

Note: STk compiler models are no longer supported. If you have previously implemented a custom STk compiler model and need assistance converting it to C++ or Python, please submit a support ticket where advice may be given on potential next steps. 

Was this article helpful?
2 out of 2 found this helpful

Articles in this section

White Papers
Read our white papers to find useful information about software development in the IoT era, where devices must not only function with impeccable quality and safety but also remain resilient to cyber-attacks.
Product Sheets
Read our datasheets and company briefs to gain quick insights into our solutions, products, and integrations, including their capabilities, benefits, and supported environments.
TalkSecure
Topics relating to DevSecOps, application security testing (AST), binary analysis, product security, software assurance and others.
X