rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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, "Jonathan Corbet" <corbet@lwn.net>,
	linux-doc@vger.kernel.org
Subject: [PATCH v2 09/13] rust: start supporting several `bindgen` versions
Date: Tue,  9 Jul 2024 18:06:04 +0200	[thread overview]
Message-ID: <20240709160615.998336-10-ojeda@kernel.org> (raw)
In-Reply-To: <20240709160615.998336-1-ojeda@kernel.org>

With both the workaround for `bindgen` 0.69.0 and the warning about
0.66.0 and 0.66.1 in place, start supporting several `bindgen` versions,
like it was done for the Rust compiler in a previous patch.

All other versions, including the latest 0.69.4, build without errors.

The `bindgen` project, like Rust, has also agreed to have the kernel
in their CI [1] -- thanks! This should help both projects: `bindgen`
will be able to detect early issues like those mentioned above, and the
kernel will be very likely build with new releases (at least for the
basic configuration being tested).

Link: https://github.com/rust-lang/rust-bindgen/pull/2851 [1]
Tested-by: Benno Lossin <benno.lossin@proton.me>
Tested-by: Andreas Hindborg <a.hindborg@samsung.com>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
v2:
  - Update suggested `cargo` command to just install the latest, i.e.
    removing the `--version` flag, following the same pattern as Finn's
    suggestion to use `stable `for the `rustup` command.

 Documentation/rust/quick-start.rst | 7 ++++---
 scripts/rust_is_available.sh       | 8 --------
 scripts/rust_is_available_test.py  | 5 -----
 3 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/Documentation/rust/quick-start.rst b/Documentation/rust/quick-start.rst
index 5ea8c8914942..66cefbab8f9a 100644
--- a/Documentation/rust/quick-start.rst
+++ b/Documentation/rust/quick-start.rst
@@ -107,11 +107,12 @@ bindgen
 *******

 The bindings to the C side of the kernel are generated at build time using
-the ``bindgen`` tool. A particular version is required.
+the ``bindgen`` tool.

-Install it via (note that this will download and build the tool from source)::
+Install it, for instance, via (note that this will download and build the tool
+from source)::

-	cargo install --locked --version $(scripts/min-tool-version.sh bindgen) bindgen-cli
+	cargo install --locked bindgen-cli

 ``bindgen`` uses the ``clang-sys`` crate to find a suitable ``libclang`` (which
 may be linked statically, dynamically or loaded at runtime). By default, the
diff --git a/scripts/rust_is_available.sh b/scripts/rust_is_available.sh
index 1881e8f2a2b9..4531f9dd19d3 100755
--- a/scripts/rust_is_available.sh
+++ b/scripts/rust_is_available.sh
@@ -161,14 +161,6 @@ if [ "$rust_bindings_generator_cversion" -lt "$rust_bindings_generator_min_cvers
 	echo >&2 "***"
 	exit 1
 fi
-if [ "$rust_bindings_generator_cversion" -gt "$rust_bindings_generator_min_cversion" ]; then
-	echo >&2 "***"
-	echo >&2 "*** Rust bindings generator '$BINDGEN' is too new. This may or may not work."
-	echo >&2 "***   Your version:     $rust_bindings_generator_version"
-	echo >&2 "***   Expected version: $rust_bindings_generator_min_version"
-	echo >&2 "***"
-	warning=1
-fi

 # Check that the `libclang` used by the Rust bindings generator is suitable.
 #
diff --git a/scripts/rust_is_available_test.py b/scripts/rust_is_available_test.py
index 0481aab862ec..d6d54b7ea42a 100755
--- a/scripts/rust_is_available_test.py
+++ b/scripts/rust_is_available_test.py
@@ -231,11 +231,6 @@ else:
         result = self.run_script(self.Expected.FAILURE, { "BINDGEN": bindgen })
         self.assertIn(f"Rust bindings generator '{bindgen}' is too old.", result.stderr)

-    def test_bindgen_new_version(self):
-        bindgen = self.generate_bindgen_version("bindgen 0.999.0")
-        result = self.run_script(self.Expected.SUCCESS_WITH_WARNINGS, { "BINDGEN": bindgen })
-        self.assertIn(f"Rust bindings generator '{bindgen}' is too new. This may or may not work.", result.stderr)
-
     def test_bindgen_libclang_failure(self):
         bindgen = self.generate_bindgen_libclang_failure()
         result = self.run_script(self.Expected.FAILURE, { "BINDGEN": bindgen })
--
2.45.2

  parent reply	other threads:[~2024-07-09 16:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-09 16:05 [PATCH v2 00/13] Support several Rust toolchain versions Miguel Ojeda
2024-07-09 16:05 ` [PATCH v2 01/13] rust: macros: indent list item in `paste!`'s docs Miguel Ojeda
2024-07-09 16:05 ` [PATCH v2 02/13] rust: init: simplify from `map_err` to `inspect_err` Miguel Ojeda
2024-07-09 16:05 ` [PATCH v2 03/13] rust: allow `dead_code` for never constructed bindings Miguel Ojeda
2024-07-09 16:05 ` [PATCH v2 04/13] rust: relax most deny-level lints to warnings Miguel Ojeda
2024-07-09 16:06 ` [PATCH v2 05/13] rust: simplify Clippy warning flags set Miguel Ojeda
2024-07-09 16:06 ` [PATCH v2 06/13] rust: start supporting several compiler versions Miguel Ojeda
2024-07-09 16:06 ` [PATCH v2 07/13] rust: avoid assuming a particular `bindgen` build Miguel Ojeda
2024-07-09 16:06 ` [PATCH v2 08/13] rust: work around `bindgen` 0.69.0 issue Miguel Ojeda
2024-07-09 16:06 ` Miguel Ojeda [this message]
2024-07-09 16:06 ` [PATCH v2 10/13] rust: warn about `bindgen` versions 0.66.0 and 0.66.1 Miguel Ojeda
2024-07-09 16:06 ` [PATCH v2 11/13] kbuild: rust: add `rustc-version` support Miguel Ojeda
2024-07-09 17:26   ` Miguel Ojeda
2024-07-09 16:06 ` [PATCH v2 12/13] rust: support the new `-Zub-checks` flag Miguel Ojeda
2024-07-09 16:06 ` [PATCH v2 13/13] docs: rust: quick-start: add section on Linux distributions Miguel Ojeda
2024-07-10  9:04 ` [PATCH v2 00/13] Support several Rust toolchain versions 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=20240709160615.998336-10-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=corbet@lwn.net \
    --cc=gary@garyguo.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).