Patch "scripts/faddr2line: Fix regression in name resolution on ppc64le" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scripts/faddr2line: Fix regression in name resolution on ppc64le

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scripts-faddr2line-fix-regression-in-name-resolution.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit f7479c324bb1714b05e9ca2db0356304f78d6f8b
Author: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
Date:   Tue Sep 27 13:22:11 2022 +0530

    scripts/faddr2line: Fix regression in name resolution on ppc64le
    
    [ Upstream commit 2d77de1581bb5b470486edaf17a7d70151131afd ]
    
    Commit 1d1a0e7c5100 ("scripts/faddr2line: Fix overlapping text section
    failures") can cause faddr2line to fail on ppc64le on some
    distributions, while it works fine on other distributions. The failure
    can be attributed to differences in the readelf output.
    
      $ ./scripts/faddr2line vmlinux find_busiest_group+0x00
      no match for find_busiest_group+0x00
    
    On ppc64le, readelf adds the localentry tag before the symbol name on
    some distributions, and adds the localentry tag after the symbol name on
    other distributions. This problem has been discussed previously:
    
      https://lore.kernel.org/bpf/20191211160133.GB4580@calabresa/
    
    This problem can be overcome by filtering out the localentry tags in the
    readelf output. Similar fixes are already present in the kernel by way
    of the following commits:
    
      1fd6cee127e2 ("libbpf: Fix VERSIONED_SYM_COUNT number parsing")
      aa915931ac3e ("libbpf: Fix readelf output parsing for Fedora")
    
    [jpoimboe: rework commit log]
    
    Fixes: 1d1a0e7c5100 ("scripts/faddr2line: Fix overlapping text section failures")
    Signed-off-by: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
    Acked-by: Naveen N. Rao <naveen.n.rao@xxxxxxxxxxxxxxxxxx>
    Reviewed-by: Thadeu Lima de Souza Cascardo <cascardo@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20220927075211.897152-1-srikar@xxxxxxxxxxxxxxxxxx
    Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
    Signed-off-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/scripts/faddr2line b/scripts/faddr2line
index 57099687e5e1..9e730b805e87 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -73,7 +73,8 @@ command -v ${ADDR2LINE} >/dev/null 2>&1 || die "${ADDR2LINE} isn't installed"
 find_dir_prefix() {
 	local objfile=$1
 
-	local start_kernel_addr=$(${READELF} --symbols --wide $objfile | ${AWK} '$8 == "start_kernel" {printf "0x%s", $2}')
+	local start_kernel_addr=$(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' |
+		${AWK} '$8 == "start_kernel" {printf "0x%s", $2}')
 	[[ -z $start_kernel_addr ]] && return
 
 	local file_line=$(${ADDR2LINE} -e $objfile $start_kernel_addr)
@@ -177,7 +178,7 @@ __faddr2line() {
 				found=2
 				break
 			fi
-		done < <(${READELF} --symbols --wide $objfile | ${AWK} -v sec=$sym_sec '$7 == sec' | sort --key=2)
+		done < <(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' | ${AWK} -v sec=$sym_sec '$7 == sec' | sort --key=2)
 
 		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"
@@ -258,7 +259,7 @@ __faddr2line() {
 
 		DONE=1
 
-	done < <(${READELF} --symbols --wide $objfile | ${AWK} -v fn=$sym_name '$4 == "FUNC" && $8 == fn')
+	done < <(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' | ${AWK} -v fn=$sym_name '$4 == "FUNC" && $8 == fn')
 }
 
 [[ $# -lt 2 ]] && usage



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux