linux-next: build failure in final build
Mark Brown
maintainerHi all,
During the final builds, today's linux-next build (arm64 allyesconfig) failed like this:
error[E0405]: cannot find trait AlwaysRefCounted in module $crate::types
--> /tmp/next/build/rust/kernel/drm/gem/mod.rs:42:62
|
42 | unsafe impl $( <$( $tparam_id ),+> )? $crate::types::AlwaysRefCounted
for $type
| ^^^^^^^^^^^^^^^^
| not
| found in
| `$crate::types`
... 308 | impl_aref_for_gem_obj!(impl<T> for Object<T> where T:
DriverObject);
| -------------------------------------------------------------------
| in this macro invocation
|
= note: this error originates in the macro `impl_aref_for_gem_obj` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider importing this trait
|
7 + use crate::sync::aref::AlwaysRefCounted;
|error[E0277]: the trait bound Object<T>: aref::AlwaysRefCounted is not satisfied
--> /tmp/next/build/rust/kernel/drm/gem/mod.rs:142:41
|
142 | impl<T: DriverObject> IntoGEMObject for Object<T> {
| ^^^^^^^^^ the trait
| `aref::AlwaysRefCounted`
| is not implemented for
| `Object<T>`
| = help: the following other types implement trait aref::AlwaysRefCounted:
Chip<T>
Credential
FwNode
I2cAdapter
I2cClient
Interface
LocalFile
Mm
and 12 others
note: required by a bound in IntoGEMObject
--> /tmp/next/build/rust/kernel/drm/gem/mod.rs:96:59
|
96 | pub trait IntoGEMObject: Sized + super::private::Sealed +
AlwaysRefCounted {
| ^^^^^^^^^^^^^^^^
| required
| by this
| bound in
| `IntoGEMObject`error[E0277]: the trait bound Object<T>: aref::AlwaysRefCounted is not satisfied
--> /tmp/next/build/rust/kernel/drm/gem/mod.rs:320:37
|
320 | impl<T: DriverObject> AllocImpl for Object<T> {
| ^^^^^^^^^ the trait
| `aref::AlwaysRefCounted` is
| not implemented for `Object<T>`
| = help: the following other types implement trait aref::AlwaysRefCounted:
Chip<T>
Credential
FwNode
I2cAdapter
I2cClient
Interface
LocalFile
Mm
and 12 others
note: required for Object<T> to implement IntoGEMObject
--> /tmp/next/build/rust/kernel/drm/gem/mod.rs:96:11
|
96 | pub trait IntoGEMObject: Sized + super::private::Sealed +
AlwaysRefCounted {
| ^^^^^^^^^^^^^
note: required by a bound in `AllocImpl`
--> /tmp/next/build/rust/kernel/drm/driver.rs:90:47
|
90 | pub trait AllocImpl: super::private::Sealed + drm::gem::IntoGEMObject
{
| ^^^^^^^^^^^^^^^^^^^^^^^
| required by this
| bound in `AllocImpl`error: aborting due to 3 previous errors
Some errors have detailed explanations: E0277, E0405. For more information about an error, try rustc --explain E0277.
Presumably caused by one of these commits:
442ba16a5a513 (rust: gem: Introduce DriverObject::Args) e64b9cc293ae7 (rust: drm: Add gem::impl_aref_for_gem_obj!)
I have ignored this for today.
Quoted 6 lines · Mark Brown
Hi all,
During the final builds, today's linux-next build (arm64 allyesconfig) failed like this:
error[E0405]: cannot find trait
AlwaysRefCountedin module
This is due to a conflict with rust-next, which eventually removed the old import path of AlwaysRefCounted (kernel::types::AlwaysRefCounted).
We've already fixed this up in [1] and applied it to the drm-rust tree, so those should be gone for the next round.
Thanks,
Danilo