Commit 3c01a424 authored by Asahi Lina's avatar Asahi Lina Committed by Miguel Ojeda

rust: Enable the new_uninit feature for kernel and driver crates

The unstable new_uninit feature enables various library APIs to create
uninitialized containers, such as `Box::assume_init()`. This is
necessary to build abstractions that directly initialize memory at the
target location, instead of doing copies through the stack.

Will be used by the DRM scheduler abstraction in the kernel crate, and
by field-wise initialization (e.g. using `place!()` or a future
replacement macro which may itself live in `kernel`) in driver crates.

Link: https://github.com/Rust-for-Linux/linux/issues/879
Link: https://github.com/Rust-for-Linux/linux/issues/2
Link: https://github.com/rust-lang/rust/issues/63291Signed-off-by: default avatarAsahi Lina <lina@asahilina.net>
Reviewed-by: default avatarMartin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: default avatarGary Guo <gary@garyguo.net>
Reviewed-by: default avatarAndreas Hindborg <a.hindborg@samsung.com>
Reviewed-by: default avatarVincenzo Palazzo <vincenzopalazzodev@gmail.com>
Link: https://lore.kernel.org/r/20230224-rust-new_uninit-v1-1-c951443d9e26@asahilina.net
[ Reworded to use `Link` tags. ]
Signed-off-by: default avatarMiguel Ojeda <ojeda@kernel.org>
parent f431c5c5
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#![feature(core_ffi_c)] #![feature(core_ffi_c)]
#![feature(dispatch_from_dyn)] #![feature(dispatch_from_dyn)]
#![feature(generic_associated_types)] #![feature(generic_associated_types)]
#![feature(new_uninit)]
#![feature(receiver_trait)] #![feature(receiver_trait)]
#![feature(unsize)] #![feature(unsize)]
......
...@@ -277,7 +277,7 @@ $(obj)/%.lst: $(src)/%.c FORCE ...@@ -277,7 +277,7 @@ $(obj)/%.lst: $(src)/%.c FORCE
# Compile Rust sources (.rs) # Compile Rust sources (.rs)
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
rust_allowed_features := core_ffi_c rust_allowed_features := core_ffi_c,new_uninit
rust_common_cmd = \ rust_common_cmd = \
RUST_MODFILE=$(modfile) $(RUSTC_OR_CLIPPY) $(rust_flags) \ RUST_MODFILE=$(modfile) $(RUSTC_OR_CLIPPY) $(rust_flags) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment