]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
scripts/faddr2line: Fix vmlinux detection on arm64
authorJosh Poimboeuf <jpoimboe@kernel.org>
Thu, 21 Jul 2022 18:01:23 +0000 (11:01 -0700)
committerStefan Bader <stefan.bader@canonical.com>
Mon, 17 Oct 2022 09:57:00 +0000 (11:57 +0200)
BugLink: https://bugs.launchpad.net/bugs/1990162
[ 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>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
scripts/faddr2line

index 94ed98dd899f3041c8ee5583ffa225f2f0eacc36..57099687e5e1d97074bcaa040fd9919c141bfb18 100755 (executable)
@@ -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