On Mon, Aug 26, 2024 at 12:36:45PM -0400, Will Hawkins wrote: > On Mon, Aug 26, 2024 at 10:58 AM Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote: > > commit ce516fb0cf2a3d9fc45c2a9c7ab2cf4bd24965a0 > > Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx> > > Date: Sun Jul 8 19:47:26 2007 -0300 > > [LIB]: Support DW_AT_MIPS_linkage_name > > Another C++ specific case: > > - class TypeTemplate ByName(const string &, size_t); > > + class TypeTemplate ByName(const string &, size_t); /* linkage=_ZN4ROOT6Reflex12TypeTemplate6ByNameERKSsj */ > > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxxxx> > > So its not really "static" or "stern", but the mangled name in languages oops, "extern" > > such as C++, so I think this patch needs reworking, there is ambiguity > > on the "linkage" term, we should use some other term :-\ > > Completely understand! I will rework it and propose something different. > > I am just thankful that you are so welcoming of the contribution! Your > enthusiasm has made a contributor for life! Another recommendation, please don't point the field to strings like "extern" or "static", as DWARF is not language specific, pahole manages to handle C mostly, C++ to a great degree but I also used it with Go, Rust. We want to make it more language agnostic, so while the "linkage" as a mangled name is not language specific, "static" or "extern" may be. So just keep it using the DWARF constant/enumeration, so that at dwarves_fprintf.c time we can, based on the language encoded in the debugging info (for BTF we assume C until we introduce some way to encode Rust (The kernel can be written using Rust, so we're bound to have something in that direction introduced in BTF at some point)). - Arnaldo