Re: [PATCH] rust: workaround `rustdoc` target modifiers bug
From: Miguel Ojeda
Date: Tue Aug 12 2025 - 15:55:20 EST
On Sun, Jul 27, 2025 at 11:23 AM Miguel Ojeda <ojeda@xxxxxxxxxx> wrote:
>
> Starting with Rust 1.88.0 (released 2025-06-26), `rustdoc` complains
> about a target modifier mismatch in configurations where `-Zfixed-x18`
> is passed:
>
> error: mixing `-Zfixed-x18` will cause an ABI mismatch in crate `rust_out`
> |
> = help: the `-Zfixed-x18` flag modifies the ABI so Rust crates compiled with different values of this flag cannot be used together safely
> = note: unset `-Zfixed-x18` in this crate is incompatible with `-Zfixed-x18=` in dependency `core`
> = help: set `-Zfixed-x18=` in this crate or unset `-Zfixed-x18` in `core`
> = help: if you are sure this will not cause problems, you may use `-Cunsafe-allow-abi-mismatch=fixed-x18` to silence this error
>
> The reason is that `rustdoc` was not passing the target modifiers when
> configuring the session options, and thus it would report a mismatch
> that did not exist as soon as a target modifier is used in a dependency.
>
> We did not notice it in the kernel until now because `-Zfixed-x18` has
> been a target modifier only since 1.88.0 (and it is the only one we use
> so far).
>
> The issue has been reported upstream [1] and a fix has been submitted
> [2], including a test similar to the kernel case.
>
> Meanwhile, conditionally pass `-Cunsafe-allow-abi-mismatch=fixed-x18`
> to workaround the issue on our side.
>
> Reported-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> Closes: https://lore.kernel.org/rust-for-linux/36cdc798-524f-4910-8b77-d7b9fac08d77@xxxxxxxxxxxxxxxx/
> Link: https://github.com/rust-lang/rust/issues/144521 [1]
> Link: https://github.com/rust-lang/rust/pull/144523 [2]
> Signed-off-by: Miguel Ojeda <ojeda@xxxxxxxxxx>
Applied to `rust-fixes` -- thanks everyone!
[ This is now fixed upstream (thanks Guillaume for the quick review),
so it will be fixed in Rust 1.90.0 (expected 2025-09-18).
- Miguel ]
Cheers,
Miguel