diff options
| author | Piyush Patle <piyushpatle228@gmail.com> | 2026-04-11 03:42:54 +0530 |
|---|---|---|
| committer | Nathan Chancellor <nathan@kernel.org> | 2026-04-29 15:22:22 -0700 |
| commit | a0d7be4ab3ece46919418c57d0de4b6fd4ce7590 (patch) | |
| tree | 2506d7b7cf5c14f9c1ff998146859639ec223244 /Documentation/kbuild/makefiles.rst | |
| parent | 254f49634ee16a731174d2ae34bc50bd5f45e731 (diff) | |
| download | linux-next-a0d7be4ab3ece46919418c57d0de4b6fd4ce7590.tar.gz linux-next-a0d7be4ab3ece46919418c57d0de4b6fd4ce7590.zip | |
kbuild: document generation of offset header files
Replace the placeholder reference with a description of how Kbuild
generates offset header files such as include/generated/asm-offsets.h.
Remove the corresponding TODO entry now that this is documented.
Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
Reviewed-by: Nicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/20260410221257.191517-1-piyushpatle228@gmail.com
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Diffstat (limited to 'Documentation/kbuild/makefiles.rst')
| -rw-r--r-- | Documentation/kbuild/makefiles.rst | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/Documentation/kbuild/makefiles.rst b/Documentation/kbuild/makefiles.rst index 24a4708d26e8..7521cae7d56f 100644 --- a/Documentation/kbuild/makefiles.rst +++ b/Documentation/kbuild/makefiles.rst @@ -1285,8 +1285,39 @@ Example:: In this example, the file target maketools will be processed before descending down in the subdirectories. -See also chapter XXX-TODO that describes how kbuild supports -generating offset header files. +Generating offset header files +------------------------------ + +The ``include/generated/asm-offsets.h`` header exposes C structure +member offsets and other compile-time constants to assembly code. It +is generated from ``arch/$(SRCARCH)/kernel/asm-offsets.c``. + +The source file uses ``DEFINE()``, ``OFFSET()``, ``BLANK()`` and +``COMMENT()`` from ``<linux/kbuild.h>``. These emit marker strings +through inline asm that Kbuild extracts from the compiled assembly +output. + +Example:: + + #include <linux/kbuild.h> + #include <linux/sched.h> + + int main(void) + { + OFFSET(TSK_ACTIVE_MM, task_struct, active_mm); + DEFINE(THREAD_SIZE, THREAD_SIZE); + BLANK(); + return 0; + } + +The rules are defined in the top-level ``Kbuild`` and +``scripts/Makefile.lib``. The header is built during Kbuild's +``prepare`` phase, after ``archprepare`` and before descending into +subdirectories. + +The same mechanism generates ``include/generated/bounds.h`` from +``kernel/bounds.c`` and ``include/generated/rq-offsets.h`` from +``kernel/sched/rq-offsets.c``. List directories to visit when descending ----------------------------------------- @@ -1690,9 +1721,3 @@ Credits - Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de> - Updates by Sam Ravnborg <sam@ravnborg.org> - Language QA by Jan Engelhardt <jengelh@gmx.de> - -TODO -==== - -- Generating offset header files. -- Add more variables to chapters 7 or 9? |
