kallsyms: support "big" kernel symbols
authorMiguel Ojeda <ojeda@kernel.org>
Mon, 5 Apr 2021 02:58:39 +0000 (04:58 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Fri, 11 Feb 2022 02:20:25 +0000 (03:20 +0100)
commitae45d5d7dc111be61c577f072fed2d3d55db7112
tree16735507b11cf2e45d6f18c2cae90fc94b8fc01d
parentdfd42facf1e4ada021b939b4e19c935dcdd55566
kallsyms: support "big" kernel symbols

Rust symbols can become quite long due to namespacing introduced
by modules, types, traits, generics, etc.

Increasing to 255 is not enough in some cases, and therefore
we need to introduce longer lengths to the symbol table.

In order to avoid increasing all lengths to 2 bytes (since most
of them are small, including many Rust ones), we use ULEB128 to
keep smaller symbols in 1 byte, with the rest in 2 bytes.

Co-developed-by: Alex Gaynor <alex.gaynor@gmail.com>
Signed-off-by: Alex Gaynor <alex.gaynor@gmail.com>
Co-developed-by: Wedson Almeida Filho <wedsonaf@google.com>
Signed-off-by: Wedson Almeida Filho <wedsonaf@google.com>
Co-developed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Gary Guo <gary@garyguo.net>
Co-developed-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Co-developed-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
kernel/kallsyms.c
scripts/kallsyms.c