objtool: Get rid of reloc->addend
Get the addend from the embedded GElf_Rel[a] struct. With allyesconfig + CONFIG_DEBUG_INFO: - Before: peak heap memory consumption: 42.10G - After: peak heap memory consumption: 40.37G Link: https://lore.kernel.org/r/ad2354f95d9ddd86094e3f7687acfa0750657784.1685464332.git.jpoimboe@kernel.org Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
This commit is contained in:
@@ -623,11 +623,11 @@ int arch_decode_instruction(struct objtool_file *file, const struct section *sec
|
||||
if (!immr || strcmp(immr->sym->name, "pv_ops"))
|
||||
break;
|
||||
|
||||
idx = (immr->addend + 8) / sizeof(void *);
|
||||
idx = (reloc_addend(immr) + 8) / sizeof(void *);
|
||||
|
||||
func = disp->sym;
|
||||
if (disp->sym->type == STT_SECTION)
|
||||
func = find_symbol_by_offset(disp->sym->sec, disp->addend);
|
||||
func = find_symbol_by_offset(disp->sym->sec, reloc_addend(disp));
|
||||
if (!func) {
|
||||
WARN("no func for pv_ops[]");
|
||||
return -1;
|
||||
|
||||
@@ -105,7 +105,7 @@ struct reloc *arch_find_switch_table(struct objtool_file *file,
|
||||
!text_reloc->sym->sec->rodata)
|
||||
return NULL;
|
||||
|
||||
table_offset = text_reloc->addend;
|
||||
table_offset = reloc_addend(text_reloc);
|
||||
table_sec = text_reloc->sym->sec;
|
||||
|
||||
if (reloc_type(text_reloc) == R_X86_64_PC32)
|
||||
|
||||
Reference in New Issue
Block a user