From: Miguel Ojeda <ojeda@kernel.org>
To: Miguel Ojeda <ojeda@kernel.org>,
Wedson Almeida Filho <wedsonaf@gmail.com>,
Alex Gaynor <alex.gaynor@gmail.com>
Cc: "Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"Andreas Hindborg" <a.hindborg@samsung.com>,
"Alice Ryhl" <aliceryhl@google.com>,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
patches@lists.linux.dev, "Masahiro Yamada" <masahiroy@kernel.org>,
"Nathan Chancellor" <nathan@kernel.org>,
"Nicolas Schier" <nicolas@fjasle.eu>,
linux-kbuild@vger.kernel.org
Subject: [PATCH 04/13] rust: relax most deny-level lints to warnings
Date: Mon, 1 Jul 2024 20:36:14 +0200 [thread overview]
Message-ID: <20240701183625.665574-5-ojeda@kernel.org> (raw)
In-Reply-To: <20240701183625.665574-1-ojeda@kernel.org>
Since we are starting to support several Rust toolchains, lints (including
Clippy ones) now may behave differently and lint groups may include
new lints.
Therefore, to maximize the chances a given version works, relax some
deny-level lints to warnings. It may also make our lives a bit easier
while developing new code or refactoring.
To be clear, the requirements for in-tree code are still the same, since
Rust code still needs to be warning-free (patches should be clean under
`WERROR=y`) and the set of lints is not changed.
`unsafe_op_in_unsafe_fn` is left unmodified, i.e. as an error, since
1) it is simple enough that it should not have false positives (unlike
e.g. `rust_2018_idioms`'s `explicit_outlives_requirements`) and 2) it is
becoming the default in the language (warn-by-default in Rust 2024 [1] and
ideally an error later on) and thus it should also be very well tested.
Link: https://github.com/rust-lang/rust/pull/112038 [1]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
Makefile | 22 +++++++++++-----------
rust/Makefile | 4 ++--
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/Makefile b/Makefile
index 4d36f943b3b1..056176a55d63 100644
--- a/Makefile
+++ b/Makefile
@@ -461,17 +461,17 @@ KBUILD_USERLDFLAGS := $(USERLDFLAGS)
# host programs.
export rust_common_flags := --edition=2021 \
-Zbinary_dep_depinfo=y \
- -Dunsafe_op_in_unsafe_fn -Drust_2018_idioms \
- -Dunreachable_pub -Dnon_ascii_idents \
+ -Dunsafe_op_in_unsafe_fn -Wrust_2018_idioms \
+ -Wunreachable_pub -Wnon_ascii_idents \
-Wmissing_docs \
- -Drustdoc::missing_crate_level_docs \
- -Dclippy::correctness -Dclippy::style \
- -Dclippy::suspicious -Dclippy::complexity \
- -Dclippy::perf \
- -Dclippy::let_unit_value -Dclippy::mut_mut \
- -Dclippy::needless_bitwise_bool \
- -Dclippy::needless_continue \
- -Dclippy::no_mangle_with_rust_abi \
+ -Wrustdoc::missing_crate_level_docs \
+ -Wclippy::correctness -Wclippy::style \
+ -Wclippy::suspicious -Wclippy::complexity \
+ -Wclippy::perf \
+ -Wclippy::let_unit_value -Wclippy::mut_mut \
+ -Wclippy::needless_bitwise_bool \
+ -Wclippy::needless_continue \
+ -Wclippy::no_mangle_with_rust_abi \
-Wclippy::dbg_macro
KBUILD_HOSTCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
@@ -573,7 +573,7 @@ KBUILD_RUSTFLAGS := $(rust_common_flags) \
-Csymbol-mangling-version=v0 \
-Crelocation-model=static \
-Zfunction-sections=n \
- -Dclippy::float_arithmetic
+ -Wclippy::float_arithmetic
KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
diff --git a/rust/Makefile b/rust/Makefile
index f70d5e244fee..4c03e53d3084 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -421,7 +421,7 @@ ifneq ($(or $(CONFIG_ARM64),$(and $(CONFIG_RISCV),$(CONFIG_64BIT))),)
endif
$(obj)/core.o: private skip_clippy = 1
-$(obj)/core.o: private skip_flags = -Dunreachable_pub
+$(obj)/core.o: private skip_flags = -Wunreachable_pub
$(obj)/core.o: private rustc_objcopy = $(foreach sym,$(redirect-intrinsics),--redefine-sym $(sym)=__rust$(sym))
$(obj)/core.o: private rustc_target_flags = $(core-cfgs)
$(obj)/core.o: $(RUST_LIB_SRC)/core/src/lib.rs FORCE
@@ -435,7 +435,7 @@ $(obj)/compiler_builtins.o: $(src)/compiler_builtins.rs $(obj)/core.o FORCE
+$(call if_changed_dep,rustc_library)
$(obj)/alloc.o: private skip_clippy = 1
-$(obj)/alloc.o: private skip_flags = -Dunreachable_pub
+$(obj)/alloc.o: private skip_flags = -Wunreachable_pub
$(obj)/alloc.o: private rustc_target_flags = $(alloc-cfgs)
$(obj)/alloc.o: $(RUST_LIB_SRC)/alloc/src/lib.rs $(obj)/compiler_builtins.o FORCE
+$(call if_changed_dep,rustc_library)
--
2.45.2
next prev parent reply other threads:[~2024-07-01 18:37 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-01 18:36 [PATCH 00/13] Support several Rust toolchain versions Miguel Ojeda
2024-07-01 18:36 ` [PATCH 01/13] rust: macros: indent list item in `paste!`'s docs Miguel Ojeda
2024-07-01 19:59 ` Björn Roy Baron
2024-07-04 14:25 ` Finn Behrens
2024-07-01 18:36 ` [PATCH 02/13] rust: init: simplify from `map_err` to `inspect_err` Miguel Ojeda
2024-07-01 20:05 ` Björn Roy Baron
2024-07-01 21:58 ` Miguel Ojeda
2024-07-02 6:28 ` Benno Lossin
2024-07-02 12:27 ` Alice Ryhl
2024-07-01 18:36 ` [PATCH 03/13] rust: allow `dead_code` for never constructed bindings Miguel Ojeda
2024-07-01 20:06 ` Björn Roy Baron
2024-07-04 14:30 ` Finn Behrens
2024-07-01 18:36 ` Miguel Ojeda [this message]
2024-07-01 19:48 ` [PATCH 04/13] rust: relax most deny-level lints to warnings Björn Roy Baron
2024-07-01 21:58 ` Miguel Ojeda
2024-07-04 14:34 ` Finn Behrens
2024-07-01 18:36 ` [PATCH 05/13] rust: simplify Clippy warning flags set Miguel Ojeda
2024-07-04 14:37 ` Finn Behrens
2024-07-01 18:36 ` [PATCH 06/13] rust: start supporting several compiler versions Miguel Ojeda
[not found] ` <70F3F3DD-AAE6-445A-AC16-C71A06C4EA06@kloenk.dev>
2024-07-04 15:26 ` Miguel Ojeda
2024-07-01 18:36 ` [PATCH 07/13] rust: warn about `bindgen` versions 0.66.0 and 0.66.1 Miguel Ojeda
2024-07-04 14:47 ` Finn Behrens
2024-07-01 18:36 ` [PATCH 08/13] rust: work around `bindgen` 0.69.0 issue Miguel Ojeda
2024-07-04 14:51 ` Finn Behrens
2024-07-01 18:36 ` [PATCH 09/13] rust: avoid assuming a particular `bindgen` build Miguel Ojeda
2024-07-01 18:36 ` [PATCH 10/13] rust: start supporting several `bindgen` versions Miguel Ojeda
2024-07-01 18:36 ` [PATCH 11/13] kbuild: rust: add `rustc-version` support Miguel Ojeda
2024-07-04 15:05 ` Finn Behrens
2024-07-01 18:36 ` [PATCH 12/13] rust: support the new `-Zub-checks` flag Miguel Ojeda
2024-07-04 15:07 ` Finn Behrens
2024-07-01 18:36 ` [PATCH 13/13] docs: rust: quick-start: add section on Linux distributions Miguel Ojeda
2024-07-05 6:19 ` Andrea Righi
2024-07-05 6:46 ` Fabian Grünbichler
2024-07-05 12:52 ` Miguel Ojeda
2024-07-05 13:09 ` Fabian Grünbichler
2024-07-05 13:46 ` Miguel Ojeda
2024-07-05 10:50 ` Miguel Ojeda
2024-07-05 12:59 ` Andrea Righi
2024-07-02 6:25 ` [PATCH 00/13] Support several Rust toolchain versions Benno Lossin
2024-07-02 9:41 ` Miguel Ojeda
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240701183625.665574-5-ojeda@kernel.org \
--to=ojeda@kernel.org \
--cc=a.hindborg@samsung.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=gary@garyguo.net \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=nathan@kernel.org \
--cc=nicolas@fjasle.eu \
--cc=patches@lists.linux.dev \
--cc=rust-for-linux@vger.kernel.org \
--cc=wedsonaf@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.