summaryrefslogtreecommitdiff
path: root/scripts/faddr2line
diff options
context:
space:
mode:
authorJosh Poimboeuf <jpoimboe@kernel.org>2022-07-21 21:01:23 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-08-25 12:15:26 +0300
commit55c352108efb15022b6e12803d16e351c9ff3a1f (patch)
tree072daf884e0e3554b37c435fdefd5fc2111d74f0 /scripts/faddr2line
parent50f0424d83eeed6bee621e0e4500a59fd88c2fd7 (diff)
downloadlinux-55c352108efb15022b6e12803d16e351c9ff3a1f.tar.xz
scripts/faddr2line: Fix vmlinux detection on arm64
[ Upstream commit b6a5068854cfe372da7dee3224dcf023ed5b00cb ] Since commit dcea997beed6 ("faddr2line: Fix overlapping text section failures, the sequel"), faddr2line is completely broken on arm64. For some reason, on arm64, the vmlinux ELF object file type is ET_DYN rather than ET_EXEC. Check for both when determining whether the object is vmlinux. Modules and vmlinux.o have type ET_REL on all arches. Fixes: dcea997beed6 ("faddr2line: Fix overlapping text section failures, the sequel") Reported-by: John Garry <john.garry@huawei.com> Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Tested-by: John Garry <john.garry@huawei.com> Link: https://lore.kernel.org/r/dad1999737471b06d6188ce4cdb11329aa41682c.1658426357.git.jpoimboe@kernel.org Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'scripts/faddr2line')
-rwxr-xr-xscripts/faddr2line4
1 files changed, 3 insertions, 1 deletions
diff --git a/scripts/faddr2line b/scripts/faddr2line
index 2571caac3156..70f8c3ecd555 100755
--- a/scripts/faddr2line
+++ b/scripts/faddr2line
@@ -112,7 +112,9 @@ __faddr2line() {
# section offsets.
local file_type=$(${READELF} --file-header $objfile |
${AWK} '$1 == "Type:" { print $2; exit }')
- [[ $file_type = "EXEC" ]] && is_vmlinux=1
+ if [[ $file_type = "EXEC" ]] || [[ $file_type == "DYN" ]]; then
+ is_vmlinux=1
+ fi
# Go through each of the object's symbols which match the func name.
# In rare cases there might be duplicates, in which case we print all