kernel_samsung_a53x/scripts
Carlos Llamas 82265de464 scripts/decode_stacktrace.sh: optionally use LLVM utilities
[ Upstream commit efbd6398353315b7018e6943e41fee9ec35e875f ]

GNU's addr2line can have problems parsing a vmlinux built with LLVM,
particularly when LTO was used.  In order to decode the traces correctly
this patch adds the ability to switch to LLVM's utilities readelf and
addr2line.  The same approach is followed by Will in [1].

Before:
  $ scripts/decode_stacktrace.sh vmlinux < kernel.log
  [17716.240635] Call trace:
  [17716.240646] skb_cow_data (??:?)
  [17716.240654] esp6_input (ld-temp.o:?)
  [17716.240666] xfrm_input (ld-temp.o:?)
  [17716.240674] xfrm6_rcv (??:?)
  [...]

After:
  $ LLVM=1 scripts/decode_stacktrace.sh vmlinux < kernel.log
  [17716.240635] Call trace:
  [17716.240646] skb_cow_data (include/linux/skbuff.h:2172 net/core/skbuff.c:4503)
  [17716.240654] esp6_input (net/ipv6/esp6.c:977)
  [17716.240666] xfrm_input (net/xfrm/xfrm_input.c:659)
  [17716.240674] xfrm6_rcv (net/ipv6/xfrm6_input.c:172)
  [...]

Note that one could set CROSS_COMPILE=llvm- instead to hack around this
issue.  However, doing so can break the decodecode routine as it will
force the selection of other LLVM utilities down the line e.g.  llvm-as.

[1] https://lore.kernel.org/all/20230914131225.13415-3-will@kernel.org/

Link: https://lkml.kernel.org/r/20230929034836.403735-1-cmllamas@google.com
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Elliot Berman <quic_eberman@quicinc.com>
Tested-by: Justin Stitt <justinstitt@google.com>
Cc: Will Deacon <will@kernel.org>
Cc: John Stultz <jstultz@google.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Tom Rix <trix@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-18 12:13:34 +01:00
..
atomic Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
basic Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
clang-tools Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
coccinelle Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
crypto Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dtc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dummy-tools Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fmp Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gcc-plugins randstruct: Fix gcc-plugin performance mode to stay in group 2024-11-18 11:43:20 +01:00
gdb Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
genksyms Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kconfig kconfig: fix memory leak from range properties 2024-11-18 12:11:26 +01:00
ksymoops Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lego Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mod modpost: trim leading spaces when processing source files list 2024-11-18 12:13:29 +01:00
package Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
selinux Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tracing Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
adjust_autoksyms.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
as-version.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
asn1_compiler.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bin2c.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bloat-o-meter Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bootgraph.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bpf_helpers_doc.py Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cc-can-link.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
check-sysctl-docs Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
check_extable.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
checkincludes.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
checkkconfigsymbols.py Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
checkpatch.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
checkstack.pl checkstack: fix printed address 2024-11-18 12:11:41 +01:00
checksyscalls.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
checkversion.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
clang-version.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cleanfile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cleanpatch Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
coccicheck Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
config Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
const_structs.checkpatch Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
decode_stacktrace.sh scripts/decode_stacktrace.sh: optionally use LLVM utilities 2024-11-18 12:13:34 +01:00
decodecode Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
depmod.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dev-needs.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
diffconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
documentation-file-ref-check Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
export_report.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
extract-cert.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
extract-ikconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
extract-module-sig.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
extract-sys-certs.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
extract-vmlinux Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
extract_xc3028.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
faddr2line Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
file-size.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
find-unused-docs.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gcc-goto.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gcc-ld Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gcc-version.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gcc-x86_32-has-stack-protector.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gcc-x86_64-has-stack-protector.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gen_autoksyms.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gen_ksymdeps.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
generate_cfi_kallsyms.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
generate_initcall_order.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
get_abi.pl scripts/get_abi: fix source path leak 2024-11-18 12:12:58 +01:00
get_dvb_firmware Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
get_maintainer.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gfp-translate Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
headerdep.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
headers_check.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
headers_install.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
insert-sys-cert.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
jobserver-exec Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kallsyms.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kbuild.include Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig.include Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kernel-doc stddef: Introduce DECLARE_FLEX_ARRAY() helper 2024-11-18 12:12:59 +01:00
ld-version.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
leaking_addresses.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Lindent Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
link-vmlinux.sh kbuild: Fix changing ELF file type for output of gen_btf for big endian 2024-11-18 12:13:30 +01:00
lld-version.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.asm-generic Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.build Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.clean Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.dtbinst Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.extrawarn Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.gcc-plugins Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.headersinst Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.host Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.kasan Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.kcov Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.kcsan Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.lib Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.modfinal Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.modinst Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.modpost Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.modsign Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.package Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.ubsan Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile.userprogs Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
makelst Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
markup_oops.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mkcompile_h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mkmakefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mksysmap Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mkuboot.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module.lds.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
modules-check.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nsdeps Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
objdiff Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pahole-flags.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
parse-maintainers.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
patch-kernel Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
profile2linkerlist.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
prune-kernel Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
recordmcount.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
recordmcount.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
recordmcount.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
setlocalversion scripts: Don't append '-dirty' to Kernel name 2024-06-15 16:21:18 -03:00
show_delta Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sign-file.c sign-file: Fix incorrect return values check 2024-11-18 12:11:49 +01:00
sorttable.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sorttable.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
spdxcheck-test.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
spdxcheck.py Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
spelling.txt Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sphinx-pre-install Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
split-man.pl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stackdelta Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stackusage Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
subarch.include Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tags.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tools-support-relr.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
unifdef.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ver_linux Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xen-hypercalls.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xz_wrap.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00