You copied the Doc URL to your clipboard.

Arm Compiler Migration and Compatibility Guide : Summary of changes between Arm Compiler 6.9 and Arm Compiler 6.10

Summary of changes between Arm® Compiler 6.9 and Arm® Compiler 6.10

summary of the changes between Arm® Compiler 6.9 and Arm Compiler 6.10.

General changes

The following are general changes in Arm Compiler 6.10:

  • When using the legacy assembler, armasm, to assemble for AArch32 targets that support A32 and T32 instruction sets, the apcs interworking default has changed from /nointerwork to /interwork. If you must use the non-interworking apcs, then you must specify --apcs=/nointerwork on the command-line of the legacy assembler, armasm. However, from Arm Compiler 6.10, the compiler does not include pure A32 libraries for non-interworking apcs. Therefore, if you use the non-interworking apcs for A32 code and require library support, then armlink generates an error unless you provide your own supporting libraries.
  • In certain circumstances, when a legacy assembler or linker process invoked the compiler as a subprocess to preprocess a file but all suitable licenses were already in use, the processes could deadlock. This issue has been fixed.
  • The default C++ source language mode has changed from gnu++98 to gnu++14.

    gnu++14 language and library features are a [BETA] product feature. Arm recommends compiling with -std=c++11 to restrict Arm Compiler to using only C++11 language and library features, which are fully supported.

    See -std in the armclang Reference Guide.


The following are enhancements in Arm Compiler 6.10:

Compiler and integrated assembler (armclang)

Added support for the -fno-builtin option that can prevent the compiler from optimizing calls to certain standard C library functions, such as printf(). When compiling without -fno-builtin, the compiler can replace such calls with inline code or with calls to other library functions.

See -fno-builtin in the armclang Reference Guide.

Was this page helpful? Yes No