Home

Modulesymvers

Module.symvers is a file produced by the Linux kernel build system that records the version information of exported symbols for modules built against a particular kernel. When symbol versioning is enabled (CONFIG_MODVERSIONS), the build process assigns a version CRC to each exported symbol and writes these entries into Module.symvers. This file is used by the kbuild system to verify that external or out-of-tree modules are built against a kernel with matching symbol versions.

Contents and purpose: Each entry in Module.symvers associates a symbol name with its version hash. The primary

Generation and location: Module.symvers is generated during the kernel build, typically in the build output directory,

Usage and implications: Module developers and administrators use Module.symvers to ensure that external modules are compiled

See also: Kernel modules, symbol versioning, modpost, EXPORT_SYMBOL, and CONFIG_MODVERSIONS.

purpose
is
to
enable
strict
compatibility
checks
between
the
running
kernel
and
loadable
modules.
If
a
module
asks
for
a
symbol
whose
version
does
not
match
the
kernel’s,
the
module
will
fail
to
load,
preventing
potential
instability
due
to
incompatible
interfaces.
by
the
modpost
step.
It
is
not
usually
committed
into
the
kernel
source
tree,
but
a
corresponding
copy
is
often
kept
to
aid
building
external
modules
against
a
specific
kernel
version.
When
rebuilding
the
kernel
with
the
same
configuration,
a
new
Module.symvers
will
reflect
any
changes
to
exported
symbols.
against
the
correct
symbol
versions.
If
the
file
is
missing
or
out
of
date,
module
compilation
may
succeed
but
loading
can
fail
due
to
version
mismatches.
It
is
distinct
from
vermagic,
which
encodes
kernel
version,
compiler
version,
and
other
build
flags
used
to
determine
overall
module
compatibility.