8.113 --library_interface=lib

Generates code that is compatible with the selected library type.

Syntax

--library_interface=lib

Where lib is one of:

none

Specifies that the compiler output works with any ISO C90 library, but does not use AEABI-defined library functions unless they are required for the code to behave correctly. For example, this option suppresses the use of AEABI-defined functions that are introduced only as an optimization such as __aeabi_memcpy.

armcc

Specifies that the compiler output works with the ARM runtime libraries in ARM Compiler 4.1 and later.

armcc_c90

Behaves similarly to --library_interface=armcc. The difference is that references in the input source code to function names that are not reserved by C90, are not modified by the compiler. Otherwise, some C99 math.h function names might be prefixed with __hardfp_, for example __hardfp_tgamma.

aeabi_clib90

Specifies that the compiler output works with any ISO C90 library compliant with the ARM Embedded Application Binary Interface (AEABI).

aeabi_clib99

Specifies that the compiler output works with any ISO C99 library compliant with the AEABI.

aeabi_clib

Specifies that the compiler output works with any ISO C library compliant with the AEABI.

Selecting the option --library_interface=aeabi_clib is equivalent to specifying either --library_interface=aeabi_clib90 or --library_interface=aeabi_clib99, depending on the choice of source language used.

The choice of source language is dependent both on the command-line options selected and on the filename suffixes used.

aeabi_glibc

Specifies that the compiler output works with an AEABI-compliant version of the GNU C library.

aeabi_clib90_hardfp

Specifies that the compiler output works with any ISO C90 library compliant with the AEABI, and causes calls to the C library (including the math libraries) to call hardware floating-point library functions.

aeabi_clib99_hardfp

Specifies that the compiler output works with any ISO C99 library compliant with the AEABI, and causes calls to the C library (including the math libraries) to call hardware floating-point library functions.

aeabi_clib_hardfp

Specifies that the compiler output works with any ISO C library compliant with the AEABI.

Selecting the option --library_interface=aeabi_clib_hardfp is equivalent to specifying either --library_interface=aeabi_clib90_hardfp or --library_interface=aeabi_clib99_hardfp, depending on the choice of source language used.

The choice of source language is dependent both on the command-line options selected and on the filename suffixes used.

Causes calls to the C library (including the math libraries) to call hardware floating-point library functions.

aeabi_glibc_hardfp

Specifies that the compiler output works with an AEABI-compliant version of the GNU C library, and causes calls to the C library (including the math libraries) to call hardware floating-point library functions.

rvct30

Specifies that the compiler output is compatible with RVCT 3.0 runtime libraries.

rvct30_c90

Behaves similarly to rvct30. In addition, specifies that the compiler output is compatible with any ISO C90 library.

rvct31

Specifies that the compiler output is compatible with RVCT 3.1 runtime libraries.

rvct31_c90

Behaves similarly to rvct31. In addition, specifies that the compiler output is compatible with any ISO C90 library.

rvct40

Specifies that the compiler output is compatible with RVCT 4.0 runtime libraries.

rvct40_c90

Behaves similarly to rvct40. In addition, specifies that the compiler output is compatible with any ISO C90 library.

Default

If you do not specify --library_interface, the compiler assumes --library_interface=armcc.

Usage

  • Use the option --library_interface=armcc to exploit the full range of compiler and library optimizations when linking.

  • Use an option of the form --library_interface=aeabi_* when linking with an ABI-compliant C library. Options of the form --library_interface=aeabi_* ensure that the compiler does not generate calls to any optimized functions provided by the ARM C library.

  • It is an error to use any of the _hardfp library interfaces when compiling with --fpu=softvfp.

Examples

If your code calls functions, provided by an embedded operating system, that replace functions provided by the ARM C library, then compile your code with the option --library_interface=aeabi_clib. This option disables calls to any special ARM variants of the library functions replaced by the operating system.

Related information
Compliance with the Application Binary Interface (ABI) for the ARM architecture
Non-ConfidentialPDF file icon PDF versionARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.