Message ID | 20240902165535.1101978-1-ojeda@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | `RUSTC_VERSION` and re-config/re-build support on compiler change | expand |
On Mon, Sep 2, 2024 at 6:55 PM Miguel Ojeda <ojeda@kernel.org> 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@kernel.org/ > 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 I re-ran the same tests as for v1. Tested-by: Alice Ryhl <aliceryhl@google.com>
On Tue, Sep 3, 2024 at 1:35 PM Alice Ryhl <aliceryhl@google.com> wrote: > > I re-ran the same tests as for v1. > > Tested-by: Alice Ryhl <aliceryhl@google.com> Thanks a lot! Cheers, Miguel
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@kernel.org/ > 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@fjasle.eu> Kind regards, Nicolas
On Wed, Sep 4, 2024 at 9:32 PM Nicolas Schier <nicolas@fjasle.eu> wrote: > > the whole series looks good to me. Thanks for the good explanations. > > Reviewed-by: Nicolas Schier <nicolas@fjasle.eu> Thanks a lot Nicolas, I appreciate the quick review and the kind words. Cheers, Miguel
On Mon, Sep 2, 2024 at 6:55 PM Miguel Ojeda <ojeda@kernel.org> 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. Applied to `rust-next` -- thanks everyone! Just to be extra safe, I did not add patch #5 ("kbuild: rust: warn if the out-of-tree compiler differs from the kernel one") for the moment to give people more time to look at it, but we can add it later if nobody shouts. Cheers, Miguel