Re: [PATCH v2 0/6] `RUSTC_VERSION` and re-config/re-build support on compiler change

From: Nicolas Schier
Date: Wed Sep 04 2024 - 15:32:51 EST


On Mon, Sep 02, 2024 at 06:55:27PM +0200, Miguel Ojeda wrote:
> This series mainly adds support for `CONFIG_RUSTC_VERSION` (which is needed for
> other upcoming series) as well as support for rebuilding the kernel when the
> Rust compiler version text changes, plus other secondary improvements.
>
> v1: https://lore.kernel.org/rust-for-linux/20240808221138.873750-1-ojeda@xxxxxxxxxx/
> v2:
>
> - Dropped patch #2 "kbuild: rust: make command for `RUSTC_VERSION_TEXT` closer
> to the `CC` one" (Masahiro, Björn).
>
> In other words, now the `RUSTC_VERSION_TEXT` command is kept as it
> was, without `LC_ALL=1` nor `| head -n1`.
>
> - Replaced `macros` crate dependency with a comment in the code that `fixdep`
> will find, since we can do it for that one, unlike `core` (Masahiro,
> Nicolas).
>
> - Added patch (here #5) to add a warning when the Rust compiler used to build
> the kernel differs from the one used to build an out-of-tree module, like
> the C side does (Nicolas).
>
> If the patch is not wanted, then it can be skipped without much loss, since
> anyway Rust will fail to compile in that case. However, it would be nice to
> have to prevent potentially unexpected situations and to clarify the errors
> that `rustc` would emit later. See the commit message for more details.
>
> - Rewrapped comment to stay under 80 lines (Nicolas).
>
> - Picked up a couple tags that could more or less be reasonably taken given
> the changes to v2. Re-runs of tests welcome!
>
> Miguel Ojeda (6):
> kbuild: rust: add `CONFIG_RUSTC_VERSION`
> kbuild: rust: re-run Kconfig if the version text changes
> kbuild: rust: rebuild if the version text changes
> kbuild: rust: replace proc macros dependency on `core.o` with the
> version text
> kbuild: rust: warn if the out-of-tree compiler differs from the kernel
> one
> docs: rust: include other expressions in conditional compilation
> section
>
> Documentation/rust/general-information.rst | 8 +++++++
> Makefile | 18 ++++++++++-----
> init/Kconfig | 11 ++++++++-
> rust/Makefile | 7 +++---
> rust/macros/lib.rs | 4 ++++
> scripts/rustc-version.sh | 26 ++++++++++++++++++++++
> 6 files changed, 64 insertions(+), 10 deletions(-)
> create mode 100755 scripts/rustc-version.sh
>
>
> base-commit: a335e95914046c6bed45c0d17cabcd483682cf5e
> --
> 2.46.0
>

the whole series looks good to me. Thanks for the good explanations.

Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx>

Kind regards,
Nicolas