linux/tools/objtool
Josh Poimboeuf 57f91f2596 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 2026-01-11 15:18:18 +01:00
..
arch/x86 objtool/x86: Fix SRSO mess 2023-08-27 21:01:31 +02:00
Documentation objtool: Update documentation 2022-04-22 12:32:05 +02:00
include/objtool objtool: Fix find_{symbol,func}_containing() 2026-01-11 15:18:17 +01:00
.gitignore objtool: Rework header include paths 2021-01-13 18:13:14 -06:00
Build objtool: Ditch subcommands 2022-04-22 12:32:01 +02:00
builtin-check.c x86/retbleed: Add fine grained Kconfig knobs 2022-06-29 17:43:41 +02:00
check.c objtool: Properly disable uaccess validation 2025-06-04 14:40:03 +02:00
elf.c objtool: Fix weak symbol detection 2026-01-11 15:18:18 +01:00
Makefile Kbuild updates for v5.19 2022-05-26 12:09:50 -07:00
objtool.c objtool: Propagate early errors 2023-11-20 11:51:50 +01:00
orc_dump.c x86/unwind/orc: Change REG_SP_INDIRECT 2021-02-10 20:53:51 +01:00
orc_gen.c Merge branch 'objtool/urgent' 2021-10-07 00:40:17 +02:00
special.c objtool,x86: Replace alternatives with .retpoline_sites 2021-10-28 23:25:25 +02:00
sync-check.sh Merge branch 'x86/cpu' into WIP.x86/core, to merge the NOP changes & resolve a semantic conflict 2021-04-02 12:36:30 +02:00
weak.c objtool: Ditch subcommands 2022-04-22 12:32:01 +02:00