Skip to content

Commit cb002e9

Browse files
Adding libraries-related documentation
1 parent 94b820b commit cb002e9

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

arch/libraries.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Introduction
2+
3+
To build Ledger OS application 3 libraries are used:
4+
5+
| Name | Description | Comes from | Version | CPU (Arch) |
6+
| ----------------------- | -------------------------------------------------- | ---------------------------------------- | -------------------------------------------- | --------------------------------------------------- |
7+
| libclang_rt.builtins | Low-level runtime library | Prebuilt in the SDK (2) | (2) | cortex-m3 (Armv7-M) and cortex-m35p+nodsp (Armv8-M) |
8+
| libgcc (1) | the same as above | Prebuilt in the SDK | Unknown | ARM, EABI5 version 1 (SYSV), not stripped |
9+
| libc | C standard library | picolibc-arm-none-eabi Debian 12 package | 1.8.10-2 in current app builder docker image | thumb/v7-m/nofp and thumb/v8-m.main/nofp |
10+
| libm | Standard C library of basic mathematical functions | the same as above | the same as above | the same as above |
11+
12+
(1) obsolete, replaced by libclang_rt.builtins, used only for Nano S, can be removed soon
13+
(2) See libclang_rt.builtins build below
14+
15+
16+
# libclang_rt.builtins build
17+
18+
It is build using `.github/workflows/build_clangrt_builtins.yml` and `tools/build_clangrt_builtins.sh` and pushed to the SDK using an explicit PR.
19+
Several symbols that conflict with the ones from picolibc are removed from the library just after build.
20+
21+
Last build parameters :
22+
* on the base of ``llvm-toolchain-14-14.0.6/compiler-rt`` package (see also https://github.com/llvm/llvm-project/tree/main/compiler-rt)
23+
* the explicit PR https://github.com/LedgerHQ/ledger-secure-sdk/pull/1035

0 commit comments

Comments
 (0)