*
*Home|Chinese|Japanese*About ARM|Forums|Events|News|Employment|Contact Us|Investors*
dotted rule
*ARM - the architecture for the digital worldARM - the architecture for the digital world
search
*
*
***
*MARKETS:PRODUCTS & SOLUTIONS:CONNECTED COMMUNITY:TECHNICAL SUPPORT:DOCUMENTATION*
*
RealView Tools by ARM
*
*
****
*.Products & Solutions
*
*
 >>Home Page 
*
 .Consultancy 
*
 .RealView Development Tools 
*
  Home Page 
*
**System Development box1*
*
*.Software Development box2*
*
**Ordering Information*
*
  Tools Support 
*
  Downloads 
*
  Documentation 
*
  RealView Distributors 
*
*
 .Fabric IP 
*
 .On-chip Debug & Trace 
*
 .Multimedia 
*
 .Physical IP 
*
 .Processors 
*
 .Security Solutions 
*
 .Operating System Support 
*
 .Licensing 
*
 >>Markets 
*
 >>Books 
*
*
*
RealView Compilation Tools - Standards Complianceask ARM*
*

RealView Compilation Tools conforms to the following standards.

In each case, the level of compliance is noted:

  • ISO C The ARM compiler accepts ISO/IEC 9899:1990 C (C90), including the Normative Addendum 1 from 1994, and it accepts ISO/IEC 9899:1999 C (C99) except for complex numbers.  In both cases this is with the exception of the wide I/O feature from C90 AM1. The option --strict can be used to enforce strict ISO compliance.
  • ISO C++ The ARM compiler supports the full ISO/IEC 14822:1998 C++ language, with the exception of the export keyword.
  • ELF The ARM tools produce relocatable and executable files in ELF format. The fromelf utility can translate ELF files into other formats.
  • DWARF3 Support for DWARF3 debug tables is provided by all the tools in the RVCT suite, and by RealView Debugger v1.8 (and above).
  • DWARF2 DWARF2 debug tables are supported by all the tools in the RVCT suite, and by ELF/DWARF2 compatible debuggers from ARM, for example, RealView Debugger and ARM eXtended Debugger (AXD).
    Note: The DWARF2 standard is ambiguous in some areas (such as debug frame data) so there is no guarantee that third-party debuggers can consume the DWARF2 produced by ARM or that ARM debuggers can consume the DWARF2 produced by third-party tools.
  • ar armar produces, and armlink consumes, UNIX-style object code archives. armar can list and extract most ar-format object code archives, and armlink can use an ar-format archive created by another archive utility provided that it contains a symbol table member.
  • IEEE 754 floating point The RealView Compilation tools can be configured such that all facilities, operations and representations guaranteed by the IEEE standard are available in single and double precision. If full IEEE 754 conformance is not required, a number of alternative configurations for floating point are also available. For example, the "--fpmode std" option allows the compiler to generate floating point code fully compliant with Standard C/C++ while faster than standard IEEE. Also, the "--fpmode fast" option allows the compiler to perform more aggressive floating-point optimizations that might cause a small loss of accuracy to provide a significant performance increase. This option results in behavior that is not fully compliant with the ISO C and ISO C++ standards. However, numerically robust floating-point programs behave correctly.

Compliance with the ABI for the ARM Architecture (base standard)
The Application Binary Interface (ABI) for the ARM Architecture is a collection of standards, some open and some specific to the ARM architecture, that regulate the inter-operation of binary code and development tools in ARM-based execution environments ranging from bare metal to major operating systems such as ARM Linux.
By conforming to this standard, ARM and Thumb objects and libraries from different producers can work together.

The ABI for the ARM Architecture (base standard) [BSABI] consists of a family of specifications including:

  • AAPCS Procedure Call Standard for the ARM Architecture. Governs the exchange of control and data between functions at runtime. There is a variant of the AAPCS for each of the major execution environment types supported by RVCT.
  • CPPABI C++ ABI for the ARM Architecture. Builds on the generic C++ ABI (originally developed for IA-64) to govern interworking between independent C++ compilers.
  • EHABI Exception Handling ABI for the ARM Architecture. Defines both the language-independent and C++-specific aspects of how exceptions are thrown and handled.
  • AAELF ELF for the ARM Architecture. Builds on the generic ELF standard to govern the exchange of linkable and executable files between producers and consumers.
  • AADWARF DWARF for the ARM Architecture. This ABI uses DWARF 3.0 to govern the exchange of debugging data between object producers and debuggers.
  • RTABI Runtime ABI for the ARM Architecture. Governs what independently produced objects can assume of their execution environments by way of floating-point and compiler helper function support.
  • CLIBABI C Library ABI for the ARM Architecture. Defines an ABI to the ISO C:1990 library.
  • BPABI Base Platform ABI for the ARM Architecture. Governs the format and content of executable and shared object files generated by static linkers. Supports platform-specific executable files using post linking. Provides a base standard that is used to derive a platform ABI.
back to top
*
*
*
RELATED PRODUCTS
   
 Software Development

 
 RealView Development Suite  >> 
   
 RealView Compilation Tools >> 
   

Related
***
*

Validation and Testing

FAQs

*
*
*
**
*4 dots*Other ARM Websites | Help with Accessibility
*
shadow *LEGAL STATEMENTshadow