[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