[FE training-materials-updates] Boot time slides: licensing constraints with static linking
Michael Opdenacker
michael.opdenacker at free-electrons.com
Wed Jan 1 07:57:45 CET 2014
Repository : git://git.free-electrons.com/training-materials.git
On branch : master
Link : http://git.free-electrons.com/training-materials/commit/?id=389cb697bcef35d833114b2d2088febd4668d009
>---------------------------------------------------------------
commit 389cb697bcef35d833114b2d2088febd4668d009
Author: Michael Opdenacker <michael.opdenacker at free-electrons.com>
Date: Wed Jan 1 06:51:17 2014 +0100
Boot time slides: licensing constraints with static linking
Signed-off-by: Michael Opdenacker <michael.opdenacker at free-electrons.com>
>---------------------------------------------------------------
389cb697bcef35d833114b2d2088febd4668d009
.../boottime-init-scripts3.tex | 29 +++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/slides/boottime-init-scripts3/boottime-init-scripts3.tex b/slides/boottime-init-scripts3/boottime-init-scripts3.tex
index 1819e8f..126d5f6 100644
--- a/slides/boottime-init-scripts3/boottime-init-scripts3.tex
+++ b/slides/boottime-init-scripts3/boottime-init-scripts3.tex
@@ -6,16 +6,43 @@ application and then switch to the final root filesystem with
\begin{itemize}
\item Use a light C library reduced to the minimum,
{\em uClibc} if you are not yet using it for your root filesystem
+\item Reduce BusyBox to the strict minimum.
+ You could even do without it and implement \code{/init} in C.
\item Use statically linked applications (less CPU overhead, less
libraries to load, smaller initramfs if no libraries at all).
\code{BR2_PREFER_STATIC_LIB} in Buildroot.
-\item Reduce BusyBox to the strict minimum (if you use it).
\item Don't compress your initramfs if your kernel is already
compressed.
\end{itemize}
\end{frame}
\begin{frame}
+\frametitle{Statically linked executables: licensing constraints}
+\begin{itemize}
+\item Statically linked executables are very useful to reduce size
+ (especially in small initramfs), and require less work to start.
+\item However, the LGPL license in libraries (uClibc, glibc), require
+ to leave the user the ability to relink the executable
+ with a modified version of the library.
+\item Solution to keep static binaries:
+ \begin{itemize}
+ \item Either provide the executable source code (even
+ proprietary), allowing to recompile it with a modified
+ version of the library. That's what you do when
+ you ship a static BusyBox.
+ \item Or also provide a dynamically linked version of the
+ executable (in a separate way), allowing to use another
+ library version.
+ \end{itemize}
+\item References: \\
+ {\footnotesize
+ \url{http://gnu.org/licenses/gpl-faq.html\#LGPLStaticVsDynamic} \\
+ \url{http://gnu.org/copyleft/lesser.html\#section4}
+ }
+\end{itemize}
+\end{frame}
+
+\begin{frame}
\frametitle{Results}
Before: 9.67s
\begin{center}
More information about the training-materials-updates
mailing list