[bootlin/training-materials updates] master: Improvements to toolchains and C libraries (ee6ba334)

Michael Opdenacker michael.opdenacker at bootlin.com
Mon May 25 20:08:15 CEST 2020


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/ee6ba3347ed88ad1fa7ca8fd9016dbe3e2dae56e

>---------------------------------------------------------------

commit ee6ba3347ed88ad1fa7ca8fd9016dbe3e2dae56e
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Mon May 25 20:08:15 2020 +0200

    Improvements to toolchains and C libraries
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


>---------------------------------------------------------------

ee6ba3347ed88ad1fa7ca8fd9016dbe3e2dae56e
 slides/c-libraries/c-libraries.tex                         | 14 +++++++++++++-
 .../sysdev-toolchains-definition.tex                       |  4 +++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/slides/c-libraries/c-libraries.tex b/slides/c-libraries/c-libraries.tex
index bdf76bcb..d6f9b048 100644
--- a/slides/c-libraries/c-libraries.tex
+++ b/slides/c-libraries/c-libraries.tex
@@ -43,7 +43,7 @@
           floating-point operations...)
     \item Focus on size rather than performance
     \item Size on armv7hf, version 1.0.24:
-      \code{libc}: 652 KB, , source: \url{https://toolchains.bootlin.com}
+      \code{libc}: 652 KB, source: \url{https://toolchains.bootlin.com}
     \end{itemize}
     \item Actively supported, but Yocto Project stopped supporting it.
   \end{itemize}
@@ -117,3 +117,15 @@ compare the size
     \end{itemize}
   \end{itemize}
 \end{frame}
+
+\begin{frame}
+  \frametitle{Advise for choosing the C library}
+  \begin{itemize}
+  \item Advice to start developing and debugging your applications with
+        {\em glibc}, which is the most standard solution.
+  \item Then, when everything works, if you have size constraints, try to compile
+        your app and then the entire filesystem with {\em uClibc} or {\em musl}.
+  \item If you run into trouble, it could be because of missing features
+        in the C library.
+  \end{itemize}
+\end{frame}
diff --git a/slides/sysdev-toolchains-definition/sysdev-toolchains-definition.tex b/slides/sysdev-toolchains-definition/sysdev-toolchains-definition.tex
index 8f317184..d09500e4 100644
--- a/slides/sysdev-toolchains-definition/sysdev-toolchains-definition.tex
+++ b/slides/sysdev-toolchains-definition/sysdev-toolchains-definition.tex
@@ -92,7 +92,7 @@
       applications also require them.
     \item Available in \code{<linux/...>} and \code{<asm/...>} and a few
       other directories corresponding to the ones visible in
-      \code{include/} in the kernel sources
+      \kdir{include} in the kernel sources
     \end{itemize}
     \column[c]{0.4\textwidth}
     \includegraphics[width=\textwidth]{slides/sysdev-toolchains-definition/kernel-headers.pdf}
@@ -130,6 +130,8 @@ struct stat {
   \begin{itemize}
   \item The kernel to user space ABI is {\bf backward compatible}
     \begin{itemize}
+    \item ABI = {\em Application Binary Interface}\\
+          We're talking about binary compatibility
     \item Binaries generated with a toolchain using kernel headers
       older than the running kernel will work without problem, but
       won't be able to use the new system calls, data structures, etc.




More information about the training-materials-updates mailing list