]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
objtool: Don't alias undefined symbols
authorJosh Poimboeuf <jpoimboe@kernel.org>
Thu, 20 Nov 2025 20:52:17 +0000 (12:52 -0800)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 21 Nov 2025 09:04:08 +0000 (10:04 +0100)
Objtool is mistakenly aliasing all undefined symbols.  That's obviously
wrong, though it has no consequence since objtool happens to only use
sym->alias for defined symbols.  Fix it regardless.

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/bc401173a7717757eee672fc1ca5a20451d77b86.1763671318.git.jpoimboe@kernel.org
tools/objtool/elf.c

index fffca31d47ed2dd5525ea7a73beb15245834a6f0..4f15643ad70c81c52a168b3a4e432a266499898d 100644 (file)
@@ -492,8 +492,8 @@ static int elf_add_symbol(struct elf *elf, struct symbol *sym)
        sym->len = sym->sym.st_size;
 
        __sym_for_each(iter, &sym->sec->symbol_tree, sym->offset, sym->offset) {
-               if (iter->offset == sym->offset && iter->type == sym->type &&
-                   iter->len == sym->len)
+               if (!is_undef_sym(iter) && iter->offset == sym->offset &&
+                   iter->type == sym->type && iter->len == sym->len)
                        iter->alias = sym;
        }