1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/scripts/gendwarfksyms
Sami Tolvanen fa624569b7 gendwarfksyms: Add support for symbol type pointers
The compiler may choose not to emit type information in DWARF for
external symbols. Clang, for example, does this for symbols not
defined in the current TU.

To provide a way to work around this issue, add support for
__gendwarfksyms_ptr_<symbol> pointers that force the compiler to emit
the necessary type information in DWARF also for the missing symbols.

Example usage:

  #define GENDWARFKSYMS_PTR(sym) \
      static typeof(sym) *__gendwarfksyms_ptr_##sym __used  \
          __section(".discard.gendwarfksyms") = &sym;

  extern int external_symbol(void);
  GENDWARFKSYMS_PTR(external_symbol);

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2025-01-11 01:25:26 +09:00
..
examples gendwarfksyms: Add support for symbol type pointers 2025-01-11 01:25:26 +09:00
.gitignore tools: Add gendwarfksyms 2025-01-11 01:25:25 +09:00
cache.c gendwarfksyms: Limit structure expansion 2025-01-11 01:25:25 +09:00
die.c gendwarfksyms: Add symtypes output 2025-01-11 01:25:25 +09:00
dwarf.c gendwarfksyms: Add support for symbol type pointers 2025-01-11 01:25:26 +09:00
gendwarfksyms.c gendwarfksyms: Add support for kABI rules 2025-01-11 01:25:26 +09:00
gendwarfksyms.h gendwarfksyms: Add support for symbol type pointers 2025-01-11 01:25:26 +09:00
kabi.c gendwarfksyms: Add support for kABI rules 2025-01-11 01:25:26 +09:00
Makefile gendwarfksyms: Add support for kABI rules 2025-01-11 01:25:26 +09:00
symbols.c gendwarfksyms: Add support for symbol type pointers 2025-01-11 01:25:26 +09:00
types.c gendwarfksyms: Add symbol versioning 2025-01-11 01:25:25 +09:00