bench-kernel: replace #[naked] with #[unsafe(naked)] for stable Rust #65
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
The latest stable Rust compiler, following rust-lang/rust#134213, now requires the #[naked] attribute to be marked as unsafe using #[unsafe(naked)]. The existing use of #[naked] in the bench-kernel module causes build failures on the stable toolchain (see workflow failure log).
This pull request resolves that issue by updating bench-kernel for compatibility with both stable and nightly Rust.
Changes
-Replace all #[naked] attributes with #[unsafe(naked)]
-Remove #![feature(naked_functions, asm_const)] as they are no longer required
-Use the naked_asm! macro as required by the new naked function specification
-Remove options(noreturn) which is disallowed inside naked_asm!
-Refactor put_char and put_str to avoid shared references to mutable statics
-Update GitHub Actions workflows to use ubuntu-22.04 instead of ubuntu-20.04
passed cargo build and cargo clippy.