Re: [PATCH v2] rust: bug: fix warn_on macro build error on UML

Miguel Ojeda <[email protected]>
Newsgroups org.kernel.vger.rust-for-linux,org.kernel.vger.stable
Message-ID <CANiq72k0iFw84GTq+PUUnFb-+3NfeSJWoGFOua9Q9Q0umceU0w@mail.gmail.com>
On Fri, Aug 7, 2026 at 1:24 PM FUJITA Tomonori <[email protected]> wrote:
>
> From: FUJITA Tomonori <[email protected]>
>
> Callers that go through `kernel::prelude` have `CStrExt` in scope, but
> code inside the `kernel` crate imports explicitly and may not. Using
> `warn_on!` from such a module fails to build on UML, which is the only
> configuration where `warn_flags!` needs a C string pointer rather than an
> inline asm bug entry:
>
> error[E0599]: no method named `as_char_ptr` found for reference `&ffi::CStr` in the current scope
>    --> linux/rust/kernel/bug.rs:83:49
>     |
>  83 |                 $crate::c_str!(::core::file!()).as_char_ptr(),
>     |                                                 ^^^^^^^^^^^
>     |
>    ::: linux/rust/kernel/time.rs:427:9
>     |
> 427 |         warn_on!(self.nanos < 0);
>     |         ------------------------ in this macro invocation
>     |
>     = help: items from traits can only be used if the trait is in scope
>     = note: this error originates in the macro `$crate::warn_flags` which comes from the expansion of the macro `warn_on` (in Nightly builds, run with -Z mac)
> help: trait `CStrExt` which provides `as_char_ptr` is implemented but not in scope; perhaps you want to import it
>    --> linux/rust/kernel/time.rs:27:1
>     |
>  27 + use crate::str::CStrExt;
>
> Call the method through its fully qualified path, which resolves
> without any import at the expansion site.
>
> Cc: [email protected]
> Fixes: dff64b072708 ("rust: Add warn_on macro")
> Signed-off-by: FUJITA Tomonori <[email protected]>

Applied to `rust-next` -- thanks!

Cheers,
Miguel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.