]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
rust: Disallow BTF generation with Rust + LTO
authorMatthew Maurer <mmaurer@google.com>
Wed, 8 Jan 2025 23:35:08 +0000 (23:35 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 Mar 2025 19:54:23 +0000 (12:54 -0700)
commit 5daa0c35a1f0e7a6c3b8ba9cb721e7d1ace6e619 upstream.

The kernel cannot currently self-parse BTF containing Rust debug
information. pahole uses the language of the CU to determine whether to
filter out debug information when generating the BTF. When LTO is
enabled, Rust code can cross CU boundaries, resulting in Rust debug
information in CUs labeled as C. This results in a system which cannot
parse its own BTF.

Signed-off-by: Matthew Maurer <mmaurer@google.com>
Cc: stable@vger.kernel.org
Fixes: c1177979af9c ("btf, scripts: Exclude Rust CUs with pahole")
Link: https://lore.kernel.org/r/20250108-rust-btf-lto-incompat-v1-1-60243ff6d820@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
init/Kconfig

index 7256fa127530ff893604722a740885551d50c777..293c565c62168e29d539caa4930d3c76244c31b2 100644 (file)
@@ -1958,7 +1958,7 @@ config RUST
        depends on !MODVERSIONS
        depends on !GCC_PLUGIN_RANDSTRUCT
        depends on !RANDSTRUCT
-       depends on !DEBUG_INFO_BTF || PAHOLE_HAS_LANG_EXCLUDE
+       depends on !DEBUG_INFO_BTF || (PAHOLE_HAS_LANG_EXCLUDE && !LTO)
        depends on !CFI_CLANG || HAVE_CFI_ICALL_NORMALIZE_INTEGERS_RUSTC
        select CFI_ICALL_NORMALIZE_INTEGERS if CFI_CLANG
        depends on !CALL_PADDING || RUSTC_VERSION >= 108100