Re: [PATCH] scripts: generate_rust_analyzer: Add ffi crate

Tamir Duberstein
2025-04-04T13:24:12Z

On Fri, Apr 4, 2025 at 8:53 AM Lukas Fischer <kernel@o1oo11oo.de> wrote:
>
> Commit d072acda4862 ("rust: use custom FFI integer types") did not
> update rust-analyzer to include the new crate.
>
> To enable rust-analyzer support for these custom ffi types, add the
> `ffi` crate as a dependency to the `bindings`, `uapi` and `kernel`
> crates, which all directly depend on it.
>
> Fixes: d072acda4862 ("rust: use custom FFI integer types")
> Signed-off-by: Lukas Fischer <kernel@o1oo11oo.de>

Reviewed-by: Tamir Duberstein <tamird@gmail.com>

> ---
> scripts/generate_rust_analyzer.py | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py
> index cd41bc906fbd..fe663dd0c43b 100755
> --- a/scripts/generate_rust_analyzer.py
> +++ b/scripts/generate_rust_analyzer.py
> @@ -112,6 +112,12 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs):
> cfg=["kernel"],
> )
>
> + append_crate(
> + "ffi",
> + srctree / "rust" / "ffi.rs",
> + ["core", "compiler_builtins"],
> + )

The dependency on compiler_builtins looks weird to me, but it is that
way in the Makefile. We might want to revisit that, though.

> +
> def append_crate_with_generated(
> display_name,
> deps,
> @@ -131,9 +137,9 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs):
> "exclude_dirs": [],
> }
>
> - append_crate_with_generated("bindings", ["core"])
> - append_crate_with_generated("uapi", ["core"])
> - append_crate_with_generated("kernel", ["core", "macros", "build_error", "pin_init", "bindings", "uapi"])
> + append_crate_with_generated("bindings", ["core", "ffi"])
> + append_crate_with_generated("uapi", ["core", "ffi"])
> + append_crate_with_generated("kernel", ["core", "macros", "build_error", "pin_init", "ffi", "bindings", "uapi"])
>
> def is_root_crate(build_file, target):
> try:
>
> base-commit: a2cc6ff5ec8f91bc463fd3b0c26b61166a07eb11
> --
> 2.49.0
>