Gary Guo
unread,Sep 23, 2026, 8:51:22 PM (10 days ago) Sep 23Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Daniel Almeida, Tamir Duberstein, Alexandre Courbot, Onur Özkan, Brendan Higgins, David Gow, Rae Moar, linux-k...@vger.kernel.org, kuni...@googlegroups.com, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org
From: Gary Guo <
ga...@garyguo.net>
Currently rustdoc will generate function names like
"_doctest_main__home_gary_Projects_linux_rust_kernel_io_rs_824_0" for a
doctest located at rust/kernel/io.rs:824, when building with separate
outdir using `O=`. This creates overlong symbol names and is also not
reproducible.
Fix it by doing a custom remapping to trim it to something like
`_doctest_main_rust_kernel_io_rs_824_0`.
Signed-off-by: Gary Guo <
ga...@garyguo.net>
---
scripts/rustdoc_test_builder.rs | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/scripts/rustdoc_test_builder.rs b/scripts/rustdoc_test_builder.rs
index df864437cef7..561f912c2000 100644
--- a/scripts/rustdoc_test_builder.rs
+++ b/scripts/rustdoc_test_builder.rs
@@ -72,6 +72,11 @@ fn main() {
// Figure out a smaller test name based on the generated function name.
let name = rustdoc_function_name.split_once("_rust_kernel_").unwrap().1;
+ // The rustdoc function name can include the absolute path when building with `O=` which is
+ // undesireable and create overlong symbol names. Remap it to use relative path.
+ let trimmed_function_name = format!("_doctest_main_rust_kernel_{name}");
+ let body = body.replace(&rustdoc_function_name, &trimmed_function_name);
+
let path = format!("rust/test/doctests/kernel/{name}");
std::fs::write(path, body.as_bytes()).unwrap();
base-commit: 93f51579e7df248780214094418f205253383cc5
--
2.54.0