The linker automatically links in the Thumb C library if it detects that one or more of the objects to be linked have been built for:
16-bit Thumb or 32-bit Thumb, either using the
interworking, using the
--apcs /interworkoption 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 only 16-bit and 32-bit Thumb code.