mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-15 02:05:33 +00:00
Documentation/kbuild: Document storage of symbol information
Document where exported and imported symbols are kept, format options, and limitations. Signed-off-by: Matthew Maurer <mmaurer@google.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
e8639b7ef0
commit
272f8a6d62
@ -423,6 +423,26 @@ Symbols From the Kernel (vmlinux + modules)
|
||||
1) It lists all exported symbols from vmlinux and all modules.
|
||||
2) It lists the CRC if CONFIG_MODVERSIONS is enabled.
|
||||
|
||||
Version Information Formats
|
||||
---------------------------
|
||||
|
||||
Exported symbols have information stored in __ksymtab or __ksymtab_gpl
|
||||
sections. Symbol names and namespaces are stored in __ksymtab_strings,
|
||||
using a format similar to the string table used for ELF. If
|
||||
CONFIG_MODVERSIONS is enabled, the CRCs corresponding to exported
|
||||
symbols will be added to the __kcrctab or __kcrctab_gpl.
|
||||
|
||||
If CONFIG_BASIC_MODVERSIONS is enabled (default with
|
||||
CONFIG_MODVERSIONS), imported symbols will have their symbol name and
|
||||
CRC stored in the __versions section of the importing module. This
|
||||
mode only supports symbols of length up to 64 bytes.
|
||||
|
||||
If CONFIG_EXTENDED_MODVERSIONS is enabled (required to enable both
|
||||
CONFIG_MODVERSIONS and CONFIG_RUST at the same time), imported symbols
|
||||
will have their symbol name recorded in the __version_ext_names
|
||||
section as a series of concatenated, null-terminated strings. CRCs for
|
||||
these symbols will be recorded in the __version_ext_crcs section.
|
||||
|
||||
Symbols and External Modules
|
||||
----------------------------
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user