linux/tools/objtool
Josh Poimboeuf aea8e10574 objtool: Fix weak symbol detection
[ Upstream commit 72567c630d ]

find_symbol_hole_containing() fails to find a symbol hole (aka stripped
weak symbol) if its section has no symbols before the hole.  This breaks
weak symbol detection if -ffunction-sections is enabled.

Fix that by allowing the interval tree to contain section symbols, which
are always at offset zero for a given section.

Fixes a bunch of (-ffunction-sections) warnings like:

  vmlinux.o: warning: objtool: .text.__x64_sys_io_setup+0x10: unreachable instruction

Fixes: 4adb236867 ("objtool: Ignore extra-symbol code")
Acked-by: Petr Mladek <pmladek@suse.com>
Tested-by: Joe Lawrence <joe.lawrence@redhat.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-12-18 13:54:42 +01:00
..
arch objtool/LoongArch: Mark special atomic instruction as INSN_BUG type 2025-09-25 11:13:45 +02:00
Documentation x86/alternatives, kvm: Fix a couple of CALLs without a frame pointer 2024-07-01 12:41:11 +02:00
include/objtool objtool: Fix C jump table annotations for Clang 2025-03-07 18:25:36 +01:00
.gitignore objtool: Install libsubcmd in build 2023-01-30 16:27:46 -08:00
Build objtool: Install libsubcmd in build 2023-01-30 16:27:46 -08:00
builtin-check.c objtool: Use "action" in error message to be consistent with help 2024-07-02 23:40:24 -07:00
check.c objtool: Fix standalone --hacks=jump_label 2025-12-18 13:54:41 +01:00
elf.c objtool: Fix weak symbol detection 2025-12-18 13:54:42 +01:00
Makefile objtool/LoongArch: Enable orc to be built 2024-03-11 22:23:47 +08:00
noreturns.h objtool: Add bch2_trans_unlocked_error() to bcachefs noreturns 2025-01-02 10:34:21 +01:00
objtool.c objtool: Propagate early errors 2023-10-05 17:01:11 -07:00
orc_dump.c objtool/x86: Separate arch-specific and generic parts 2024-03-11 22:23:47 +08:00
orc_gen.c objtool/x86: Separate arch-specific and generic parts 2024-03-11 22:23:47 +08:00
special.c x86/alternatives: Add nested alternatives macros 2024-06-11 17:13:08 +02:00
sync-check.sh objtool: Add objtool_types.h 2023-03-23 23:18:56 +01:00
weak.c objtool: Ditch subcommands 2022-04-22 12:32:01 +02:00