[bootlin/training-materials updates] master: kernel: building: Rework the symbol dependencies slide (7fca51e5)
Miquel Raynal
miquel.raynal at bootlin.com
Thu Jun 2 10:54:21 CEST 2022
Repository : https://github.com/bootlin/training-materials
On branch : master
Link : https://github.com/bootlin/training-materials/commit/7fca51e5dd715d0891ea9d17256ce00452929a7d
>---------------------------------------------------------------
commit 7fca51e5dd715d0891ea9d17256ce00452929a7d
Author: Miquel Raynal <miquel.raynal at bootlin.com>
Date: Wed Jun 1 13:48:45 2022 +0200
kernel: building: Rework the symbol dependencies slide
- Try to reword the explanation of the select dependency.
- Use another example than the ATA symbol which is very specific, use a
simple spi controller driver example instead.
Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>
>---------------------------------------------------------------
7fca51e5dd715d0891ea9d17256ce00452929a7d
.../kconfig-dependencies.png | Bin 94705 -> 0 bytes
.../sysdev-kernel-building.tex | 53 ++++++++++++++-------
2 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/slides/sysdev-kernel-building/kconfig-dependencies.png b/slides/sysdev-kernel-building/kconfig-dependencies.png
deleted file mode 100644
index 7f69acb3..00000000
Binary files a/slides/sysdev-kernel-building/kconfig-dependencies.png and /dev/null differ
diff --git a/slides/sysdev-kernel-building/sysdev-kernel-building.tex b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
index 67b0d4bb..c2a395c3 100644
--- a/slides/sysdev-kernel-building/sysdev-kernel-building.tex
+++ b/slides/sysdev-kernel-building/sysdev-kernel-building.tex
@@ -217,26 +217,47 @@
\begin{frame}[fragile]
\frametitle{Kernel option dependencies}
- There are dependencies between kernel options
- \begin{itemize}
- \item For example, enabling a network driver requires the network
- stack to be enabled
- \item Two types of dependencies:
+ Enabling a network driver requires the network stack to be enabled,
+ therefore configuration symbols have two ways to express dependencies:
\begin{columns}
- \column{0.5\textwidth}
+ \column{0.4\textwidth}
+ \begin{itemize}
+ \item \code{depends on} dependency:
+\begin{verbatim}
+config B
+ depends on A
+\end{verbatim}
+ \begin{itemize}
+ \item B is not visible until A is enabled
+ \item Strong dependency, can be chained
+ \end{itemize}
+ \end{itemize}
+ \column{0.6\textwidth}
\begin{itemize}
- \item \code{depends on} dependencies. In this case, option B that
- depends on option A is not visible until option A is enabled
- \item \code{select} dependencies. In this case, with option B
- depending on option A, when option A is enabled, option B is
- automatically enabled. In particular, such dependencies are
- used to declare what features a hardware architecture supports.
+ \item \code{select} dependency:
+\begin{verbatim}
+config A
+ select B
+\end{verbatim}
+ \begin{itemize}
+ \item When A is enabled, B is also enabled too
+ \item Weaker dependencies, should not select a symbol with \code{depends
+ on} dependencies
+ \item To declare hardware features or select libraries
+ \end{itemize}
\end{itemize}
- \column{0.4\textwidth}
- \includegraphics[width=\textwidth]{slides/sysdev-kernel-building/kconfig-dependencies.png}\\
- \footnotesize Kconfig file excerpt
\end{columns}
- \end{itemize}
+ \vfill
+ \scriptsize
+\begin{verbatim}
+config SPI_ATH79
+ tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
+ depends on ATH79 || COMPILE_TEST
+ select SPI_BITBANG
+ help
+ This enables support for the SPI controller present on the
+ Atheros AR71XX/AR724X/AR913X SoCs.
+\end{verbatim}
\end{frame}
\begin{frame}[fragile]
More information about the training-materials-updates
mailing list