On Fri, May 09, 2025 at 01:17:16PM -0700, Josh Poimboeuf wrote: > diff --git a/tools/objtool/include/objtool/elf.h > b/tools/objtool/include/objtool/elf.h > index 4cfd09e66cb5..f62ac8081f27 100644 > --- a/tools/objtool/include/objtool/elf.h > +++ b/tools/objtool/include/objtool/elf.h > @@ -17,6 +17,7 @@ > #include <objtool/checksum_types.h> > #include <arch/elf.h> > > +#define SEC_NAME_LEN 512 > #define SYM_NAME_LEN 512 > > #ifdef LIBELF_USE_DEPRECATED > @@ -50,10 +51,12 @@ struct section { > bool _changed, text, rodata, noinstr, init, truncate; > struct reloc *relocs; > unsigned long nr_alloc_relocs; > + struct section *twin; > }; > > struct symbol { > struct list_head list; > + struct list_head global_list; > struct rb_node node; > struct elf_hash_node hash; > struct elf_hash_node name_hash; > @@ -79,10 +82,13 @@ struct symbol { > u8 cold : 1; > u8 prefix : 1; > u8 debug_checksum : 1; > + u8 changed : 1; > + u8 included : 1; > struct list_head pv_target; > struct reloc *relocs; > struct section *group_sec; > struct checksum csum; > + struct symbol *twin, *clone; > }; > > struct reloc { > @@ -100,6 +106,7 @@ struct elf { > const char *name, *tmp_name; > unsigned int num_files; > struct list_head sections; > + struct list_head symbols; > unsigned long num_relocs; > > int symbol_bits;
ISTR us spending significant effort shrinking all this stuff. How does this affect vmlinux.o memory footprint etc?