• Linus Torvalds's avatar
    Merge tag 'rust-6.10' of https://github.com/Rust-for-Linux/linux · 8f5b5f78
    Linus Torvalds authored
    Pull Rust updates from Miguel Ojeda:
     "The most notable change is the drop of the 'alloc' in-tree fork. This
      is nicely reflected in the diffstat as a ~10k lines drop. In turn,
      this makes the version upgrades way simpler and smaller in the future,
      e.g. the latest one in commit 56f64b37 ("rust: upgrade to Rust
      1.78.0").
    
      More importantly, this increases the chances that a newer compiler
      version just works, which in turn means supporting several compiler
      versions is easier now. Thus we will look into finally setting a
      minimum version in the near future.
    
      Toolchain and infrastructure:
    
       - Upgrade to Rust 1.78.0
    
         This time around, due to how the kernel and Rust schedules have
         aligned, there are two upgrades in fact. These allow us to remove
         one more unstable feature ('offset_of') from the list, among other
         improvements
    
       - Drop 'alloc' in-tree fork of the standard library crate, which
         means all the unstable features used by 'alloc' (~30 language ones,
         ~60 library ones) are not a concern anymore
    
       - Support DWARFv5 via the '-Zdwarf-version' flag
    
       - Support zlib and zstd debuginfo compression via the
         '-Zdebuginfo-compression' flag
    
      'kernel' crate:
    
       - Support allocation flags ('GFP_*'), particularly in 'Box' (via
         'BoxExt'), 'Vec' (via 'VecExt'), 'Arc' and 'UniqueArc', as well as
         in the 'init' module APIs
    
       - Remove usage of the 'allocator_api' unstable feature
    
       - Remove 'try_' prefix in allocation APIs' names
    
       - Add 'VecExt' (an extension trait) to be able to drop the 'alloc'
         fork
    
       - Add the '{make,to}_{upper,lower}case()' methods to 'CStr'/'CString'
    
       - Add the 'as_ptr' method to 'ThisModule'
    
       - Add the 'from_raw' method to 'ArcBorrow'
    
       - Add the 'into_unique_or_drop' method to 'Arc'
    
       - Display column number in the 'dbg!' macro output by applying the
         equivalent change done to the standard library one
    
       - Migrate 'Work' to '#[pin_data]' thanks to the changes in the
         'macros' crate, which allows to remove an unsafe call in its 'new'
         associated function
    
       - Prevent namespacing issues when using the '[try_][pin_]init!'
         macros by changing the generated name of guard variables
    
       - Make the 'get' method in 'Opaque' const
    
       - Implement the 'Default' trait for 'LockClassKey'
    
       - Remove unneeded 'kernel::prelude' imports from doctests
    
       - Remove redundant imports
    
      'macros' crate:
    
       - Add 'decl_generics' to 'parse_generics()' to support default
         values, and use that to allow them in '#[pin_data]'
    
      Helpers:
    
       - Trivial English grammar fix
    
      Documentation:
    
       - Add section on Rust Kselftests to the 'Testing' document
    
       - Expand the 'Abstractions vs. bindings' section of the 'General
         Information' document"
    
    * tag 'rust-6.10' of https://github.com/Rust-for-Linux/linux: (31 commits)
      rust: alloc: fix dangling pointer in VecExt<T>::reserve()
      rust: upgrade to Rust 1.78.0
      rust: kernel: remove redundant imports
      rust: sync: implement `Default` for `LockClassKey`
      docs: rust: extend abstraction and binding documentation
      docs: rust: Add instructions for the Rust kselftest
      rust: remove unneeded `kernel::prelude` imports from doctests
      rust: update `dbg!()` to format column number
      rust: helpers: Fix grammar in comment
      rust: init: change the generated name of guard variables
      rust: sync: add `Arc::into_unique_or_drop`
      rust: sync: add `ArcBorrow::from_raw`
      rust: types: Make Opaque::get const
      rust: kernel: remove usage of `allocator_api` unstable feature
      rust: init: update `init` module to take allocation flags
      rust: sync: update `Arc` and `UniqueArc` to take allocation flags
      rust: alloc: update `VecExt` to take allocation flags
      rust: alloc: introduce the `BoxExt` trait
      rust: alloc: introduce allocation flags
      rust: alloc: remove our fork of the `alloc` crate
      ...
    8f5b5f78
Makefile.build 17.3 KB