[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