Describing Linux's build system
The Linux kernel is a monolithic kernel and, as such, shares the same address space. Although it has the ability to load modules at runtime, the kernel must contain all the symbols the module uses at compilation time. Once the module is loaded, it will share the kernel's address space too.
The kernel build system (kbuild), uses conditional compilation to decide which parts of the kernel are compiled. kbuild is independent of the Yocto build system.
In this recipe, we will explain how kbuild works.
How to do it...
The kernel kbuild system reads its configuration at build time from a .config
text file in the kernel root directory. This is referred to as the kernel configuration file. It is a text file where each line contains a single configuration variable that starts with the CONFIG_
prefix.
There are multiple ways to modify a kernel configuration file:
- Manually editing the
.config
file, although this is not recommended. - Using one of the user interfaces the kernel...