[tip: objtool/core] scripts/faddr2line: Check only two symbols when calculating symbol size

From: tip-bot2 for Brian Johannesmeyer
Date: Mon Jul 08 2024 - 07:49:40 EST


The following commit has been merged into the objtool/core branch of tip:

Commit-ID: c02904f05ff805d6c0631634d5751ebd338f75ec
Gitweb: https://git.kernel.org/tip/c02904f05ff805d6c0631634d5751ebd338f75ec
Author: Brian Johannesmeyer <bjohannesmeyer@xxxxxxxxx>
AuthorDate: Mon, 15 Apr 2024 16:55:38 +02:00
Committer: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
CommitterDate: Tue, 02 Jul 2024 23:38:37 -07:00

scripts/faddr2line: Check only two symbols when calculating symbol size

Rather than looping through each symbol in a particular section to
calculate a symbol's size, grep for the symbol and its immediate
successor, and only use those two symbols.

Signed-off-by: Brian Johannesmeyer <bjohannesmeyer@xxxxxxxxx>
Link: https://lore.kernel.org/r/20240415145538.1938745-8-bjohannesmeyer@xxxxxxxxx
Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
---
scripts/faddr2line | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/faddr2line b/scripts/faddr2line
index 1fa6bee..fe0cc45 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -252,7 +252,7 @@ __faddr2line() {
found=2
break
fi
- done < <(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} -v sec=$sym_sec '$7 == sec' | sort --key=2)
+ done < <(echo "${ELF_SYMS}" | sed 's/\[.*\]//' | ${AWK} -v sec=$sym_sec '$7 == sec' | sort --key=2 | ${GREP} -A1 --no-group-separator " ${sym_name}$")

if [[ $found = 0 ]]; then
warn "can't find symbol: sym_name: $sym_name sym_sec: $sym_sec sym_addr: $sym_addr sym_elf_size: $sym_elf_size"