]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scripts: generate_rust_analyzer.py: reduce cfg plumbing
authorTamir Duberstein <tamird@kernel.org>
Tue, 27 Jan 2026 13:55:51 +0000 (08:55 -0500)
committerTamir Duberstein <tamird@kernel.org>
Mon, 9 Mar 2026 17:20:09 +0000 (13:20 -0400)
Pass `pin_init{,_internal}-cfgs` from rust/Makefile to
scripts/generate_rust_analyzer.py. Remove hardcoded `cfg`s in
scripts/generate_rust_analyzer.py for `pin-init{,-internal}` now that
these are passed from `rust/Makefile`.

Centralize `cfg` lookup in scripts/generate_rust_analyzer.py in
`append_crate` to avoid having to do so for each crate.

Reviewed-by: Jesung Yang <y.j3ms.n@gmail.com>
Acked-by: Benno Lossin <lossin@kernel.org>
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Link: https://patch.msgid.link/20260127-rust-analyzer-pin-init-duplication-v3-2-118c48c35e88@kernel.org
Signed-off-by: Tamir Duberstein <tamird@kernel.org>
rust/Makefile
scripts/generate_rust_analyzer.py

index 629b3bdd2b20620ce75f9bfe4e4dbd586d1304b8..061a4e7af3b87ca1526c7046f8128fa098243f3f 100644 (file)
@@ -592,6 +592,8 @@ rust-analyzer:
                --cfgs='proc_macro2=$(proc_macro2-cfgs)' \
                --cfgs='quote=$(quote-cfgs)' \
                --cfgs='syn=$(syn-cfgs)' \
+               --cfgs='pin_init_internal=$(pin_init_internal-cfgs)' \
+               --cfgs='pin_init=$(pin_init-cfgs)' \
                $(realpath $(srctree)) $(realpath $(objtree)) \
                $(rustc_sysroot) $(RUST_LIB_SRC) $(if $(KBUILD_EXTMOD),$(srcroot)) \
                > rust-project.json
index 2977dfff76b3a70f81d4dc3f1e713d631643de1d..b4a55344688dd12ec701a54aeded635b2315e5ae 100755 (executable)
@@ -78,7 +78,7 @@ def generate_crates(
         is_workspace_member: Optional[bool],
         edition: Optional[str],
     ) -> Crate:
-        cfg = cfg if cfg is not None else []
+        cfg = cfg if cfg is not None else crates_cfgs.get(display_name, [])
         is_workspace_member = (
             is_workspace_member if is_workspace_member is not None else True
         )
@@ -203,7 +203,7 @@ def generate_crates(
     # NB: sysroot crates reexport items from one another so setting up our transitive dependencies
     # here is important for ensuring that rust-analyzer can resolve symbols. The sources of truth
     # for this dependency graph are `(sysroot_src / crate / "Cargo.toml" for crate in crates)`.
-    core = append_sysroot_crate("core", [], cfg=crates_cfgs.get("core", []))
+    core = append_sysroot_crate("core", [])
     alloc = append_sysroot_crate("alloc", [core])
     std = append_sysroot_crate("std", [alloc, core])
     proc_macro = append_sysroot_crate("proc_macro", [core, std])
@@ -218,14 +218,12 @@ def generate_crates(
         "proc_macro2",
         srctree / "rust" / "proc-macro2" / "lib.rs",
         [core, alloc, std, proc_macro],
-        cfg=crates_cfgs["proc_macro2"],
     )
 
     quote = append_crate(
         "quote",
         srctree / "rust" / "quote" / "lib.rs",
         [core, alloc, std, proc_macro, proc_macro2],
-        cfg=crates_cfgs["quote"],
         edition="2018",
     )
 
@@ -233,7 +231,6 @@ def generate_crates(
         "syn",
         srctree / "rust" / "syn" / "lib.rs",
         [std, proc_macro, proc_macro2, quote],
-        cfg=crates_cfgs["syn"],
     )
 
     macros = append_proc_macro_crate(
@@ -252,14 +249,12 @@ def generate_crates(
         "pin_init_internal",
         srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs",
         [std, proc_macro, proc_macro2, quote, syn],
-        cfg=["kernel"],
     )
 
     pin_init = append_crate(
         "pin_init",
         srctree / "rust" / "pin-init" / "src" / "lib.rs",
         [core, compiler_builtins, pin_init_internal, macros],
-        cfg=["kernel"],
     )
 
     ffi = append_crate(