Prebuilt runtime libraries
The prebuilt runtime libraries are configured for different combinations of these options:
Processor variant
Data model
Library configuration—Normal or Full.
The linker will automatically include the correct library files and library configuration file. To explicitly specify a library configuration, use the ‑‑dlib_config compiler option. However, the Full library configuration is the only configuration that exists for Libc++. The ‑‑dlib_config compiler option cannot be used to specify another configuration.
Tip
To see which runtime library files that the linker includes, use the linker option ‑‑log libraries, see ‑‑log.
Library filename syntax
The names of the libraries are constructed from these elements:
| Specifies the CPU architecture:
|
| Specifies the default processor/execution mode:
|
| Specifies the byte order:
|
| Specifies the library configuration:
|
| Specifies whether the library supports RWPI:
not present = no RWPI support |
| Specifies how floating-point operations are implemented:
not present = software implementation |
| Specifies the data model in 64-bit mode:
not present = the library is for use in 32-bit mode |
| Specifies a semihosting mechanism:
|
| Specifies whether the library supports branch protection (PACBTI):
not present = no support for PACBTI |
You can find the library object files in the directory arm\lib\ and the library configuration files in the directory arm\inc\.
Groups of library files
The libraries are delivered in groups of library functions:
Library files for C library functions
These are the functions defined by Standard C, for example, functions like printf and scanf. Note that this library does not include math functions.
The names of the library files are constructed in the following way:
dl{arch}_{mode}{endian}{lib-config}[rwpi][abi][pacbti].awhich more specifically means
dl{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}{n|f}[s|g][44|88][p].aLibrary files for C++ library functions
These are the functions defined by C++, compiled with support for Standard C++.
There are separate libraries for the Dinkumware C++14 library (dlpp) and the Libc++ C++17 library (dllibcpp).
The names of the library files are constructed in the following way:
dlpp{arch}_{mode}{endian}{fp}_{lib-config}c[rwpi][abi][pacbti].a
dllibcpp{arch}_{mode}{endian}{fp}_fc[rwpi][abi][pacbti].awhich more specifically means:
dlpp{4t|5E|6M|6Mx|7M|7Mx|7Sx|4as|7as|8A}_{a|t|x}{l|b}{v|s|}_{n|f}c[s|g][44|88][p].a
dllibcpp{4t|5E|6M|6Mx|7M|7Mx|7Sx|4as|7as|8A}_{a|t|x}{l|b}{v|s|}_fc[s|g][44|88][p].aLibrary files for C++ runtime library functions
These are the runtime functions needed for C++, used for both the Libc++ and the DLIB C++ libraries.
The names of the library files are constructed in the following way:
dlpprt{arch}_{mode}{endian}_{lib-config}c[rwpi][abi][pacbti].awhich more specifically means
dlpprt{4t|5E|6M|6Mx|7M|7Mx|7Sx|4as|7as|8A}_{a|t|x}{l|b}_{n|f}c[s|g][44|88][p].aLibrary files for math functions
These are the functions for floating-point arithmetic and functions with a floating-point type in its signature as defined by Standard C, for example, functions like sqrt.
The names of the library files are constructed in the following way:
m{arch}_{mode}{endian}[fp][rwpi][abi][pacbti].awhich more specifically means
m{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}[v|s][g][44|88][p].aLibrary files for thread support functions
These are the functions for thread support.
The names of the library files are constructed in the following way:
th{arch}_{mode}{endian}{lib-config}[abi][pacbti].awhich more specifically means
th{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}{n|f}[44|88][p].aLibrary files for timezone and daylight saving time support functions
These are the functions with support for timezone and daylight saving time functionality.
The names of the library files are constructed in the following way:
tz{arch}_{mode}{endian}[rwpi][abi][pacbti].awhich more specifically means
tz{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}[s|g][44|88][p].aLibrary files for runtime support functions
These are functions for system startup, initialization, non floating-point AEABI support routines, and some of the functions that are part of Standard C and C++.
The names of the library files are constructed in the following way:
rt{arch}_{mode}{endian}[rwpi][abi][pacbti].awhich more specifically means
rt{4t|5E|6M|6Mx|7M|7Mx|7Sx|8A}_{a|t|x}{l|b}[g][44|88][p].aLibrary files for debug support functions
These are functions for debug support for the semihosting interface. The names of the library files are constructed in the following way:
sh{debug-interface}_{endian}[rwpi][pacbti].aor
sh{arch}_{endian}[rwpi][abi][pacbti].awhich more specifically means
sh{s|b|i}_{l|b}[g][p].aor
sh{6Mx|7Mx|7Sx|8A}_{l|b}[g][44|88][p].a