This repository was archived by the owner on Sep 26, 2025. It is now read-only.
bench-kernel: replace #[naked] with #[unsafe(naked)] for stable Rust#65
Open
manchangfengxu wants to merge 2 commits intorustsbi:mainfrom
Open
bench-kernel: replace #[naked] with #[unsafe(naked)] for stable Rust#65manchangfengxu wants to merge 2 commits intorustsbi:mainfrom
manchangfengxu wants to merge 2 commits intorustsbi:mainfrom
Conversation
Replace the #[naked] attribute with #[unsafe(naked)] in the bench-kernel module to ensure compatibility with the latest stable Rust compiler. This follows the stabilization in rust-lang/rust#134213 and avoids build failures when using the stable Rust toolchain. Specific changes include: - Replace `#[naked]` with `#[unsafe(naked)]` across all relevant functions. - Remove `#![feature(naked_functions, asm_const)]` as they are no longer needed on stable with `#[unsafe(naked)]`. - Switch to the `naked_asm!` macro to comply with new naked function requirements introduced alongside `#[unsafe(naked)]`. - Remove `options(noreturn)`, which is disallowed within `naked_asm!`. - Update `put_char` and `put_str` implementations in `impl rcore_console::Console for Console` to avoid errors from creating shared references to mutable statics. - Update GitHub Actions workflow files to use `ubuntu-22.04` instead of `ubuntu-20.04` for CI compatibility. The changes build and pass tests successfully on both stable and nightly Rust. Fix: rustsbi/rustsbi#63 Refs: - Issue: rustsbi/rustsbi#63 - Upstream PR: rust-lang/rust#134213 Signed-off-by: manchangfengxu <1848953550@qq.com>
Update `runs-on` directives in GitHub Actions workflow files, replacing `ubuntu-20.04` with `ubuntu-22.04`. This is necessary as the `ubuntu-20.04` runner image was retired on April 15, 2025. Migrating to `ubuntu-22.04` ensures CI jobs continue to run on a supported and up-to-date environment. Refs: actions/runner-images#11101 Signed-off-by: manchangfengxu <1848953550@qq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.