On Mon, Oct 21, 2024 at 03:38:06PM +0200, Paolo Bonzini wrote: > Date: Mon, 21 Oct 2024 15:38:06 +0200 > From: Paolo Bonzini <pbonz...@redhat.com> > Subject: Re: [PATCH 03/16] rust: pass rustc_args when building all crates > > On Mon, Oct 21, 2024 at 8:16 AM Zhao Liu <zhao1....@intel.com> wrote: > > unsafe_op_in_unsafe_fn is allowed in > > rust/qemu-api/src/lib.rs. So should we wrap the bindings in a separate > > lib (similar to the rust/bindings in the Linux kernel)? > > > > This way, the special lint settings can be applied only to the binding > > files, while the default lint checks can cover the other user > > development code. > > > > In addition, another thing that confuses me is why bindgen still > > generates code that does not follow the unsafe_op_in_unsafe_fn > > requirement. It seems that bindgen has supported unsafe_op_in_unsafe_fn > > since v0.62 [1, 2], but binding code we generated still violates > > unsafe_op_in_unsafe_fn. Is this a bug of bindgen? > > The plan is to support older versions of bindgen (0.60.x) as long as > Debian has them. One possibility to fix this is, as you said, to use a > completely separate crate. Another is to add #![allow()] to just the > bindings module, for example by changing bindgen.rs to > > #![allow(...)] > include!("bindgen.rs.inc") > > This is related to the fact that we don't have yet a good way to run > "clippy", because "cargo clippy" needs the bindgen.rs file. So we > should probably look at these issues at once.
Thank you. I agree, it's a better way. Regards, Zhao