-
Notifications
You must be signed in to change notification settings - Fork 249
/
stdlib-support.txt
36 lines (28 loc) · 1.79 KB
/
stdlib-support.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
STDLIB SUPPORT
Circle provides some support for solutions, which allow using C and C++ standard
library features to build bare metal applications. This is configured using the
build option STDLIB_SUPPORT, which can be defined in the files Config.mk or
Rules.mk as follows:
* STDLIB_SUPPORT=0 to build without external libs (old setting)
* STDLIB_SUPPORT=1 to build with libgcc.a only (default now)
* STDLIB_SUPPORT=2 to build with C standard library too
* STDLIB_SUPPORT=3 to build with C++ standard library too
Please note that Circle needs support from external projects to implement the
options STDLIB_SUPPORT=2 and STDLIB_SUPPORT=3. This is mainly realized by the
following project (a newlib port for Circle) by Stephan Muehlstrasser:
https://github.com/smuehlst/circle-stdlib
Circle is included as a Git sub-module into this project, which provides a configure
script and makefiles to build all required libraries (including the
Circle libraries) to use C standard library functions in Circle. The project
contains also specific sample programs, which demonstrate how this support can
be used. Please see the documentation of this project for details!
Some toolchains provide C++ standard library support, which have been build
using newlib, like those which can be downloaded here:
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
With these toolchains and the newlib port by Stephan Muehlstrasser it is
possible, to develop Circle applications, which use the features of the C++
standard library. This is supported by the configure script in the
circle-stdlib project too and is the default case. Only if you encounter
problems when building applications (e.g. when building on Raspberry Pi OS
itself), you can fall back to the C standard library only case using the
configure option --no-cpp.