|Non-Confidential||PDF version||ARM DUI0475M|
|Home > The ARM C and C++ Libraries > C and C++ runtime libraries > Thumb C libraries|
The linker automatically links in the Thumb C library if the objects to be linked contain Thumb instructions.
Objects use Thumb instructions if they have been built for:
either using the
--thumb option or
Interworking, using the
--apcs /interwork option
on architecture ARMv4T.
An ARMv6-M architecture target or processor, for example, Cortex®‑M1 or Cortex‑M0.
An ARMv7-M architecture target or processor, for example, Cortex‑M3.
Despite its name, the Thumb C library might not contain exclusively
Thumb code. If ARM® instructions are available, the Thumb library
might use them to improve the performance of critical functions
memclr(). The bulk of the Thumb C library, however,
is coded in Thumb for the best code density.
For an ARM instruction-only build, compile with the
The Thumb C library used for ARMv6-M targets contains only 16-bit Thumb code.
The Thumb C library used for ARMv7-M targets contains both 16-bit and 32-bit Thumb code.