mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-05-24 06:34:55 +00:00
595.71.05
This commit is contained in:
66
kernel-open/pahole.sh
Executable file
66
kernel-open/pahole.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "$KBUILD_VERBOSE" = "1" ]; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
PAHOLE=${ORIG_PAHOLE:-pahole}
|
||||
# Use DRY_RUN=echo to print the command instead of executing it, for debugging.
|
||||
DRY_RUN=${DRY_RUN:-}
|
||||
|
||||
btf_encode=0
|
||||
lang_exclude=
|
||||
|
||||
# Parse args: detect BTF encoding and existing --lang_exclude, while
|
||||
# rebuilding the argument list without --lang_exclude.
|
||||
args_start=0
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--btf_features=*encode_force* | -J | --btf_encode | --btf_encode_force)
|
||||
btf_encode=1
|
||||
;;
|
||||
--lang_exclude=*)
|
||||
lang_exclude="${arg#*=}"
|
||||
# Drop this arg from the rebuilt list.
|
||||
if [ $args_start -eq 0 ]; then
|
||||
set --
|
||||
args_start=1
|
||||
fi
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
if [ $args_start -eq 0 ]; then
|
||||
set -- "$arg"
|
||||
args_start=1
|
||||
else
|
||||
set -- "$@" "$arg"
|
||||
fi
|
||||
done
|
||||
|
||||
# Capture anything the kernel is already excluding and extend it with c++.
|
||||
# Even if in future the kernel doesn't have to exclude other languages,
|
||||
# make sure to exclude c++ when generating encoding BTF.
|
||||
if [ $btf_encode -eq 1 ] || [ -n "$lang_exclude" ]; then
|
||||
if [ -n "$lang_exclude" ]; then
|
||||
lang_exclude="${lang_exclude},c++"
|
||||
else
|
||||
lang_exclude="c++"
|
||||
fi
|
||||
set -- --lang_exclude="$lang_exclude" "$@"
|
||||
|
||||
$DRY_RUN "$PAHOLE" "$@"
|
||||
ret=$?
|
||||
|
||||
# Until pahole 1.31, return code was still an error regardless of
|
||||
# --btf_encode_force / --btf_features=encode_force.
|
||||
# A pure version check is not possible as it's likely that pahole
|
||||
# from distros will have fixes backported. Just ignore the error for now.
|
||||
if [ $ret -ne 0 ]; then
|
||||
echo "pahole.sh: warning: pahole exited with status $ret (ignored)" >&2
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Do not override options or exit status, as this may interfere with the kernel
|
||||
# build system when determining pahole version and options.
|
||||
$DRY_RUN exec "$PAHOLE" "$@"
|
||||
Reference in New Issue
Block a user