- rust/Makefile: pass `pin_init{,_internal}-cfgs` from rust/Makefile to
scripts/generate_rust_analyzer.py.
- scripts/generate_rust_analyzer.py: centralize `cfg` lookup in
`append_crate` to avoid having to do so for each crate. Remove
hardcoded `cfg`s for `pin-init{,-internal}` now that these are passed
from `rust/Makefile`.
Reviewed-by: Jesung Yang <y.j3ms.n@gmail.com>
Acked-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@kernel.org>
---
rust/Makefile | 2 ++
scripts/generate_rust_analyzer.py | 13 +++++--------
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/rust/Makefile b/rust/Makefile
index 280a18617627..2461c5835a7e 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -583,6 +583,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
diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py
index 147d0cc94068..b96d3cbe3df1 100755
--- a/scripts/generate_rust_analyzer.py
+++ b/scripts/generate_rust_analyzer.py
@@ -35,7 +35,9 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, core_edit
crates_indexes = {}
crates_cfgs = args_crates_cfgs(cfgs)
- def append_crate(display_name, root_module, deps, cfg=[], is_workspace_member=True, is_proc_macro=False, edition="2021"):
+ def append_crate(display_name, root_module, deps, cfg=None, is_workspace_member=True, is_proc_macro=False, edition="2021"):
+ if cfg is None:
+ cfg = crates_cfgs.get(display_name, [])
crate = {
"display_name": display_name,
"root_module": str(root_module),
@@ -60,7 +62,7 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, core_edit
def append_sysroot_crate(
display_name,
deps,
- cfg=[],
+ cfg=None,
edition="2021",
):
append_crate(
@@ -75,7 +77,7 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, core_edit
# 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)`.
- append_sysroot_crate("core", [], cfg=crates_cfgs.get("core", []), edition=core_edition)
+ append_sysroot_crate("core", [], edition=core_edition)
append_sysroot_crate("alloc", ["core"])
append_sysroot_crate("std", ["alloc", "core"])
append_sysroot_crate("proc_macro", ["core", "std"])
@@ -90,21 +92,18 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, core_edit
"proc_macro2",
srctree / "rust" / "proc-macro2" / "lib.rs",
["core", "alloc", "std", "proc_macro"],
- cfg=crates_cfgs["proc_macro2"],
)
append_crate(
"quote",
srctree / "rust" / "quote" / "lib.rs",
["alloc", "proc_macro", "proc_macro2"],
- cfg=crates_cfgs["quote"],
)
append_crate(
"syn",
srctree / "rust" / "syn" / "lib.rs",
["proc_macro", "proc_macro2", "quote"],
- cfg=crates_cfgs["syn"],
)
append_crate(
@@ -124,7 +123,6 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, core_edit
"pin_init_internal",
srctree / "rust" / "pin-init" / "internal" / "src" / "lib.rs",
[],
- cfg=["kernel"],
is_proc_macro=True,
)
@@ -132,7 +130,6 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, core_edit
"pin_init",
srctree / "rust" / "pin-init" / "src" / "lib.rs",
["core", "pin_init_internal", "macros"],
- cfg=["kernel"],
)
append_crate(
--
2.52.0
On Tue, Jan 27, 2026 at 2:56 PM Tamir Duberstein <tamird@kernel.org> wrote:
>
> - rust/Makefile: pass `pin_init{,_internal}-cfgs` from rust/Makefile to
> scripts/generate_rust_analyzer.py.
> - scripts/generate_rust_analyzer.py: centralize `cfg` lookup in
> `append_crate` to avoid having to do so for each crate. Remove
> hardcoded `cfg`s for `pin-init{,-internal}` now that these are passed
> from `rust/Makefile`.
>
> Reviewed-by: Jesung Yang <y.j3ms.n@gmail.com>
> Acked-by: Benno Lossin <lossin@kernel.org>
> Signed-off-by: Tamir Duberstein <tamird@kernel.org>
I may still take #1 this cycle, but this one you will need either way
next cycle, so:
Acked-by: Miguel Ojeda <ojeda@kernel.org>
By the way, the commit messages (in the kernel, I know e.g. some GNU
projects do it differently) are not typically bullet points, i.e. they
usually tell a story and make the points relate to each other, so e.g.
it could say that what the first bullet point mentions is needed for
the second etc.
(I am mentioning this sort of thing since you will be taking commits
from others etc.)
Thanks!
Cheers,
Miguel
On Tue, Jan 27, 2026 at 10:05 AM Miguel Ojeda
<miguel.ojeda.sandonis@gmail.com> wrote:
>
> On Tue, Jan 27, 2026 at 2:56 PM Tamir Duberstein <tamird@kernel.org> wrote:
> >
> > - rust/Makefile: pass `pin_init{,_internal}-cfgs` from rust/Makefile to
> > scripts/generate_rust_analyzer.py.
> > - scripts/generate_rust_analyzer.py: centralize `cfg` lookup in
> > `append_crate` to avoid having to do so for each crate. Remove
> > hardcoded `cfg`s for `pin-init{,-internal}` now that these are passed
> > from `rust/Makefile`.
> >
> > Reviewed-by: Jesung Yang <y.j3ms.n@gmail.com>
> > Acked-by: Benno Lossin <lossin@kernel.org>
> > Signed-off-by: Tamir Duberstein <tamird@kernel.org>
>
> I may still take #1 this cycle, but this one you will need either way
> next cycle, so:
>
> Acked-by: Miguel Ojeda <ojeda@kernel.org>
>
> By the way, the commit messages (in the kernel, I know e.g. some GNU
> projects do it differently) are not typically bullet points, i.e. they
> usually tell a story and make the points relate to each other, so e.g.
> it could say that what the first bullet point mentions is needed for
> the second etc.
>
> (I am mentioning this sort of thing since you will be taking commits
> from others etc.)
Makes sense, thanks. I'll reword into paragraph form on apply.
Thanks!
Tamir
© 2016 - 2026 Red Hat, Inc.