Rust for Linux List
 help / color / mirror / Atom feed
* [PATCH] rust: kbuild: disambiguate `zerocopy_derive` for `rusttest`
@ 2026-08-23 19:35 Miguel Ojeda
  2026-08-23 19:56 ` Miguel Ojeda
  2026-08-25 23:36 ` Miguel Ojeda
  0 siblings, 2 replies; 3+ messages in thread
From: Miguel Ojeda @ 2026-08-23 19:35 UTC (permalink / raw)
  To: Miguel Ojeda, Nathan Chancellor, Nicolas Schier
  Cc: Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin,
	Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich,
	Daniel Almeida, Tamir Duberstein, Alexandre Courbot,
	Onur Özkan, rust-for-linux, linux-kbuild, Antoni Boucher,
	stable

The `rustc-dev` components for Rust 1.82.0 through 1.87.0 include a
precompiled `zerocopy_derive` procedural macro in the sysroot. This
range includes Rust 1.85.0, our minimum supported version.

This makes `rusttest` fail because the compiler finds both the sysroot
copy and the copy built in `rust/test`:

    error[E0464]: multiple candidates for `dylib` dependency `zerocopy_derive` found
      --> rust/kernel/prelude.rs:70:9
       |
    70 | pub use zerocopy_derive::{
       |         ^^^^^^^^^^^^^^^
       |
       = note: candidate #1: .../lib/rustlib/x86_64-unknown-linux-gnu/lib/libzerocopy_derive-54d2b38896fa6bc5.so
       = note: candidate #2: .../rust/test/libzerocopy_derive.so

Commit fe39a233ea52 ("rust: kbuild: disambiguate `zerocopy` for
`rusttest`") fixed the equivalent ambiguity for `zerocopy`.

Thus point to the dependency explicitly in this case too.

Cc: Antoni Boucher <bouanto@zoho.com>
Cc: stable@vger.kernel.org
Fixes: 506054980429 ("rust: zerocopy-derive: enable support in kbuild")
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
 rust/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/rust/Makefile b/rust/Makefile
index fbe0accc51a3..a346a01bb3eb 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -350,7 +350,8 @@ rusttestlib-pin_init: $(src)/pin-init/src/lib.rs rusttestlib-macros \
 rusttestlib-kernel: private rustc_target_flags = --extern ffi \
     --extern build_error --extern macros --extern pin_init \
     --extern bindings --extern uapi \
-    --extern zerocopy=$(objtree)/$(obj)/test/libzerocopy.rlib --extern zerocopy_derive
+    --extern zerocopy=$(objtree)/$(obj)/test/libzerocopy.rlib \
+    --extern zerocopy_derive=$(objtree)/$(obj)/test/libzerocopy_derive.so
 rusttestlib-kernel: $(src)/kernel/lib.rs rusttestlib-bindings rusttestlib-uapi \
     rusttestlib-build_error rusttestlib-pin_init $(obj)/$(libmacros_name) \
     $(obj)/bindings.o rusttestlib-zerocopy rusttestlib-zerocopy_derive FORCE

base-commit: d24f5cdbeff8b6a063fca92d0a1f94122a799b59
-- 
2.55.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] rust: kbuild: disambiguate `zerocopy_derive` for `rusttest`
  2026-08-23 19:35 [PATCH] rust: kbuild: disambiguate `zerocopy_derive` for `rusttest` Miguel Ojeda
@ 2026-08-23 19:56 ` Miguel Ojeda
  2026-08-25 23:36 ` Miguel Ojeda
  1 sibling, 0 replies; 3+ messages in thread
From: Miguel Ojeda @ 2026-08-23 19:56 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Nathan Chancellor, Nicolas Schier, Boqun Feng, Gary Guo,
	Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
	Trevor Gross, Danilo Krummrich, Daniel Almeida, Tamir Duberstein,
	Alexandre Courbot, Onur Özkan, rust-for-linux, linux-kbuild,
	Antoni Boucher, stable

On Sun, Aug 23, 2026 at 9:35 PM Miguel Ojeda <ojeda@kernel.org> wrote:
>
> +    --extern zerocopy_derive=$(objtree)/$(obj)/test/libzerocopy_derive.so

This should be:

    ... test/$(libzerocopy_derive_name)

as Sashiko mentions, for the macOS support, of course.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] rust: kbuild: disambiguate `zerocopy_derive` for `rusttest`
  2026-08-23 19:35 [PATCH] rust: kbuild: disambiguate `zerocopy_derive` for `rusttest` Miguel Ojeda
  2026-08-23 19:56 ` Miguel Ojeda
@ 2026-08-25 23:36 ` Miguel Ojeda
  1 sibling, 0 replies; 3+ messages in thread
From: Miguel Ojeda @ 2026-08-25 23:36 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Nathan Chancellor, Nicolas Schier, Boqun Feng, Gary Guo,
	Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
	Trevor Gross, Danilo Krummrich, Daniel Almeida, Tamir Duberstein,
	Alexandre Courbot, Onur Özkan, rust-for-linux, linux-kbuild,
	Antoni Boucher, stable

On Sun, Aug 23, 2026 at 9:35 PM Miguel Ojeda <ojeda@kernel.org> wrote:
>
> The `rustc-dev` components for Rust 1.82.0 through 1.87.0 include a
> precompiled `zerocopy_derive` procedural macro in the sysroot. This
> range includes Rust 1.85.0, our minimum supported version.
>
> This makes `rusttest` fail because the compiler finds both the sysroot
> copy and the copy built in `rust/test`:
>
>     error[E0464]: multiple candidates for `dylib` dependency `zerocopy_derive` found
>       --> rust/kernel/prelude.rs:70:9
>        |
>     70 | pub use zerocopy_derive::{
>        |         ^^^^^^^^^^^^^^^
>        |
>        = note: candidate #1: .../lib/rustlib/x86_64-unknown-linux-gnu/lib/libzerocopy_derive-54d2b38896fa6bc5.so
>        = note: candidate #2: .../rust/test/libzerocopy_derive.so
>
> Commit fe39a233ea52 ("rust: kbuild: disambiguate `zerocopy` for
> `rusttest`") fixed the equivalent ambiguity for `zerocopy`.
>
> Thus point to the dependency explicitly in this case too.
>
> Cc: Antoni Boucher <bouanto@zoho.com>
> Cc: stable@vger.kernel.org
> Fixes: 506054980429 ("rust: zerocopy-derive: enable support in kbuild")
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

Applied to `rust-fixes`.

Cheers,
Miguel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-08-25 23:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-23 19:35 [PATCH] rust: kbuild: disambiguate `zerocopy_derive` for `rusttest` Miguel Ojeda
2026-08-23 19:56 ` Miguel Ojeda
2026-08-25 23:36 ` Miguel Ojeda

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox