3.4. Using ARM libraries

The following run-time libraries are provided to support compiled C and C++:


The C libraries consist of:

  • The functions defined by the ISO C library standard.

  • Target-dependent functions used to implement the C library functions in the semihosted execution environment. You can redefine these functions in your own application.

  • Helper functions used by the C and C++ compilers.


The C++ libraries contain the functions defined by the ISO C++ library standard. The C++ library depends on the C library for target-specific support and there are no target dependencies in the C++ library. This library consists of:

  • the Rogue Wave Standard C++ Library version 2.01.01

  • helper functions for the C++ compiler

  • additional C++ functions not supported by the Rogue Wave library.

As supplied, the ANSI C libraries use the standard ARM semihosted environment to provide facilities such as file input/output. This environment is supported by the ARMulator, Angel, Multi-ICE, and EmbeddedICE®. You can use the ARM development tools in ADS to develop applications, and then immediately run and debug the applications under the ARMulator or on a development board. See the description of semihosting in the ADS Debug Target Guide for more information on the debug environment.

You can re-implement any of the target-dependent functions of the C library as part of your application. This enables you to tailor the C library, and therefore the C++ library, to your own execution environment.

The libraries are installed in two subdirectories within install_directory\lib:


Contains the variants of the ARM C library, the floating-point arithmetic library, and the math library. The accompanying header files are in install_directory\include.


Contains the variants of the Rogue Wave C++ library and supporting C++ functions. The Rogue Wave and supporting C++ functions are collectively referred to as the ARM C++ Libraries. The accompanying header files are installed in install_directory\include.


  • The ARM C libraries are supplied in binary form only.

  • The ARM libraries should not be modified. If you want to create a new implementation of a library function, place the new function in an object file, or your own library, and include it when you link the application. Your version of the function will be used instead of the standard library version.

  • Normally, only a few functions in the ANSI C library require re-implementation in order to create a target-dependent application.

  • The source for the Rogue Wave Standard C++ Library is not freely distributable. It can be obtained from Rogue Wave Software Inc., or through ARM Limited, for an additional licence fee. See the Rogue Wave online documentation in install_directory\Html for more about the C++ library.

Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI 0064D