-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Xous build failure due to naked_asm changes #134403
Comments
I've created this Issue because Xous is now unable to build. There are several factors at play:
|
hm. that should not be the case, to my knowledge? can you elaborate? |
Sure.
If you build this with
Even though it's gated by the |
Amanieu said on the PR that this is intended behavior, so requiring CFI directives iss not an accidental regression. It will need to be fixed in unwinding. |
Reproducing @Amanieu's comments on the PR here:
Unmarking this as a regression for the time being. |
@xobs Hm. So, the riscv64gc target should have the "d" feature enabled, because "g" includes "d", thus the assembly should be instantiated, and is. The problem isn't with the |
I marked it as a regression because it worked with cat > test.rs <<EOF
#![feature(naked_functions)]
#[naked]
pub extern "C-unwind" fn example() {
#[cfg(target_feature = "d")]
unsafe {
core::arch::naked_asm!("fsd fs0, 0x140(sp)");
}
}
EOF
echo -n "Building with 2024-12-12: "
rustc +nightly-2024-12-12 --target riscv64gc-unknown-linux-gnu --crate-type lib -O test.rs
echo "Done"
echo -n "Building with 2024-12-13: "
rustc +nightly-2024-12-13 --target riscv64gc-unknown-linux-gnu --crate-type lib -O test.rs This produces:
What are my options to fix the build for this target? I cannot build |
You can work around it by wrapping the assembly code with:
|
Thank you for that suggestion. That does work, and I'll submit a patch to the unwinding project to add that. It still seems like a regression to me, in the sense that it used to work but now doesn't. I'll keep this issue open at least until Xous builds again. Once |
The reason it's not labelled as a regression is because we only track regressions for stable features or accidental nightly regressions. Nightly features may break, and in this case a nightly feature had expected breakage. |
@xobs Marking it as a non-regression is not "this is something we don't care about"! It's "our regression tracking tags are implicitly for the purpose of tracking things we want to actively prevent hitting the next stable/beta release". This results in the oddity of "we would like your target to be fixed as soon as possible but we aren't too worried if the next stable release can't build it because as far as we're concerned only specific nightly releases can". |
…5.0, r=Mark-Simulacrum unwinding: bump version to fix naked_asm on Xous With rust-lang#80608 the `unwinding` crate no longer builds. The upstream crate has been updated to build by manually adding directives to the naked_asm stream. Bump the dependency in Rust to get this newer version. This fixes the build for Xous, and closes rust-lang#134403.
Rollup merge of rust-lang#134789 - betrusted-io:bump-unwinding-to-0.25.0, r=Mark-Simulacrum unwinding: bump version to fix naked_asm on Xous With rust-lang#80608 the `unwinding` crate no longer builds. The upstream crate has been updated to build by manually adding directives to the naked_asm stream. Bump the dependency in Rust to get this newer version. This fixes the build for Xous, and closes rust-lang#134403.
Code
I tried this code:
I expected to see this happen: Rust should build libstd for Xous
Instead, this happened: Rust errored out with
could not compile 'unwinding'
:Version it worked on
It most recently worked on: Rust nightly 2024-12-11
Version with regression
rustc --version --verbose
:More information
I have filed an issue in unwinding. This error likely appeared as a result of #128004. However, I am unable to merge PR 41 because CI is failing due to issue #80608.
@rustbot modify labels: +regression-from-stable-to-nightly -regression-untriaged
The text was updated successfully, but these errors were encountered: