Commit c1177979 authored by Martin Rodriguez Reboredo's avatar Martin Rodriguez Reboredo Committed by Daniel Borkmann
Browse files

btf, scripts: Exclude Rust CUs with pahole



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: default avatarEric Curtin <ecurtin@redhat.com>
Signed-off-by: default avatarEric Curtin <ecurtin@redhat.com>
Signed-off-by: default avatarMartin Rodriguez Reboredo <yakoyoku@gmail.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Tested-by: default avatarEric Curtin <ecurtin@redhat.com>
Reviewed-by: default avatarNeal Gompa <neal@gompa.dev>
Acked-by: default avatarMiguel Ojeda <ojeda@kernel.org>
Acked-by: default avatarArnaldo 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
parent dfff86f8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1935,7 +1935,7 @@ config RUST
	depends on !MODVERSIONS
	depends on !GCC_PLUGINS
	depends on !RANDSTRUCT
	depends on !DEBUG_INFO_BTF
	depends on !DEBUG_INFO_BTF || PAHOLE_HAS_LANG_EXCLUDE
	select CONSTRUCTORS
	help
	  Enables Rust support in the kernel.
+9 −0
Original line number Diff line number Diff line
@@ -389,6 +389,15 @@ config PAHOLE_HAS_BTF_TAG
	  btf_decl_tag) or not. Currently only clang compiler implements
	  these attributes, so make the config depend on CC_IS_CLANG.

config PAHOLE_HAS_LANG_EXCLUDE
	def_bool PAHOLE_VERSION >= 124
	help
	  Support for the --lang_exclude flag which makes pahole exclude
	  compilation units from the supplied language. Used in Kbuild to
	  omit Rust CUs which are not supported in version 1.24 of pahole,
	  otherwise it would emit malformed kernel and module binaries when
	  using DEBUG_INFO_BTF_MODULES.

config DEBUG_INFO_BTF_MODULES
	def_bool y
	depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF
+4 −0
Original line number Diff line number Diff line
@@ -19,5 +19,9 @@ 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}