1.2 About ARM® Compiler

ARM Compiler enables you to build applications for the ARM family of processors from C, C++, or assembly language source.

ARM Compiler supports the following architectures:
  • ARMv8-A bare metal targets.
  • ARMv7-A bare metal targets.
The toolchain comprises:
The compiler. This compiles C, C++, and GNU assembly language sources.
The compiler is based on LLVM and Clang technology.
LLVM is a set of open-source components that allow the implementation of optimizing compiler frameworks.
Clang is a compiler front end for LLVM, providing support for the C and C++ programming languages.
The legacy assembler. This assembles A32, A64, and T32 ARM syntax assembly code.
Only use armasm for legacy ARM syntax assembly code. Use the armclang assembler and GNU syntax for all new assembly files.
The linker. This combines the contents of one or more object files with selected parts of one or more object libraries to produce an executable program.
The librarian. This enables sets of ELF object files to be collected together and maintained in archives or libraries. You can pass such a library or archive to the linker in place of several ELF files. You can also use the archive for distribution to a third party for further application development.
The image conversion utility. This can also generate textual information about the input image, such as its disassembly and its code and data size.
ARM C++ libraries
The ARM C++ libraries provide:
  • Helper functions when compiling C++.
  • Additional C++ functions not supported by the Rogue Wave library.
ARM C libraries
The ARM C libraries provide:
  • An implementation of the library features as defined in the C and C++ standards.
  • Common nonstandard extensions to many C libraries.
  • POSIX extended functionality.
  • Functions standardized by POSIX.
Rogue Wave C++ library
The Rogue Wave C++ library provides an implementation of the standard C++ library.


Be aware of the following:
  • Generated code might be different between two ARM Compiler releases.
  • For a feature release, there might be significant code generation differences.


The command-line option descriptions and related information in the individual ARM Compiler tools documents describe all the ARM-specific features that are supported by ARM Compiler. Any ARM-specific features not documented are not supported and are used at your own risk. Although open-source clang LLVM features are available, they are not supported by ARM and are used at your own risk. You are responsible for making sure that any generated code using unsupported features is operating correctly.

Supporting software

You can debug the output from the toolchain with any debugger that is compatible with the ELF and DWARF 4 specifications, such as ARM DS-5.
Check the ARM web site for updates and patches to the toolchain.
Related concepts
2.6 The ARM assembler commands
2.9 The fromelf image converter command
Non-ConfidentialPDF file icon PDF versionARM DUI0741B
Copyright © 2014 ARM. All rights reserved.