mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-23 11:04:44 +08:00
c1177979af
Version 1.24 of pahole has the capability to exclude compilation units (CUs) of specific languages [1] [2]. Rust, as of writing, is not currently supported by pahole and if it's used with a build that has BTF debugging enabled it results in malformed kernel and module binaries [3]. So it's better for pahole to exclude Rust CUs until support for it arrives. Co-developed-by: Eric Curtin <ecurtin@redhat.com> Signed-off-by: Eric Curtin <ecurtin@redhat.com> Signed-off-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Tested-by: Eric Curtin <ecurtin@redhat.com> Reviewed-by: Neal Gompa <neal@gompa.dev> Acked-by: Miguel Ojeda <ojeda@kernel.org> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=49358dfe2aaae4e90b072332c3e324019826783f [1] Link: https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=8ee363790b7437283c53090a85a9fec2f0b0fbc4 [2] Link: https://github.com/Rust-for-Linux/linux/issues/735 [3] Link: https://lore.kernel.org/bpf/20230111152050.559334-1-yakoyoku@gmail.com
28 lines
716 B
Bash
Executable File
28 lines
716 B
Bash
Executable File
#!/bin/sh
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
extra_paholeopt=
|
|
|
|
if ! [ -x "$(command -v ${PAHOLE})" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
pahole_ver=$($(dirname $0)/pahole-version.sh ${PAHOLE})
|
|
|
|
if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then
|
|
# pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars
|
|
extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars"
|
|
fi
|
|
if [ "${pahole_ver}" -ge "121" ]; then
|
|
extra_paholeopt="${extra_paholeopt} --btf_gen_floats"
|
|
fi
|
|
if [ "${pahole_ver}" -ge "122" ]; then
|
|
extra_paholeopt="${extra_paholeopt} -j"
|
|
fi
|
|
if [ "${pahole_ver}" -ge "124" ]; then
|
|
# see PAHOLE_HAS_LANG_EXCLUDE
|
|
extra_paholeopt="${extra_paholeopt} --lang_exclude=rust"
|
|
fi
|
|
|
|
echo ${extra_paholeopt}
|