]> www.infradead.org Git - users/hch/misc.git/commit
rust: enable bindgen's `--enable-function-attribute-detection` flag
authorMiguel Ojeda <ojeda@kernel.org>
Wed, 14 Aug 2024 16:37:22 +0000 (18:37 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Tue, 20 Aug 2024 22:37:02 +0000 (00:37 +0200)
commit76501d19c6af43054492420ae53a9bd2d4de50b3
tree80ccfc2c33edb486b804a6239097b3f7f38501f3
parent1d15880378662ade209eb9289f9f03c98b431254
rust: enable bindgen's `--enable-function-attribute-detection` flag

`bindgen` is able to detect certain function attributes and annotate
functions correspondingly in its output for the Rust side, when the
`--enable-function-attribute-detection` is passed.

In particular, it is currently able to use `__must_check` in C
(`#[must_use]` in Rust), which give us a bunch of annotations that are
nice to have to prevent possible issues in Rust abstractions, e.g.:

     extern "C" {
    +    #[must_use]
         pub fn kobject_add(
             kobj: *mut kobject,
             parent: *mut kobject,
             fmt: *const core::ffi::c_char,
             ...
         ) -> core::ffi::c_int;
     }

Apparently, there are edge cases where this can make generation very slow,
which is why it is behind a flag [1], but it does not seem to affect us
in any major way at the moment.

Thus enable it.

Link: https://github.com/rust-lang/rust-bindgen/issues/1465
Link: https://lore.kernel.org/rust-for-linux/CANiq72=u5Nrz_NW3U3_VqywJkD8pECA07q2pFDd1wjtXOWdkAQ@mail.gmail.com/
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Tested-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Danilo Krummrich <dakr@kernel.org>
Link: https://lore.kernel.org/r/20240814163722.1550064-1-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
rust/Makefile