[CC] - Compiles the C file into an designated object file. The object file contains the archicture assembler code of that .c file. As it might also reference parts outside its scope. For example calling another function in another .c file. The function calls are left open within the object file, which is later included by the linker. Therefore
[LD] is the proces of linking the compiled objects together, and wire up the function calls that has been left open by the compiler. However, many parts are linked together as the core part of the kernel, while some parts are left out. And thus you see
[CC (M)] for those parts which are compiled as points to be loaded into the kernel at runtime. But which are not linked together in the monolithic part of the kernel. But instead can be inserted when the kernel is booted.
When i'm developing a linux driver, i've read about how to write linux kbuild makefile through this document
I know kbuild system use makefile variables such as obj-y obj-m to determine what to build and how to build.
But what …
Can anyone explain what the target "oldconfig" does exactly in the Linux kernel makefile? I see it referenced in some build documentation but never explained what it does exactly.
I would like to know the difference between the two build_flavor's viz.
eng & user-debug
The difference between eng and user build flavors is quiet evident. But eng and user-debug is confusing me somewhat. What are the additional Debug …