diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-04-20 11:28:27 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-04-20 11:28:27 +0300 |
commit | 616e143c9fd88562b4d2cb235834c620fe65ba22 (patch) | |
tree | db2f3fc5db49af8cbc0cd4439cd19b44972d6f66 /scripts/generate_rust_analyzer.py | |
parent | 932316d50d55fc2815f352cc873c3143bfe54372 (diff) | |
parent | d12acd7bc3d4ca813dc2360e6f5ca6bb1682c290 (diff) | |
download | linux-616e143c9fd88562b4d2cb235834c620fe65ba22.tar.xz |
Merge v6.14.3
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/generate_rust_analyzer.py')
-rwxr-xr-x | scripts/generate_rust_analyzer.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py index d1f5adbf33f9..adae71544cbd 100755 --- a/scripts/generate_rust_analyzer.py +++ b/scripts/generate_rust_analyzer.py @@ -8,6 +8,7 @@ import json import logging import os import pathlib +import subprocess import sys def args_crates_cfgs(cfgs): @@ -35,8 +36,7 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs): crates_cfgs = args_crates_cfgs(cfgs) def append_crate(display_name, root_module, deps, cfg=[], is_workspace_member=True, is_proc_macro=False): - crates_indexes[display_name] = len(crates) - crates.append({ + crate = { "display_name": display_name, "root_module": str(root_module), "is_workspace_member": is_workspace_member, @@ -47,7 +47,15 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs): "env": { "RUST_MODFILE": "This is only for rust-analyzer" } - }) + } + if is_proc_macro: + proc_macro_dylib_name = subprocess.check_output( + [os.environ["RUSTC"], "--print", "file-names", "--crate-name", display_name, "--crate-type", "proc-macro", "-"], + stdin=subprocess.DEVNULL, + ).decode('utf-8').strip() + crate["proc_macro_dylib_path"] = f"{objtree}/rust/{proc_macro_dylib_name}" + crates_indexes[display_name] = len(crates) + crates.append(crate) def append_sysroot_crate( display_name, @@ -82,7 +90,6 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs): ["std", "proc_macro"], is_proc_macro=True, ) - crates[-1]["proc_macro_dylib_path"] = f"{objtree}/rust/libmacros.so" append_crate( "build_error", |