[bootlin/training-materials updates] master: slides/buildroot-advanced: add slides about top-level parallel build (1051410c)
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Fri Apr 3 16:25:26 CEST 2020
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/1051410c76fe14b9aa144c64cba69ae29d2f3dc1
>---------------------------------------------------------------
commit 1051410c76fe14b9aa144c64cba69ae29d2f3dc1
Author: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Date: Fri Apr 3 16:25:26 2020 +0200
slides/buildroot-advanced: add slides about top-level parallel build
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
>---------------------------------------------------------------
1051410c76fe14b9aa144c64cba69ae29d2f3dc1
slides/buildroot-advanced/buildroot-advanced.tex | 47 ++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/slides/buildroot-advanced/buildroot-advanced.tex b/slides/buildroot-advanced/buildroot-advanced.tex
index c6bf9639..4331fc13 100644
--- a/slides/buildroot-advanced/buildroot-advanced.tex
+++ b/slides/buildroot-advanced/buildroot-advanced.tex
@@ -519,6 +519,53 @@ $ make clean all
\end{itemize}
\end{frame}
+\begin{frame}{Support for top-level parallel build (1)}
+ \begin{itemize}
+ \item Buildroot normally builds packages {\bf sequentially}, one after the
+ other.
+ \item Calling Buildroot with \code{make -jX} has no effect
+ \item Parallel build is used {\em within} the build of each package:
+ Buildroot invokes each package build system with \code{make -jX}
+ \begin{itemize}
+ \item This level of parallelization is controlled by
+ \code{BR2_JLEVEL}
+ \item Defaults to 0, which means Buildroot auto-detects the number
+ of CPUs cores
+ \end{itemize}
+ \item Buildroot 2020.02 has introduced {\bf experimental} support
+ for top-level parallel build
+ \begin{itemize}
+ \item Allows to build multiple different packages in parallel
+ \item Of course taking into account their dependencies
+ \item Allows to better use multi-core machines
+ \item Reduces build time significantly
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Support for top-level parallel build (2)}
+ \begin{itemize}
+ \item To use this experimental support:
+ \begin{enumerate}
+ \item Enable \code{BR2_PER_PACKAGE_DIRECTORIES=y}
+ \item Build with \code{make -jX}
+ \end{enumerate}
+ \item The {\em per-package} option ensures that each package uses
+ its own \code{HOST_DIR}, \code{STAGING_DIR} and \code{TARGET_DIR}
+ so that different packages can be built in parallel with no
+ interference
+ \item See \code{$(O)/per-package/<pkg>/}
+ \item Limitations
+ \begin{itemize}
+ \item Not yet supported by all packages, e.g {\em Qt5}
+ \item Absolutely requires that packages do not overwrite/change
+ files installed by other packages
+ \item \code{<pkg>-reconfigure}, \code{<pkg>-rebuild},
+ \code{<pkg>-reinstall} not working
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
\setuplabframe
{Advanced aspects}
{
More information about the training-materials-updates
mailing list